Linux常用命令总结
一、cd命令(changeDirectory)
1. 命令语法:cd [目录名] — 说明:切换当前目录至dirName
2. 进入主要目录:cd /
3. 进入”家”目录:cd ~
4. 进入上一次工作路径:cd –
5. 把上个命令的参数作为cd参数使用:cd !$
二、pwd命令 — 查看当前工作目录路径
1. 查看当前路径:pwd
2. 查看软链接的实际路径:pwd -P
三、ls命令(list)
1. ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等
2. 常用参数搭配:
① ls -a 列出目录所有文件,包含以.开始的隐藏文件
② ls -A 列出除.及..的其它文件
③ ls -r 反序排列
④ ls -t 以文件修改时间排序
⑤ ls -S 以文件大小排序
⑥ ls -h 以易读大小显示
⑦ ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
3. 例:
① 按易读方式按时间反序排序,并显示文件详细信息: ls -lhrt
② 按大小反序显示文件详细信息: ls -lrS
③ 列出当前目录中所有以“t”开头的目录的详细内容: ls -l t*
④ 列出文件绝对路径(不包含隐藏文件): ls | sed “s:^:`pwd`/:”
⑤ 列出文件绝对路径(包含隐藏文件): find $pwd -maxdepth 1 | xargs ls -ld
四、head 和 tail命令
1. head:用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行
① 常用参数:-n<行数> 显示的行数(行数为复数表示从最后向前数)
② 例:
显示1.log文件中前20行: head 1.log -n 20
显示1.log文件前20字节: head -c 20 log2014.log
显示t.log最后10行:head -n -10 t.log
2. tail :用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件
①常用参数:
-f 循环读取(常用于查看递增的日志文件)
-n<行数> 显示行数(从后向前)
② 例:循环读取逐渐增加的文件内容
ping 127.0.0.1 > ping.log &(后台运行:可使用jobs -l查看,也可使用fg将其移到前台运行)
tail -f ping.log(查看日志)
五、cat命令
1. 一次显示整个文件:cat filename
2. 从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件
3. 将几个文件合并为一个文件:cat file1 file2 > file
-b对非空输出行号
-n输出所有行号
4.例:
① 把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里: cat -n log2012.log log2013.log
② 把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里: cat -b log2012.log log2013.log log.log
③ 使用here doc生成新文件
cat >log.txt <<EOF
>Hello
>World
>PWD=$(pwd)
>EOF
ls -l log.txt
cat log.txt
Hello
World
PWD=/opt/soft/test
④ 反向列示
tac log.txt
PWD=/opt/soft/test
World
Hello
六、grep命令(Global Regular Expression Print) — 强大的文本搜索命令,全局正则表达式搜索
1. 工作方式:它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容
2. 命令格式:grep [option] pattern file|dir
3. 常用参数:
① -A n –after-context显示匹配字符后n行
② -B n –before-context显示匹配字符前n行
③ -C n –context 显示匹配字符前后n行
④ -c –count 计算符合样式的列数
⑤ -i 忽略大小写
⑥ -l 只列出文件内容符合指定的样式的文件名称
⑦ -f 从文件中读取关键词
⑧ -n 显示匹配内容的所在文件中行数
⑨ -R 递归查找文件夹
4. grep的正则表达式
①^ #锚定行的开始 如:\’^grep\’匹配所有以grep开头的行
$ #锚定行的结束 如:\’grep$\’匹配所有以grep结尾的行
② . #匹配一个非换行符的字符 如:\’gr.p\’匹配gr后接一个任意字符,然后是p
* #匹配零个或多个先前字符 如:\’*grep\’匹配所有一个或多个空格后紧跟grep的行
.* #一起用代表任意字符
[] #匹配一个指定范围内的字符,如\'[Gg]rep\’匹配Grep和grep
[^] #匹配一个不在指定范围内的字符,如:\'[^A-FH-Z]rep\’匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行
\(..\) #标记匹配字符,如\’\(love\)\’,love被标记为1
③ \< #锚定单词的开始,如:\’\<grep\’匹配包含以grep开头的单词的行
\> #锚定单词的结束,如\’grep\>\’匹配包含以grep结尾的单词的行
④ x\{m\} #重复字符x,m次,如:\’0\{5\}\’匹配包含5个o的行
x\{m,\} #重复字符x,至少m次,如:\’o\{5,\}\’匹配至少有5个o的行
x\{m,n\} #重复字符x,至少m次,不多于n次,如:\’o\{5,10\}\’匹配5–10个o的行
⑤ \w #匹配文字和数字字符,也就是[A-Za-z0-9],如:\’G\w*p\’匹配以G后跟零个或多个文字或数字字符,然后是p
\W #\w的反置形式,匹配一个或多个非单词字符,如点号句号等
\b #单词锁定符,如: \’\bgrep\b\’只匹配grep
5. 例:
① 查找指定进程:ps -ef | grep svn
② 查找指定进程个数: ps -ef | grep svn -c
③ 从文件中读取关键词:cat test1.txt | grep -f key.log
④ 从文件夹中递归查找以grep开头的行,并只列出文件:grep -lR \’^grep\’ /tmp
⑤ 查找非x开关的行内容: grep \’^[^x]\’ test.txt
⑥ 显示包含ed或者at字符的内容行:grep -E \’ed|at\’ test.txt
七、wc命令(word count) — 统计指定的文件中字节数、字数、行数,并将统计结果输出
1. 命令格式:wc [option] file..
2. 命令参数:
① -c 统计字节数
② -l 统计行数
③ -m 统计字符数
④ -w 统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串
3. 例:
① 查找文件的行数、单词数、字节数、文件名:
wc text.txt 结果:7 8 70 test.txt
② 统计输出结果的行数:cat test.txt | wc -l
八、创建(mkdir命令)、删除(rm / rmdir)、移动(mv)、复制(cp)
1. mkdir命令 — 创建文件夹
① 常用参数:
-m: 对新建目录设置存取权限,也可以用chmod命令设置;
-p:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录
② 例:
当前工作目录下创建名为t的文件夹: mkdir t
在tmp目录下创建路径为test/t1/t的目录,若不存在,则创建:mkdir -p /tmp/test/t1/t
2. rm命令 — 删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状
① 格式:rm [选项] 文件…
② 例:
删除任何.log文件;删除前逐一询问确认: rm -i *.log
删除test子目录及子目录中所有档案删除,并且不用一一确认:rm -rf test
删除以-f开头的文件:rm — -f*
3. rmdir 命令 — 从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限
① 不能删除非空目录
② 例:当parent子目录被删除后使它也成为空目录的话,则顺便一并删除:rmdir -p parent/child/child11
4. mv命令
① 移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)
当第二个参数为目录时,可刚多个文件以空格分隔作为第一参数,移动多个文件到参数2指定的目录中
② 例:
将文件test.log重命名为test1.txt: mv test.log test1.txt
将文件log1.txt,log2.txt,log3.txt移动到根的test3目录中: mv llog1.txt log2.txt log3.txt /test3
将文件file1改名为file2,如果file2已经存在,则询问是否覆盖 :mv -i log1.txt log2.txt
移动当前文件夹下的所有文件到上一级目录: mv * ../
5. cp命令 — 将源文件复制至目标文件,或将多个源文件复制至目标目录
① 命令行复制,如果目标文件已经存在会提示是否覆盖,而在shell脚本中,如果不加-i参数,则不会提示,而是直接覆盖
② 常用参数:
-i 提示
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样
③ 例:
复制a.txt到test目录下,保持原文件时间,如果原文件存在提示是否覆盖:cp -ai a.txt test
为a.txt建议一个链接(快捷方式):cp -s a.txt link_a.txt
九、more命令、less命令
1. more命令 — 类似于cat, more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示
① 命令参数:
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
② 常用操作命令:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
③ 例:
显示文件中从第3行起的内容:more +3 text.txt
在所列出文件目录详细信息,借助管道使每次显示5行: ls -l | more -5
按空格显示下5行
2. less命令 — less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件
① 常用命令参数:
-i 忽略搜索时的大小写
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-s 显示连续空行为一行
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
-x <数字> 将“tab”键显示为规定的数字空格
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
② 例:
ps查看进程信息并通过less分页显示: ps -aux | less -N
查看多个文件: less 1.log 2.log
可以使用n查看下一个,使用p查看前一个
十、chmod命令
1. 用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。
2. 该命令有两种用法:① 包含字母和操作符表达式的文字设定法 ② 包含数字的数字设定法
3. 每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限
与属主同组的用户的读、写和执行权限
系统中其他用户的读、写和执行权限
可使用ls -l test.txt查找
4. 以文件log2012.log为例:
-rw-r–r– 1 root root 296K 11-13 06:03 log2012.log
第一列共有10个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。从第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行
5. 常用参数:
-c 当发生改变时,报告处理信息
-R 处理指定目录以及其子目录下所有文件
6. 权限范围:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
7. 权限代号:
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
– :删除权限,用数字0表示
s :特殊权限
8. 例:
增加文件t.log所有用户可执行权限: chmod a+x t.log
撤销原来所有的权限,然后使拥有者具有可读权限,并输出处理信息:chmod u=r t.log -c
给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限:chmod 751 t.log -c(或者:chmod u=rwx,g=rx,o=x t.log -c)
将test目录及其子目录所有文件添加可读权限:chmod u+r,g+r,o+r -R text/ -c
十一、tar命令
1. 用来压缩和解压文件。tar本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件
2. 常用参数:
-c 建立新的压缩文件
-f 指定压缩文件
-r 添加文件到已经压缩文件包中
-u 添加改了和现有的文件到压缩包中
-x 从压缩包中抽取文件
-t 显示压缩文件中的内容
-z 支持gzip压缩
-j 支持bzip2压缩
-Z 支持compress解压文件
-v 显示操作过程
3. 有关gzip及bzip2压缩
gzip实例:压缩gzip fileName .tar.gz和.tgz 解压:gunzip filename.gz或gzip -d filename.gz
对应:tar zcvf filename.tar.gz tar zxvf filename.tar.gz
bz2实例:压缩bzip2 -z filename .tar.bz2 解压:bunzip filename.bz2或bzip -d filename.bz2
对应:tar jcvf filename.tar.gz 解压:tar jxvf filename.tar.bz2
4. 实例:
将文件全部打包成tar包: tar -cvf log.tar 1.log,2.log 或tar -cvf log.*
将/etc下的所有文件及目录打包到指定目录,并使用gz压缩: tar -zcvf /tmp/etc.tar.gz /etc
查看刚打包的文件内容(一定加z,因为是使用gzip压缩的): tar -ztvf /tmp/etc.tar.gz
要压缩打包/home, /etc ,但不要 /home/dmtsai:tar –exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
十二 、chown命令
1. 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符
2.常用参数:
-c 显示更改的部分的信息
-R 处理指定目录及子目录
3. 例:
改变拥有者和群组并显示改变信息:chown -c mail:mail log2012.log
改变文件群组:chown -c :mail t.log
改变文件夹及子文件目录属主及属组为mail:chown -cR mail: test/