UNIX 必备命令

loveStylr

贡献于2013-05-30

字数:8590 关键词: UNIX

cd cd 命令是切换工作目录的命令(change directory) synatx: cd dir 路径中以下三个字符的作用 . 一个点代表当前目录 .. 两个点代表上一级目录 / 代表根目录 1) cd 后面不加任何参数,切换到当前用户的主目录 2) cd - 打印出上次使用的目录,并且切换到上次使用的目录; 3) cd ~ 切换到当前用户的主目录 4) cd .. 切换到当前目录的上一级目录 5) cd . 切换到当前目录 如果希望一行键入多条命令,那么这些命令之间需要使用 分号(;) 分隔 pwd 显示当前的工作目录 ls ls 命令列举目录下面的所有文件信息 命令格式 ls [args] dir pattern -a 显示所有的文件,包括以 . 开头的隐藏文件 -l 列举出目录下面文件的详细信息(除了列出文件名以外,同时将文件的状态,权限,拥有者, 所属组,修改时间等详细信息列出) -t 以时间排序 -c 以最后一次修改时间排序 -x 按列输出,横向排序(ls 默认按列输出纵向排序) -R 递归的显示子目录 e.g 搜索指定目录下面的指定文件名 ls -l | grep pattern ls -l 按照文件名字典顺序排序 ls -ltr按照文件修改时间排序 ls -l | sort -n +4 按照文件大小从小到大排序 ls -l 等价于 ll 命令 sort sort默认按照字典顺序排序(字典顺序依赖于操作系统的实现) -u 在排序的结果中取出重复的行 -r 按照字典顺序的逆序排序 -o 将排完序的文件输出到指定的文件中 sort filename –o newFile -o 选项的特殊作用是 它可以将排序完的文件输出到自身 例如 sort Goo.txt –o Goo.txt 而重定向命令是做不到的。 -n 把每行中的第一个字段当做数字 然后按照数字排序。 +Xn 跳过每行的前X个字段 将X+1 个字段当做数字 然后按照数字顺序排序 这种情况下字段间默认按照空格后者Tab分隔,如果使用的是其他分隔符 则需要使用 –t 选项 -t 指定分隔符 例如 sort +3n –t: filename uniq 该命令的作用是 去除文件中完全匹配的连续重复行 格式 uniq infile outfile 所以这个命令经常和sort 命令一起使用 sort fileName | uniq > newFile -d 只输出文件中连续出现过多次的行 sort filename |uniq –d -c 显示重复行出现的次数 | pipe 管道命令的作用是将上一条命令的输出传输给下一条命令作为其输入 cat cat [args] path -n 显示文件内容的时候显示行号 -r (replace) 文件中连续的空行只显示一行 cat /etc/group | more 查看系统中的所有组 cat /etc/passwd | more 查看系统中的所有的用户 cat /proc/cpuinfo 显示cpu信息 cat /proc/version 显示cpu的重要统计 cat filePath0 [filePath1 ...] >filePathx 文件合并功能 head tail tail 查看文件的最后几行数据 格式 tail [args] path -nX 显示文件的最后X行数据 -cX 显示文件的最后X个字符 -f 动态显示文件的最后几行数据 touch 创建空的文本文件命令 touch path 还可以使用 > path 命令创建一个文件 但是如果这个文件已经存在的话 它里面的内容就会丢失。 vi vi 编辑器有两种模式 一种是命令模式:所有输入被解释为命令 另一种是编辑模式:所有的输入被解释为对文件的编辑 一般使用 Esc 按钮在两种模式之间切换,默认的模式是命令模式 : 后面的命令在按下回车键之后就会执行,冒号是在命令模式下的输入 vi files vi命令可以一次性编辑多个文件,当编辑完成一个文件之后 在命令模式下键入 :n 回车就会编辑下一个文件 vi -R file 以只读的模式编辑文件 vi +n file 编辑文件并将光标置于第n行 (vi file 默认光标在文件的首行) vi + file 编辑文件并将光标置于文件的最后一行 光标的移动 jk hl 下上左右 X[jkhl] 连续执行指定的移动命令X次 n 下一个匹配文本所在行 p 上一个匹配文本所在行 N 在相反的方向查找匹配的内容 n,p 只能在命令模式下输入 /pattern 回车之后才能使用 w 移动到下一个字或下一个单词的开头(特殊符号以及标点符号作为一个单词处理) W 移动到下一个字或下一个单词的开头(特殊符号以及标点符号不作为一个单词处理,即忽 略特殊符号和标点 ) b 移动到前一个字或前一个单词的开头(特殊符号以及标点符号作为一个单词处理) B 移动到前一个字或者是前一个单词的开头(特殊符号以及标点符号不作为一个单词处理,即忽 略特殊符号和标点 ) e 移动到下一个字或者下一个单词的结尾 ^ 移动到当前行的行首(命令模式下按下0也是移动到当前行行首) $ 移动到当前行的行尾 [GL] 移动到文件的最后一行行首 xG 移动到文件的第x行行首 (跳转到文件的指定行) G$ 移动到文件的最后一个字符处 H 移动到文件的首行行首 也可以通过 1G 来实现 Ctrl+F 屏幕向前翻动一页 Ctrl+B 屏幕向后翻动一页 删除操作 x 删除光标所在的字符 向后删 nx 删除从当前光标开始n个字符 向后删 X 删除当前光标前面的一个字符 向前删 nX 删除从当前光标前面的一个字符开始n个字符 向前删 dw 从当前光标开始删除至下一个单词的开头 ndw 从当前光标开始删除n个字或者单词 同时删除单词前后的空白字符 dd 删除光标所在的行 ndd 删除当前光标所在的行开始的一个n行 dG 删除光标所在的行以及其后面行的所有内容 d^ db 删除当前字符前面的字符一直到当前行的行首的所有字符 向前删 d$ (D) 删除光标所在字符到当前行行尾的所有字符 删除方向 向前删除 不包括光标所在的字符 向后删除 包含光标所在的字符 向上向下删除都包含当前的行; 修改操作 cw 修改从光标处字符开始到的单词末尾的内容 c$ (C) 修改从光标处字符开始到当前行行尾的内容 以上连个命令如果修改的字符不足待修改字符的长度那么未修改的字符将会被全部删除 cc 修改光标所在行的所有内容 复制 yw y0 y$ yy 复制光标所在的行 尽量不要使用粘贴 p 将y命令复制的内容粘贴到当前光标所在的字符之后(如果复制的是一整行则粘贴到当前光标所在行的下一行) P 将y 命令复制的内容粘贴到当前光标所在的字符之前(如果复制的是一整行则粘贴到当前光标所在行的上一行) 替换 :s/patternX/patternY/ 这种只会替换光标所在行匹配的第一个,而不是全部。 :s/patternX/patternY/g 将光标所在行满足patternX 全部替换成 patternY :%s/patternX/patternY/g 将文档中所有满足patternX 全部替换成patternY :m,ns/patternX/patternY/g 将文档中第m行到第n行中所有满足patternX替换成 patternY 行连接 J 将当前光标所在行的下一行连接到当前行的行尾 nJ 将当前光标所在行的下n行连接到当前行的行尾 撤销修改 u 撤销最后一次修改 U 撤销当前行的所有修改 保存退出 :w 保存修改 但是不退出 :q 修改 也不退出编辑器 从本次会话开始重新编辑 :w file 将修改的后的文件保存在 file 中但是不退出vi编辑器 :wq 或者 :x 保存修改并且退出vi编辑器 :e! 不保存修改并且从上一次打开文件的时候开始重新编辑 :q! 不保存修改并且退出vi编辑器 := 打印文件中的行数 在任何时候可以通过 Esc 按钮 从编辑模式转换成命令模式 如果在命令模式下键入了以下命令 那么就会自动变为编辑模式 a (append) 在当前光标的后面添加新的内容 A 在当前行的后面添加新的内容 i (insert) 在当前光标之前插入新的内容 I 在当前行的行首插入内容 o 在当前行的下边插入新行,并将光标置于行首 O 在当前行的上边插入新行,并将光标置于行首 p P:r file 读取file文件的内容 并将其内容插入光标所在行 :nr file 读取file文件的内容 并将其内容插入到第n行后 vi 中的选项 :set all 打印vi当前所有的选项 :set nooption 关闭vi的所有选项 :set nu 设置在每行前显示行号 :set nonu 设置在每行前不显示行号 :set showmode 设置显示当前vi所使用的模式 INSERT 模式还是 COMMAND 模式 :set noic 设置查找时不区分大小写 :set list 设置显示制表符(^|)和行尾符号($) :set window=n 设置显示window窗口显示n行数据 :set ts=4 设置tab stop 为4 在当前编辑的页面中查找 在命令行的模式下键入 /pattern 回车 表示向下查找,pattern可以是一般字符也可以是正则表达式,回车之后按 n 表示继续向下查找下一个匹配的字符串,而按N表示向反方向查找。 ?pattern 回车 表示向上查找 cut 截取指定的字符 -c 截取指定的字符 cat fileName | cut –cN 截取每行数据的第N个字符 cat fileName | cut –cX,Y,Z 截取每行数据的第X,Y,Z个字符 (用逗号分隔数值列表) cat fileName | cut –cX-Y 截取每行数据的第X个字符到第Y个字符(使用中划线表示范围 闭区间 [X,Y]) cat fileName |cut –cN- 截取每行的第N个字符一直到行尾 -dX 以X作为分隔符 cat fileName | cut –d: -f1,3,5 把文件的第1 3 5 段取出来 cut 命令默认将制表符当做分隔符 所以如果文件是以Tab分隔的则直接可以使用 cut –fX 来获取文件的第X部分 cut –c3-6,12-19 fileName paste 该命令是将多个文件中对应的行粘贴在一起默认使用Tab分隔 格式: paste [args] filex filey filez … 以行数最多的文件为准. -d 指定合并文件行使用的分隔符 –dchars chars 是用来分隔各行的一个或者是多个字符,即第一个字符是用来分隔第一个文件和第二个文件,第二个字符是用来分隔第二个文件和第三个文件,以此类推。 -s 将指定文件中的所有行合并成一行,默认使用Tab分隔 除非指定了 –d 选项。 tr 文件字符替换命令 (tr命令用来转换来自标准输入的字符然后将结果输出到标准输出;) tr formatA formatB 将文件中 formatA 的字符转换成 formatB 的字符; alnum 字母数字字符; alpha 字母字符; blank 空白字符; cntrl 控制字符; digit 数字字符; graph 图形字符; lower 小写字母; upper 大写字母; print 可打印字符; punct 标点字符; space 空间字符; xdigit 十六进制字符; charx chary | tr chx chy e.g 将小写字母转换成大写字母; echo "Google Chrome Baidu Bing Yahoo" | tr [:lower:] [:upper:] tr -d characters; 从字符串中删除指定的字符; e.g echo "Goolge Chrome" |tr -d or tr -s characters; 从字符串中删除指定的字符,并且去掉多个空格 tr -s ‘:’‘\11’ 将一个扩这多个连续的冒号替换成了tab符 tr –s ‘ ‘ ‘ ‘ 将文件中的多个空格换成单个空格 chmod 改变文件的权限 chmod [-R] [ugoa][+-=][rwx] filename u user g group o other a all + 添加权限 如果前面不指定 u g o a 则默认是的 所有的用户添加指定的权限 - 删除权限 = 赋予新的权限 e.g chmod u=rwx,g=rw,o=r Google.cc umask 显示Unix系统默认创建文件权限的补码 比如显示的是 027 那么默认的创建文件的权限是 750 wc 单词统计(word count) wc [options] filename -l 只显示统计文件的行数 -c 只显示统计文件的字符数 -w 只显示统计文件的单词数 如果只是键入 wc filename 则默认以以下格式显示 行数 单词数 字符数 文件名 cp 文件复制命令 syntax: cp [args] srcPath destPath 快速备份文件命令 cp filename{,.bak} 将文件以 .bak 后缀备份到当前路径下 -i 以交互的方式复制文件 -r 递归的复制文件以及文件夹 -p 使用该选项的时候保留文件以及目录的修改时间和权限; -f 如果目标文件已经存在,那么就覆盖它,并且不做提示 mv 文件移动命令,也是Unix下文件重命名命令 syntax: mv [args] srcPath destPath cp mv 这两个命令不管destPath 文件是否存在 如果存在的话原始的文件就会被覆盖 rm rm [options] targetDirs 删除非空文件和非空文件夹 options -f 删除过程中,不给任何提示,直接删除 -i 删除过程中给出提示 i 一般是指 interactive 交互式的; -r 递归的删除全部目录 r 一般是指 recursive 递归的; rmdir 该命令的作用是删除空文件夹 格式 rmdir [args] path -i 以交互的方式删除空目录 -p 删除当前空目录,如果父目录也是空目录的话递归的删除父级空目录; Unix 里面有两个具有毁灭性的的命令,那就是rm 和 rmdir 使用这两个命令的时候最好使用 -i 选项 mkdir 创建空目录 -p 一次性创建多个目录(子目录) mkdir -p src/com/java/service 在当前目录下面创建一系列子目录 grep grep 命令的作用是查找匹配模式的内容 命令格式为: 1) 在文件中查找匹配的内容 grep regex path e.g grep ftp ./* 在当前路径下面的所有文件中查找包含ftp 关键字的文件 2) 在内容中查找匹配的内容,常常跟随在|(管道命令)之后 | grep regex grep -i 表示匹配的过程中不区分关键字的大小写 grep -v 输出不匹配指定模式的内容行 grep -l 只输出匹配指定模式的文件名 grep -n 输出匹配指定模式的行内容同时输出其所在文件中的行号 grep -c pattern file_name_list;在指定的文件中匹配正则并返回匹配的个数; grep -w pattern file_name_list;单词匹配; e.g grep -in regex file_path 不区分关键字的大小写并且输出匹配行所在文件中的行号 grep -F "patternX patternY ..." path 指定的文件中查找多个匹配的模式 这些模式必须使用双引号包裹 每个模式以换行符分隔 grep 'pattern' file 模式最好使用单引号包裹起来 避免shell对特殊字符做特别处理. 3) 递归查找 find path -type f -print | xargs grep pattern 在指定的目录,以及其子目录查找符合pattern的文件(这个是由find命令的功能定义决定的) 区别正则表达式的数量词关键字和Unix通配符关键字 关键字 正则数量词关键字的含义 Unix通配符的含义 * 零次或者多次匹配 零个或者多个任意字符 ? 零次或者一次匹配 匹配任意单个字符 + 一次或者多次匹配 [ ] 匹配大括号里面的任意一个 正则表达式特有的字符 . 匹配任意单个字符 ( ) 组 保存匹配的内容到 1~9 好寄存器中 使用 \1~9 来引用它们。 sed sed -n x,yp filename 打印filename 文件中的[x,y]行 可以将打印的文本直接重定向到一个文本文件中 sed –n ‘/pattern/p’ filename 打印文件中满足pattern的所有行。 sed '/pattern/ d' filename 删除filename文件中匹配 pattern 的所有行 sed '/pattern/ !d' filename 删除filename文件不匹配 pattern 的所有行 sed '$a\content\...' filename 向指定的文件最后添加内容,sed命令只会编辑文件的副本,如果不使用重定向或者是追加命令的话 原始文件的内容不会改变。 sed –n l fileName 在显示文件内容的时候 如果里面还有制表符 那么使用 \t 显示,并且在每行的行尾添加一个 $ sed ‘s/patternX/patternY/’filename 对fileName 中的每一行文件中满足patternX 的第一个替换成 patternY 如果要全部替换 需要 这样写 sed ‘s/patternX/patternY/g’ fileName find find . \( -name "*.h" -o -name "*.txt" \) -print | xargs grep -i Google 在当前路径下 查找后缀为.h和后缀为.txt 文件中的含google关键字的文本 find path operator find 命令从指定的目录开始遍历整个指定目录的整个子目录 find path -type f -print 遍历指定目录查找类型为文件的文件并且打印出他们 find / -empty -print 从根目录开始查找 查找所有的空文件和空目录 并且将他们打印出来 find / -name *.cc -print 根据文件名查找文件 并且将匹配的文件的文件名打印出来 find / -size +1024c -print c 是指 byte 查找大于1kb 的文件 并且打印文件名 tail -f file 动态的显示文件中的内容 特别是 日志文件中的内容 find / -size +1024c -name *.cc -print |wc 统计文件大小大于 1k 并且名字以 .cc 结尾的文件 find / -size +1024c \( -name *.cc -o -name *.a \) -print 打印出文件大小大于1k 并且文件后缀是 .cc 或者后缀是 .a 的文件的文件名 查找属于指定用户的所有文件 find / -user username -print find / -user stylr -type d -prem 755 -print 查找 用户stylr名下的文件夹并且文件夹的权限是 755 并且打印出所有文件夹的名字。 find / -atime +30 -print 打印出大于30天 没有被访问过的文件 find . -atime +60 -exec ls -l {} \; 显示出60之内未访问过的文件 并且以长格式的形式显示出来 -exec 命令 最后一定要使用 分号结尾. find 命令常用的参数 -atime (access time) 访问时间 -ctime (change time) 修改时间 -exec command 执行命令 -name 根据文件名查找 -type 根据文件类型查找 -prem 根据文件权限查找 -print 打印出查找出来的文件的文件名 -size 根据文件大小进行帅选 -user 根据所属的用户组进行查找 -a and 条件与 -o or 条件或 ! 条件取反 find 参数中的 -exec 中的 {} 表示find 命令所查找出来的结果 ps 查看系统进程命令 (Process Status) ps -exf | grep keyword 查找指定关键字的进程 查看当前 Unix 机器 IP 地址 netstat -i kill 干掉系统进程的命令 kill -9 pid crontab crontab -l 查看crontab 文件里面的内容 cronttab -e 编辑crontab里面的内容 crontab -r 删除crontab里面所有的调度 crontab Unix任务调度命令; 步骤: 1 设置任务 crontab -e (该命令是编辑crontab文件) 调度文件规则: 分钟: 0~59 小时: 0~23 日期: 1~31 月份: 1~12 星期: 0~6 crontab 格式 mm HH dd MM WW (使用tab或者是space分隔) 格式如下:(只能在 crontab 中使用这种格式) 分钟 小时 日期 月份 星期 可以使用 * 通配符表示任意 2 指定任务名 * * * * * date >> /home/stylr21/date_rec.txt 怎么调度多个任务: 方法一:直接在任务调度中直接添加(不推荐) 方法二:把所有的任务写入一个*.sh 文件中 然后在任务调度中调度那个shell 然后在 crontab中指定shell的全路径 env 查看系统的环境变量 ftp 从本地连接到远程ftp主机 syntax: ftp IP port 或者直接 ftp 回车 弹出ftp命令提示符 ftp> 如果要在 ftp 命令提示符下 连接远程ftp 需要使用 open IP port 回车 然后键入 用户名 密码 ftp> 命令提示符 下常用的命令 pwd 显示远程ftp主机当前的工作路径 ls -l 列出远程主机当前目录的目录结构 close 关闭与远程ftp主机的连接 bye 退出 ftp 命令 lcd 切换本地FTP主机当前工作目录 cd 切换远程FTP主机当前工作目录 !command 在ftp命令提示符下 在本地主机上执行shell命令 get filename 将远程的文件传输到本地ftp当前工作目录 put filepath 将本地指定目录下面的文件传输到远程ftp当前工作目录。 man 该命令的作用是查看命令的使用手册 manual 格式 man command man ascii 查看ASCII码表; command --help 会显示命令的详细信息; info command 也会显示命令的详细信息 clear 清空 Unix 或 Windows 终端控制台 uname 显示当前操作系统的类型 hostname 显示当前登陆进去的计算机的名称; who 查看当前登陆进系统的所有用户; who am i 查看当前登录用户的信息; echo 在控制台打印用户的输入或者变量的值 echo $SHELL 输出当前使用的shell类型; echo $PATH 输出当前shell命令的搜索范围; echo 会忽略多个空格 last 查看系统登录的历史信息 date 显示系统的日期 shell programming

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享文档获得金币 ]
0 人已下载

下载文档

相关文档