日期:2014-05-16  浏览次数:20657 次

Linux环境发布之基础命令学习

?

1.dirname命令可以取给定路径的目录部分(strip non-directory suffix from file name)
# 跳转到脚本所在目录  
cd $(dirname "$0") 
另一个写法是:cd `dirname $0` 其中反引号··等同于$()。
2.输出到屏幕同时到文件
tree . | tee test.log
3.备份压缩
tar -czvf  gzip格式压缩   tar -xzvf  gzip格式解压 tar tvf 查看归档文件里包含哪些文件
c -> 创建  x->还原 z->gzip v->显示文件信息 f->指定文件 C->解压到指定目录  X->排除
使用zip命令的P选项来加密zip文件
zip -P mysecurepwd var-log-protected.zip /var/log/*
不会想让密码在History中可见
zip -e var-log-protected.zip /var/log/*
检查zip文件的完整性
unzip -t var-log.zip
4.时间格式
TIME=`date +%Y-%m-%d\ %H:%M:%S`
5.复制 CP
-a :相当于 -pdr 的意思;
-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i :若目的n(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用预设属性;
-r :递归持续复制,用于目录的复制行为;
-s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
-u :若 destination 比 source 旧才更新 destination !
 \cp:  不询问,直接覆盖
6.删除 RM
-d  : 删除可能仍有数据的目录 (只限超级用户)
-f  : 略过不存在的文件,不显示任何信息
-i  : 进行任何删除操作前必须先确认
-r  : 同时删除该目录下的所有目录层
-v  : 详细显示进行的步骤
#删除除**之外的
rm -rf !(a|b)
7.查找
find
-ipath p, -path p : 路径名称符合 p 的档案,ipath 会忽略大小写 
-name name, -iname name : 档案名称符合 name 的档案。iname 会忽略大小写 
-size n : 档案大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 档案类型是 c 的档案。 d: 目录 c: 字型装置档案  b: 区块装置档案 p: 具名贮列 f: 一般档案 l: 符号连结 s: socket 
-pid n : process id 是 n 的档案 
#查找并执行删除
find $DIR -name ".svn" -exec rm -rf {} \; 
# 为你想要找的字符串 
find . -name "*" -exec grep xxx {} ; -print |more xxx
8.纠错
shopt 例子:shopt -s extglob
http://world77.blog.51cto.com/414605/336147
9.改变字符大小写
tr a-z A-Z < filepath
10.cut
显示一个以冒号分隔的文件中的第一列和第三列  $ cut -d: -f 1,3 names.txt
显示文件中每行的前八个字符$ cut -c 1-8 names.txt
11.随机数
$RANDOM可以产生0-32767之间随机数
12.脚本调试
bash -xv filename.sh
13.将数据文件的指定域读取到shell脚本中
$ vi read-employees.sh 
#!/bin/bash IFS=: 
while read name empid dept do 
	echo "$name is part of $dept department" 
done < ~/employees.txt     
14.安装
rpm -ivh file.rpm
apt-get install samba
15.mount# 
mount -t nfs -o hard 192.168.1.4:/home/cao /home/nfs/cao
fat32:  
    mount -t vfat -o  iocharset=gb2312,codepage=936  /dev/hda? /mnt/win
ISO:   
    mount -o loop /any.iso  /mnt/iso
NTFS: 
    mount /dev/hda?  /mnt/win  这个还需要编译内核
USB: 
    mount /dev/sda?  /mnt/usb

不编译内核mount NTFS分区的办法:
下载 kernel-ntfs-2.4.18-14.i686.rpm 安装
mount -t ntfs /dev/hda?  /mnt/win

要开机自动挂接可以修改/etc/fstab
比如添加一个 /dev/hda?  /mnt/win  vfat  umask=0,iocharset=gb2312,codepage=936 0 0
cat /proc/loadavg 查看运行队列情况
16.grep
grep -? pattern filename 查询匹配行的上下?行
grep -n pattern filename 显示匹配行的行号
grep -v pattern filename 反检索
grep -E pattern filename 扩展模式,不需要转义
17.sed
sed [option] 'command' file
sed '?,$d' filename 删除第?行至行尾 
sed 's/a/b/g' 整行a替换为b
sed 's/a/&b/g' 替换a为自己加b
sed -e 多点编辑
xcopy /ekirydh path  path2 >> log

?