zoukankan      html  css  js  c++  java
  • 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],如:'Gw*p'匹配以G后跟零个或多个文字或数字字符,然后是p

         W    #w的反置形式,匹配一个或多个非单词字符,如点号句号等  

              #单词锁定符,如: 'grep'只匹配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/

  • 相关阅读:
    .Net4.0并行库介绍——线程专有存储
    解决WPF中TextBox文件拖放问题
    POJ 2063 Investment(完全背包)
    HDU 1698 Just a Hook(线段树,成段更新)
    HDU 2665 Kth number(划分树入门题,纯套模板)
    HDU 4251 The Famous ICPC Team Again(划分树入门题)
    POJ 3295 Tautology(构造法)
    HDU 1540 Tunnel Warfare(线段树,去最大连续区间)
    HDU 1394 Minimum Inversion Number(求逆序数,线段树或者树状数组)
    POJ 2993 Emag eht htiw Em Pleh(水模拟)
  • 原文地址:https://www.cnblogs.com/annie1226/p/10806048.html
Copyright © 2011-2022 走看看