zoukankan      html  css  js  c++  java
  • linux常用命令

    1.cd命令,进入某个目录

    cd /root 进入root目录
    cd 或者 cd ~ 进入用户家目录
     
    2.ls命令,展示目录下的文件和目录,我们常用的是展示详细内容的ls -l,也可以写成它的别名ll,它会展示文件属性、权限等信息。
    1. -l :列出长数据串,包含文件的属性与权限数据等  
    2. -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用) 
    3. -d :仅列出目录本身,而不是列出目录的文件数据  
    4. -h :将文件容量以较易读的方式(GB,kB等)列出来  
    5. -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来  
     
    3.grep命令,这个命令用于分析一行的信息,一般与管道符匹配使用,对上个命令的执行结果进行筛选、加工等。
    1. -a :将binary文件以text文件的方式查找数据  
    2. -c :计算找到‘查找字符串’的次数  
    3. -i :忽略大小写的区别,即把大小写视为相同  
    4. -v :反向选择,即显示出没有‘查找字符串’内容的那一行  
    5. # 例如:  
    6. # 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色  
    7. grep --color=auto 'MANPATH' /etc/man.config  
    8. # 把ls -l的输出中包含字母file(不区分大小写)的内容输出  
    9. ls -l | grep -i file  
     
    比如统计当前目录下包含 wang 的字符的数量:
        ll | grep wang | wc -l
        或
        ll | grep -c wang
     
    4.find命令,用于查询。可用于查询的参数类别比较多,较为复杂。
    1. find [PATH] [option] [action]  
    2.   
    3. # 与时间有关的参数:  
    4. -mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;  
    5. -mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;  
    6. -mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;  
    7. -newer file : 列出比file还要新的文件名  
    8. # 例如:  
    9. find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件  
    10.   
    11. # 与用户或用户组名有关的参数:  
    12. -user name : 列出文件所有者为name的文件  
    13. -group name : 列出文件所属用户组为name的文件  
    14. -uid n : 列出文件所有者为用户ID为n的文件  
    15. -gid n : 列出文件所属用户组为用户组ID为n的文件  
    16. # 例如:  
    17. find /home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件  
    18.   
    19. # 与文件权限及名称有关的参数:  
    20. -name filename :找出文件名为filename的文件  
    21. -size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件  
    22. -tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、  
    23.              目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);  
    24. -perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;  
    25. -perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示  
    26. -perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示  
    27. # 例如:  
    28. find / -name passwd # 查找文件名为passwd的文件  
    29. find . -perm 0755 # 查找当前目录中文件权限的0755的文件  
    30. find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte 
     
    5.mkdir命令,创建文件夹
    1. -m(--mode) 指定文件、目录的权限,注意这里只能赋予当前用户支持的最高权限。如当前用户只支持755,-m指定777,则结果为755。
    2. -p(--parents)  递归创建目录,可以一次性创建多级目录  
    3. -v(-verbose) 每次创建目录都展示信息
    递归创建目录,即一次性创建多级目录:mkdir -p /aaa/bbb 
     
    6.rm命令,删除文件、目录,rm不带参数只允许删除空目录,我们一般都使用rm -rf来删除文件,一种习惯。
    1. -f :就是force的意思,忽略不存在的文件,不会出现警告消息  
    2. -i :互动模式,在删除前会询问用户是否操作  
    3. -r :递归删除,最常用于目录删除,它是一个非常危险的参数 
     
    7.cp命令,复制一个文件到一个目录,复制目录需要带-r参数
    1. -a :将文件的特性一起复制  
    2. -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份  
    3. -i :若目标文件已经存在时,在覆盖时会先询问操作的进行  
    4. -r :递归持续复制,用于目录的复制行为  
    5. -u :目标文件与源文件有差异时才会复制  
     
    8.mv命令:
        1.剪切一个文件到一个目录
           2.如果目录是当前目录,则意味着重名名当前文件
       -b                           类似--backup 但不接受参数
      -f, --force                  覆盖前不询问
      -i, --interactive            覆盖前询问
      -n, --no-clobber             不覆盖已存在文件
    如果您指定了-i、-f、-n 中的多个,仅最后一个生效。
     
    9.  ps命令:管理当前进程的命令,将某个时刻的当前进程列出来。
    1. -A :所有的进程均显示出来  
    2. -a :不与terminal有关的所有进程  
    3. -u :有效用户的相关进程  
    4. -x :一般与a参数一起使用,可列出较完整的信息  
    5. -l :较长,较详细地将PID的信息列出  
       常用搭配如下:
    1. ps aux # 查看系统所有的进程数据  
    2. ps ax # 查看不与terminal有关的所有进程  
    3. ps -lA # 查看系统所有的进程数据  
    4. ps axjf # 查看连同一部分进程树状态  
     
    10.file命令:用于查看当前文件的类型,包含文件、目录、硬链接、软连接等~
        命令格式: file 文件名,如 file /home/wang/sb234
     
    11.kill命令:杀死某个进程。
         该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用,它的基本语法如下:
       kill -signal PID
       signal的常用参数如下:
       注:最前面的数字为信号的代号,使用时可以用代号代替相应的信号。
         
    1. 1:SIGHUP,启动被终止的进程  
    2. 2:SIGINT,相当于输入ctrl+c,中断一个程序的进行  
    3. 9:SIGKILL,强制中断一个进程的进行  
    4. 15:SIGTERM,以正常的结束进程方式来终止进程  
    5. 17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行  
    例如:
    1. # 以正常的结束进程方式来终于第一个后台工作,可用jobs命令查看后台中的第一个工作进程  
    2. kill -SIGTERM %1   
    3. # 重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得  
    4. kill -SIGHUP PID  
     
    12.killall命令:该命令用于向一个命令启动的进程发送一个信号,它的一般语法如下:
        killall [-iIe] [command name]
        它的参数如下:
        
    1. -i :交互式的意思,若需要删除时,会询问用户  
    2. -e :表示后面接的command name要一致,但command name不能超过15个字符  
    3. -I :命令名称忽略大小写  
    4. # 例如:  
    5. killall -SIGHUP syslogd # 重新启动syslogd  
     
    13.lsblk命令,以树状图的方式整齐的列出除了RAM之外的块设备。
        lsblk -l 以非树状图方式展示。
     
    14.uname命令,显示机器名等信息。
            uname -a 展示机器内核名、分支名、内核发布版本、内核版本、处理器架构、操作系统名。如我本地的虚拟机:
            Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
     
    15.history命令:展示所有执行过的命令,使用CTRL+R可以检索执行过的命令,并可以自动补全。
     
    16.sudo命令:使用超级管理员权限来执行命令。注意:sudo是允许用户借用超级用户的权限,然而“su”是允许用户以root用户登录。所以sudo比su更安全。不建议使用此命令来处理日常用途。
     
    17.touch命令:将文件的访问时间和修改时间改为当前时间,如果文件不存在,则创建一个新文件。我们经常使用这个命令在用户有权限的目录下创建不存在的文件。
     
    18.cal、date等日期相关的命令。
        cal以日历的形式展示时间,不带参数展示当前日期,带参数展示指定日期,如:cal 2 5 1830 展示1830年5月2日。
        date展示年月日时分秒星期等,也可以设置时间,如 date --set='29 Dec 2015 11:07:00' 将时间设置为2015年12月29日。
     
    19.echo命令:
        1.在终端中输出一段字符串,可以使用引号或者不使用引号。
        2.在文件末尾追加内容。
    参数:-n 文字末尾不换行
              -e 特殊符号特别处理、
       a 发出警告声;

        删除前一个字符;
       c 最后不加上换行符号;
       f 换行但光标仍旧停留在原来的位置;
       换行且光标移至行首;
       光标移至行首,但不换行;
       插入tab;
       v 与f相同;
       \ 插入字符;
       nn 插入nnn(八进制)所代表的ASCII字符;

    示例:
        echo -e 'haha haha        结果:haha        haha
        echo who am i >> homewangsb234     结果向sb234文件末尾追加字符串who am i 
     
    20.cat命令这个命令有三大功能。
        1.查看文件内容        cat filename    
        2.创建一个新文件并写入多行内容,要以EOF或STOP结束 (这里后面写的是什么,就以什么结束。不一定写成EOF,自己测试的)      cat >newfilename <<EOF
        3.合并几个文件为一个新文件    cat file1 file2 > newfile
        参数:
        -n    对内容加上行号并展示
        -b    对非空行加上行号并展示
        -e/E 对每行末尾追加$符号并展示
        -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
         -v 或 --show-nonprinting
        
        可做操作:
            1.将多个文件合并为一个文件    cat sb2 sb3 > sb4
            2.将文件内容清空    cat /dev/null > sb234
            3.将文件加上行号(可以用-n或-e参数控制空行是否加入行号)并展示到新文件中    cat -n sb > sb400
            4.创建不存在的文件并写入内容        cat >sb <<EOF    写入多行内容并以EOF结束
            5.向已存在的文件中追加内容            cat >>sb <<EOF 追加多行内容并以EOF结束
            6.将多个文件内容追加到一个已存在的文件中    cat sb3 sb4 >> sb5
        总的来说>代表创建,>>代表追加。这里一定不要搞错了
     
    21.whereis 命令,是命令的搜索命令。用于定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或者是帮助文件。whereis命令还具有搜索源代码、指定备用搜索路径和搜索不同寻常项的能力。
                -b   定位可执行文件。

    -m   定位帮助文件。

    -s   定位源代码文件。

    -u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

    -B   指定搜索可执行文件的路径。

    -M   指定搜索帮助文件的路径。

    -S   指定搜索源代码文件的路径。

        比如:whereis ls   这条命令会列出ls这个命令可执行文件、源代码文件(这个实际结果中没有)、帮助文件在文件系统中的位置
     
    22.whatis命令,这个命令比较有意思,是用于查询一个系统命令是干什么的。比如刚才提到的whereis命令。
        执行命令:whatis whereis      查询whereis这个命令是干什么的。
        结果:whereis              (1)  - locate the binary, source, and manual page files for a command
     
    23.which命令,在PATH变量指定的路径中搜索某个命令可执行文件的位置,并返回第一个结果。可以查看某个命令是否存在。
                -n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

    -p  与-n参数相同,但此处的包括了文件的路径。

    -w  指定输出时栏位的宽度。

    -V  显示版本信息

        执行命令:which ll   会查询到ls命令可执行文件的位置,并展示执行命令的详细内容。
        结果:       alias ll='ls -l --color=auto'
                 /bin/ls    
        
    24.locate命令,用于搜索文件。由于其并非遍历整个文件目录,而是从后台数据库中搜索(/var/lib/mlocate/mlocate.db),所有速度最快。但可能会查不到最近新增或修改的文件,需要更新一下后台数据库才行(执行命令updatedb)。
    另外注意:locate命令是有搜索限制的,文件位置:/etc/updatedb.conf
        # 开启搜索限制
        PRUNE_BIND_MOUNTS = "yes"
       #不搜索的文件系统
        PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 hugetlbfs inotifyfs iso9660 jffs2     lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"
        #不搜索的文件类型
        PRUNENAMES = ".git .hg .svn"
        #不搜索的文件路径
        PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"
                -e   将排除在寻找的范围之外。

    -1  如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。

    -f   将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在资料库中。

    -q  安静模式,不会显示任何错误讯息。

    -n 至多显示 n个输出。

    -r 使用正规运算式 做寻找的条件。

    -o 指定资料库存的名称。

    -d 指定资料库的路径

    -h 显示辅助讯息

    -V 显示程式的版本讯息

     25.type命令,用于查看某个命令是shell自带的还是shell外部独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该文件的路径,相当于which命令。
        type cd
    26.help命令,用于查询系统自带命令的帮助文档
            -s    以简短方式展示命令的帮助文档
     
    27.head命令,默认展示行头的10条数据。
     
    28.tail命令,默认展示行尾的10条数据,与head命令相对应。

    -f 循环读取(监视文件是否动态改变)

    -q 不显示处理信息

    -v 显示详细的处理信息

    -c<数目> 显示的字节数

    -n<行数> 显示行数

    --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. 

    -q, --quiet, --silent 从不输出给出文件名的首部 

    -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒 

        
    29.cut命令,为文件中的每一行提取符合条件的字符并输出。
             -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
    -c :以字符为单位进行分割。
    -d :自定义分隔符,默认为制表符。
    -f  :与-d一起使用,指定显示哪个区域。
    -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
            针对行操作:
              -b和-c一个是字节,一个是字符,在英文和数字看来取得的结果没有什么区别,然而当内容为中文时就有区别了。-b可能会乱码,-b的中文,一个中文占用3个字节,-c一个字符就是一个字符。所以,对于中文而言,-b -3等同于-c 1。另外遇到中文这种多字节字符时,可以用-n参数,告诉其不要把多字节字符拆开。(-nb可以,-bn不行,测试发现的)
            针对域操作:
            这个地方需要举一个例子来说明域的概念,比如/etc/passwd文件中保存的数据不是特别整齐有规律,但是整体是以:隔开的,cut命令支持对于这种文件的操作。需要结合-b和-f,-b代表以什么作为分隔符,-f代表第几块区域。
            /etc/passwd文件内容:
    1. root:x:0:0:root:/root:/bin/bash
    2. bin:x:1:1:bin:/bin:/sbin/nologin
    3. daemon:x:2:2:daemon:/sbin:/sbin/nologin
    4. adm:x:3:4:adm:/var/adm:/sbin/nologin
    5. lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    6. sync:x:5:0:sync:/sbin:/bin/sync
    7. shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    8. halt:x:7:0:halt:/sbin:/sbin/halt
    9. mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10. uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    11. operator:x:11:0:operator:/root:/sbin/nologin
    12. games:x:12:100:games:/usr/games:/sbin/nologin
    13. gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
    14. ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    15. nobody:x:99:99:Nobody:/:/sbin/nologin
    16. dbus:x:81:81:System message bus:/:/sbin/nologin
    17. vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
    18. rtkit:x:499:496:RealtimeKit:/proc:/sbin/nologin
    19. avahi-autoipd:x:170:170:AvahiIPv4LLStack:/var/lib/avahi-autoipd:/sbin/nologin
    20. ntp:x:38:38::/etc/ntp:/sbin/nologin
    21. saslauth:x:498:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
    22. postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    23. haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
    24. pulse:x:497:495:PulseAudioSystemDaemon:/var/run/pulse:/sbin/nologin
    25. gdm:x:42:42::/var/lib/gdm:/sbin/nologin
    26. sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    27. tcpdump:x:72:72::/:/sbin/nologin
    28. wang:x:500:500:wang1:/home/wang:/bin/bash
    29. wangftp:x:501:501::/home/wangftp:/sbin/nologin
    30. ftpadmin:x:502:502::/home/ftpadmin:/sbin/nologin
            测试: 
    1. head -n 5/etc/passwd | cut -d :-f 5
            输出结果:
    1. root
    2. bin
    3. daemon
    4. adm
    5. lp
     
    30.nl命令,对文件内容指定行号格式化输出。
                -b  :指定行号指定的方式,主要有两种:

    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);

    -b t :如果有空行,空的那一行不要列出行号(默认值);

    -n  :列出行号表示的方法,主要有三种:

    -n ln :行号在萤幕的最左方显示;

    -n rn :行号在自己栏位的最右方显示,且不加 0 ;

    -n rz :行号在自己栏位的最右方显示,且加 0 ;

    -w  :行号栏位的占用的位数。

    -p 在逻辑定界符处不重新开始计算。 

    DEMO:
    1. #将文件内容非空行标识3位行号,在右方显示(前面可以空行,如果用-n ln的方式(行号在最左侧)和-w是不兼容的,-w指定的值不会生效)。
    2. nl -b t -n rz -w 3 test.log
    3.  
    4. #输出结果:
    5. 001 坎坎伐檀兮, 002 置之河之干兮。 003 河水清且涟猗, 004 不稼不穑, 005 故取禾三百潺兮。 006 两个黄鹂鸣翠柳, 007 一行白鹭上青天。 008 窗含西岭千秋雪, 009 门泊东吴万里船。
     
     
     
     
     
     
     
     
     
     





  • 相关阅读:
    [页面布局方式]
    padding and margin
    【浏览器中的页面】
    【浏览器的页面循环系统】
    Activity启动模式详解(二)--->singleTask
    finish、onDestory、System.exit的区别
    Androidndk开发打包时我们应该如何注意平台的兼容(x86,arm,arm-v7a)
    关于WifiManager的一些看法
    高效的找出两个List中的不同元素
    关于Activity的生命周期
  • 原文地址:https://www.cnblogs.com/douJiangYouTiao888/p/6474038.html
Copyright © 2011-2022 走看看