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 extglobhttp://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.rpmapt-get install samba
15.mount# mount -t nfs -o hard 192.168.1.4:/home/cao /home/nfs/caofat32: mount -t vfat -o iocharset=gb2312,codepage=936 /dev/hda? /mnt/winISO: mount -o loop /any.iso /mnt/isoNTFS: 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.grepgrep -? pattern filename 查询匹配行的上下?行grep -n pattern filename 显示匹配行的行号grep -v pattern filename 反检索grep -E pattern filename 扩展模式,不需要转义
17.sedsed [option] 'command' filesed '?,$d' filename 删除第?行至行尾 sed 's/a/b/g' 整行a替换为bsed 's/a/&b/g' 替换a为自己加bsed -e 多点编辑
xcopy /ekirydh path path2 >> log
?