zoukankan      html  css  js  c++  java
  • Linux 基本命令学习笔记

     

    1. 文件管理                                                                  

    Ø touch  新建文件。例: touch test.txt  新建一个test.txt 文件。

     

    Ø cp 复制文件。例:cp ./user_one/test_one  ./user_two/test_two,将user_one目录下的test_one文件复制到user_two目录下面,并且命名为test_two。加参数-i会在有重名是询问是否要覆盖。

     

    Ø mv 文件或目录改名,或者用于将一个文件由一个目录移动到另外一个目录。例:mv ./user_one/test_one  ./user_two ,将user_one下面的test_one 文件移动到user_two下面。

     

    Ø rm  文件移除命令。 例:rm /root/test  ,将/root 目录下的名称为test的文件移除 。如果要彻底删除一个目录,加 -r这个参数,表示递归删除其全部子目录和文件。(慎用)

     

    Ø chmod 更改文件/目录访问文件。文件/目录都有读(r)、写(w)、执行(x)权限。

          用户类型有三种:

                   owner:文件/目录创建者,默认拥有三种权利,简写为u; 

                   group:和owner同组的其他用户,简写为g; 

                   other: 除以上两者的其他的用户,简称为o;

      例:给test加上o的x权限:chmod o+x test     给test减去o的x权限chmod o-x test。

    此外,还可以用数字表示权限4(读)、2(写)、1(执行),可以用数字的组合 来表示权限。例:7=4+2+1表示全部权限,6=4+2表示读写权限 ;chmod 777 test (表示给u,g,o以7,7,7的权限)

     

    Ø chown 更改文件的所有者或组。只有 root 用户可以更改文件的所有者。只在root 用户或拥有该文件的情况下才可以更改文件的组。如果拥有文件但不是 root 用户,则只可以将组更改为该用户所在的组。

     

    Ø tail 输出文件的末尾部分。默认为输出最后10行,参数-n可以自定义输出末尾的行数。例:tail -3 test.txt,输出test.txt末尾的3行。

     

    Ø cat 三大功能:

          (1)显示文件 ,例:cat test.txt,将test.txt文件中的内容显示出来。

          (2)新建一个文件,例:cat>test_two.txt,新建一个名为 test_two.txt的文件。 文件创建后可直接编辑, 编辑完成后按ctrl+c保存退出 。

          (3)将几个文件合并成一个文件,例:cat test_one.txt  test_two.txt>test.txt   将test_one.txt 与test_two.txt 合并,并输出到test.txt。

     

     

    Ø more  一页一页的显示文件。space往下一页,b往回一页,enter显示下一行,h搜索字符串,q停止显示

     

    Ø less  与more功能类似,除了可以按space往下一页外,还可以利用上下键来翻页

     

    Ø find  查找目录或文件。命令格式:find pathname -options [-print -exec -ok ...]。pathname所查找的目录路径;-print将匹配的文件输出到标准输出;-exec对匹配的文件执行该参数所给出的shell命令;-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行;-name按照文件名查找文件。

    2. 磁盘管理

    Ø ls 列出目录中所有子目录和文件。加上-l参数,列出文件的详细信息。在使用-l参数后可以查看文件的类型。

          常用的几种文件类型有: 

                        普通文件,第一个字符为[-];

                        目录文件,第一个字符为[d];

                        链接文件,第一个字符为[l] ;

                        块设备文件,第一个字符为[b];

                        字符设备文件,第一个字符为[c]  

    Ø md /mkdir  创建目录。 mkdir后可以带参数,mkdir [-m][-p] 目录名。 -m: 对新建目录设置存取权限,也可以用chmod命令设置; -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

    Ø cd  进入目录。用“..”来指代父目录,用“.”指代当前目录,cd ~ (或者cd #)可以到用户的主目录

     

    Ø df 检查文件系统的磁盘空间占用情况。查看挂载点的磁盘空间大小。

    Ø du 统计目录或文件所占磁盘空间的大小,默认以k为单位。

    Ø pwd 查看当前目录的完整路径。

    Ø lsof 列出打开的文件。因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。参数-i用以显示符合条件的进程情况。

        lsof输出各列信息的意义如下:

             COMMAND:进程的名称

             PID:进程标识符

             USER:进程所有者

           FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等

           TYPE:文件类型,如DIR、REG等

           DEVICE:指定磁盘的名称

           SIZE:文件的大小

           NODE:索引节点(文件在磁盘上的标识)

           NAME:打开文件的确切名称

           

     

     

     

    3. 文档编辑

    Ø Vi的2种模式:编辑模式和命令模式。

     

    Ø 两种模式的切换:Vi启动时进入的是命令模式,在命令模式下按i可以进入编辑模式,在编辑模式中按ESC可以退回到命令模式。

     

    Ø 退出vi的命令:

    :wq  保存文件后退出

    :x   保存文件后退出

    :q! 不存盘退出

     

    附:

    :x与:wq的区别:

    :wq   强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。

    :x    写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间。

    一般情况下两者没有什么区别,只有在编译源文件时会产生影响。":wq"强制更新文件的修改时间,这样会让make编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件。这可能会产生让人误解的后果,也产生了不必要的系统资源花销。

     

    Ø :set nu 设置vi中的行号。:set nonu 去掉行号

     

    Ø wc 统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。- c 统计字节数;- l 统计行数;- w 统计字数。

    Ø uniq  检查及删除文本中重复出现的行列。

       参数说明:

             -c或--count   在每列旁边显示该行重复出现的次数。
             -d或--repeated   仅显示重复出现的行列。
             -f<栏位>或--skip-fields=<栏位>   忽略比较指定的栏位。
             -s<字符位置>或--skip-chars=<字符位置>   忽略比较指定的字符。
             -u或--unique   仅显示出一次的行列。
             -w<字符位置>或--check-chars=<字符位置>   指定要比较的字符。
             --help   显示帮助。
             --version   显示版本信息。

    Ø grep  查找内容包含指定的范本样式的文件。

    Ø sed   流编辑器,自动编辑一个或多个文件,简化对文件的反复操作。

          sed的几个重要用途:

         (1)删除:d命令

              sed '2d' example-----删除example文件的第二行。
                  sed '2,$d' example-----删除example文件的第二行到末尾所有行。
                  sed '$d' example-----删除example文件的最后一行。
                  sed '/test/'d example-----删除example文件所有包含test的行。

            (2)替换:s命令

                  sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。                                                         

                  sed -n 's/^test/mytest/p' example-----(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。
                  sed 's/^192.168.0.1/&localhost/' example-----&符号表示被替换的字符本身。所有以192.168.0.1开头的行都会被替换成它自己加 localhost,变成192.168.0.1localhost。
                  sed -n 's/(love)able/1rs/p' example-----love被标记为1,所有loveable会被替换成lovers,而且替换的行会被打印出来。
                  sed 's#10#100#g' example-----不论什么字符,紧跟着s命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符。表示把所有10替换成100。

            (3)选定行的范围:逗号

                 sed -n '/test/,/check/p' example-----所有在模板test和check所确定的范围内的行都被打印。
                 sed -n '5,/^test/p' example-----打印从第五行开始到第一个包含以test开始的行之间的所有行。
                 sed '/test/,/check/s/$/sed test/' example-----对于模板test和check之间的行,每行的末尾用字符串sed test替换。

             (4)多点编辑:e命令

                   sed -e '1,5d' -e 's/test/check/' example-----(-e)选项允许在同一行里执行多条命令。如例子所示,第一条命令删除1至5行,第二条命令用check替换test。命令的执 行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。
              (5) 从文件读入:r命令

                     sed '/test/r file' example-----file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。

             (6)写入文件:w命令

                  sed -n '/test/w file' example-----在example中所有包含test的行都被写入file里。

             (7)追加命令:a命令

                  sed '/^test/a\--->this is a example' example<-----'this is a example'被追加到以test开头的行后面,sed要求命令a后面有一个反斜杠。

             (8)插入:i命令

             sed '/test/i\new line-------------------------' exampl如果test被匹配,则把反斜杠后面的文本插入到匹配行的前面。

         (9)下一个:n命令 

              sed '/test/{ n; s/aa/bb/; }' example-----如果test被匹配,则移动到匹配行的下一行,替换这一行的aa,变为bb,并打印该行,然后继续。

         (10) 变形:y命令

               sed '1,10y/abcde/ABCDE/' example-----把1--10行内所有abcde转变为大写,注意,正则表达式元字符不能使用这个命令。

         (11)退出:q命令

              sed '10q' example-----打印完第10行后,退出sed。

             (12)保持和获取:h命令和G命令

                sed -e '/test/h' -e '$G example,任何包含test的行都被复制并追加到该文件的末尾。

          (13)保持和互换:h命令和x命令

                sed -e '/test/h' -e '/check/x' example -----互换模式空间和保持缓冲区的内容。也就是把包含test与check的行互换。

    Ø awk  文本解析器。默认以空格为分割符,也可以用-F自定义分隔符。例:awk '{ if (NF>2) {print $1"."$2"."$3"."$4} }'。

       条件操作符:<、<=、==、!=、>=、~匹配正则表达式、!~不匹配正则表达式   

       awk内容变量:

                  ARGC  命令行参数个数 ;

                  AGRV  命令行参数排列;

                  ENVIRON   支持队列中系统环境变量的使用;

                  FILENAME   awk浏览的文件名 ;

                  FNR       浏览文件的记录数 ; 

                  FS    设置输入域分隔符,同- F选项;

                  NF  浏览记录的域个数;

                  NR   已读的记录数;

                  OFS   输出域分隔符;

                  ORS   输出记录分隔符 ;

                  RS    控制记录分隔符。

     

    Ø sort 对文本文件内容加以排序。

        参  数:
       -b   忽略每行前面开始出的空格字符。
       -c   检查文件是否已经按照顺序排序。
       -d   排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
       -f   排序时,将小写字母视为大写字母。
       -i   排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
       -m   将几个排序好的文件进行合并。
       -M   将前面3个字母依照月份的缩写进行排序。
       -n   依照数值的大小排序。
       -o<输出文件>   将排序后的结果存入指定的文件。
       -r   以相反的顺序来排序。
       -t<分隔字符>   指定排序时所用的栏位分隔字符。
       +<起始栏位>-<结束栏位>   以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
       --help   显示帮助。
       --version   显示版本信息

     

          

    4. 文件传输

    Ø scp 远程复制文件或目录。

       复制文件: 

      (1)将本地文件拷贝到远程 

           scp 文件名 --用户名@计算机IP或者计算机名称:远程路径 

           例:scp ./test.txt root@10.6.222.195:/root  将当前目录下的test.txt 文件复制到10.6.222.195的根目录下 

      (2)从远程将文件拷回本地 

           scp --用户名@计算机IP或者计算机名称:文件名 本地路径 

             例:scp root@10.6.222.195:/root/test.txt   ./ 从10.6.122.195的根目录下下复制文件test.txt到当前目录

       复制目录: 

      (1)将本地目录拷贝到远程 

           scp -r 目录名 --用户名@计算机IP或者计算机名称:远程路径 

             例:scp -r  /root/cherie_test/  root@10.6.222.195:/root/  将本机root目录下的cherie_test目录拷贝到10.6.222.195的root目录下

      (2)从远程将目录拷回本地 

         scp -r --用户名@计算机IP或者计算机名称:目录名 本地路径

           例:scp -r root@10.6.222.195:/root/cherie_test/  /root/ 将10.6.222.195的root目录下的cherie_test目录拷贝到本机root目录下

     

    Ø rsync  更好的远程拷贝文件

    rsync的六种工作模式:

    (1)拷贝本地文件。当文件来源路径和目的路径都是本地时就启用这种工作模式

    (2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。(这个功能还不会用)

    (3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。(这个功能还不会用)

    (4)从远程rsync服务器中拷贝文件到本地机。当文件来源路径是服务器,目的路径是本地机时就启用该模式。命令格式与scp相同。

    (5)从本地机器拷贝文件到远程rsync服务器中。当文件来源路径是本地,目的路径是服务器时就启用该模式。命令格式与scp相同。

    (6)列远程机的文件列表。(这个功能还不会用)

     

     

    5. 网络通讯

    Ø ifconfig  查看、配置、启用或禁用网络接口。

    参  数:
         del<地址>   删除网络设备IPv6的IP地址。
         <hw<网络设备类型><硬件地址>   设置网络设备的类型与硬件地址。
         irq<IRQ地址>   设置网络设备的IRQ。
         mem_start<内存地址>   设置网络设备在主内存所占用的起始地址。
         mtu<字节>   设置网络设备的MTU。
         tunnel<地址>   建立IPv4与IPv6之间的隧道通信地址。
         -broadcast<地址>   将要送往指定地址的数据包当成广播数据包来处理
         -promisc   关闭或启动指定网络设备的promiscuous模式。
         [网络设备]   指定网络设备的名称

     

    Ø telnet  远端登入。

    Ø ping  检查两台机器间的网是否连通。参数-c ping的次数,参数-i每次ping之间的时间间隔。例:ping -c 5 -i 2 10.6.222.195 ,表示每两秒ping一次,共ping5次。

     

     

    6. 系统管理

    Ø top 动态观察进程变化。最上面的六行为整个系统的资源使用状态。

    第一行:显示系统已启动的时间、目前上线人数、系统整体负载。

    第二行:显示目前观察的进程数量。

    第三行:显示cpu整体负载。

    第四行:物理内存的使用情况。

    第五行:虚拟内存的使用情况。

    第六行:当在top程序中是输入指令时,显示状态的地方。

    Ø ps 查看进程的运行状态 。 常用的参数有:-A列出所有的进程;-au显示较详细的信息;-aux显示所有包含其他使用者的进程。

    -au参数下的属性值说明:

     

        %CPU: 占用的 CPU 使用率

        %MEM: 占用的内存使用率

        VSZ: 占用的虚拟内存大小

        RSS: 占用的内存大小

    TTY: 终端的次要装置号码  

    STAT: 该行程的状态:(D: 不可中断的静止 ;R: 正在执行中 ;S: 静止状态;T: 暂停执行;Z: 不存在但暂时无法消除;W: 没有足够的记忆体分页可分配;<: 高优先序的行程;N: 低优先序的行程;L: 有记忆体分页分配并锁在记忆体内 )

        START: 进程开始时间

        TIME: 执行的时间

    COMMAND:所执行的指令

    Ø kill 终止一个进程。参数-9强制终止进程。

     

    Ø vmstat  展现给定时间间隔的服务器的状态值。主要用来报告虚拟内存的统计信息。对于服务器监控有用的度量有:r(运行队列)、 bi(页导入)、us(用户cup)、sy(系统cpu)、id(空闲)。如果r经常大于4 ,且id经常少于40,表示cpu的负荷很重;如果bi,bo 长期不等于0,表示内存不足;r(运行队列)展示了正在执行和等待CPU资源的任务个数;当这个值超过了CPU数目,就会出现CPU瓶颈了。

    Ø iostat 对系统的磁盘I/O操作活动进行监视。参数-c 显示cpu的使用情况;-d显示磁盘使用情况;-k某些使用block为单位的列强制使用Kilobytes为单位;

        

    cpu属性值说明:

         %user:cpu在用户模式下的时间百分比。

         %nice:cpu在带nice值的用户模式下的时间比。用户空闲时间比。

         %system:cpu在系统模式下的时间百分比。 (同常%user+%nice+  %system=100) 

         %iowait:cpu等待输入输出完成时间的百分比。

         %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无 意识等待时间百分比。

         %idle:cpu空闲时间百分比。

         如果%iowait的值过高,表示硬盘存在I/O瓶颈;%idle值高,表示CPU较空闲;如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

    磁盘属性值说明:

        tps:每秒传输次数,一次传输即为一次I/O请求。

        Blk_read/s:每秒从设备读取的数据量。

        Blk_wrtn/s:每秒向设别写入的数据量。

        Blk_read:读取的数据总量。

        Blk_wrtn:写入的数据总量。

        

    使用-x参数获得更多磁盘统计信息,

     

    disk属性值说明:

    rrqm/s:  每秒进行 merge 的读操作数目。即 rmerge/s

    wrqm/s:  每秒进行 merge 的写操作数目。即 wmerge/s

    r/s:  每秒完成的读 I/O 设备次数。即 rio/s

    w/s:  每秒完成的写 I/O 设备次数。即 wio/s

    rsec/s:  每秒读扇区数。即 rsect/s

    wsec/s:  每秒写扇区数。即 wsect/s

    rkB/s:  每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。

    wkB/s:  每秒写K字节数。是 wsect/s 的一半。

    avgrq-sz:  平均每次设备I/O操作的数据大小 (扇区)。

    avgqu-sz:  平均I/O队列长度。

    await:  平均每次设备I/O操作的等待时间 (毫秒)。

    svctm: 平均每次设备I/O操作的服务时间 (毫秒)。

    %util:  一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

        如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。

     

    Ø date 显示和设置系统日期和时间。只有超级用户才能设置时间,一般用户只能显示时间。要取得几天前的日期 date -d "x days ago",x用数字代替,几天前写正数,几天后写负数。

     

     

     

    7. 备份压缩

    Ø tar 为文件和目录创建档案。参数-c建立一个压缩文件;-x解开一个压缩文件;-t查看压缩文件中的文件;-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!;-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

    例:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar 

        tar -cvf /tmp/etc.tar /etc ,仅打包,不压缩;

         tar -zcvf /tmp/etc.tar.gz /etc,打包后,以 gzip 压缩;

         tar -jcvf /tmp/etc.tar.bz2 /etc,打包后,以 bzip2 压缩

     

    Ø zip 压缩文件 。zip [参数] [打包后的文件名] [打包的目录路径]。

        zip命令参数列表:

            -a     将文件转成ASCII模式

            -F     尝试修复损坏的压缩文件

            -h     显示帮助界面

            -m     将文件压缩之后,删除源文件

            -n 特定字符串    不压缩具有特定字尾字符串的文件

            -o     将压缩文件内的所有文件的最新变动时间设为压缩时候的时间

            -q     安静模式,在压缩的时候不显示指令的执行过程

            -r     将指定的目录下的所有子目录以及文件一起处理

            -S     包含系统文件和隐含文件(S是大写)

            -t 日期     把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy

    例:将/home/Blinux/html/ 这个目录下所有文件和文件夹打包为当前目录下的html.zip

      zip –q –r   html.zip /home/Blinux/html

    8. 辅助工具

     

    Ø man 显示某一命令的详细信息和使用方法 。例: man top  将显示top的详细信息和用法 ,  使用man后按q退出。

     

     

     

     

     

  • 相关阅读:
    wm_syscommand
    VC中的#pragma指令的用法
    C语言|博客作业03
    C语言|博客作业09
    C语言|博客作业07
    C语言|博客作业05
    C语言|博客作业02
    C语言|博客作业08
    C语言|博客作业06
    C语言|博客作业04
  • 原文地址:https://www.cnblogs.com/Cherie/p/3200273.html
Copyright © 2011-2022 走看看