• Linux常用命令4(grep、df、du、awk、su、ll)


    [grep命令】

    grep常用用法

    [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename
    选项与参数:
    -a :将 binary 文件以 text 文件的方式搜寻数据
    -c :计算找到 '搜寻字符串' 的次数
    -i :忽略大小写的不同,所以大小写视为相同
    -n :顺便输出行号
    -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
    --color=auto :可以将找到的关键词部分加上颜色的显示喔!

    【df命令】

    df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

    语法 df(选项)(参数)

    实例

    显示文件系统的磁盘使用情况统计:

    # df Filesystem1K-blocks    UsedAvailableUse%Mounted on 
    /dev/sda6       2964078043207042381438816%/ 
    udev             1536756415367521%/dev 
    tmpfs             6176208886167321%/run 
    none                5120051200%/run/lock 
    none             154404415615438881%/run/shm 

    第一列指定文件系统的名称,第二列指定一个特定的文件系统1K-块1K是1024字节为单位的总内存。用和可用列正在使用中,分别指定的内存量。

    使用列指定使用的内存的百分比,而最后一栏"安装在"指定的文件系统的挂载点。

    df也可以显示磁盘使用的文件系统信息:

    # df test Filesystem1K-blocks    UsedAvailableUse%Mounted on 
    /dev/sda6       2964078043206002381449216%/

    用一个-i选项的df命令的输出显示inode信息而非块使用量。

    df -i 
    FilesystemInodesIUsedIFreeIUse%Mounted on 
    /dev/sda6      1884160261964162219614%/ 
    udev           2127485602121881%/dev 
    tmpfs          2163924772159151%/run 
    none           21639232163891%/run/lock 
    none           21639282163841%/run/shm 

    显示所有的信息:

    # df --total Filesystem1K-blocks    UsedAvailableUse%Mounted on 
    /dev/sda6       2964078043207202381437216%/ 
    udev             1536756415367521%/dev 
    tmpfs             6176208926167281%/run 
    none                5120051200%/run/lock 
    none             154404415615438881%/run/shm 
    total           3334432043217722751686014%

    我们看到输出的末尾,包含一个额外的行,显示总的每一列。

    -h选项,通过它可以产生可读的格式df命令的输出:

    # df -h FilesystemSizeUsedAvailUse%Mounted on 
    /dev/sda6       29G4.2G23G16%/ 
    udev            1.5G4.0K1.5G1%/dev 
    tmpfs           604M892K603M1%/run 
    none            5.0M05.0M0%/run/lock 
    none            1.5G156K1.5G1%/run/shm 

    我们可以看到输出显示的数字形式的'G'(千兆字节),"M"(兆字节)和"K"(千字节)。

    这使输出容易阅读和理解,从而使显示可读的。请注意,第二列的名称也发生了变化,为了使显示可读的"大小"。

     

    【du命令】

    用于显示目录或文件的大小。du会显示指定的目录或文件所占用的磁盘空间。

    语法

    du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]

    实例

    显示目录或者文件所占空间:

    # du608./test6
    308./test4
    4./scf/lib
    4./scf/service/deploy/product
    4./scf/service/deploy/info
    12./scf/service/deploy
    16./scf/service
    4./scf/doc
    4./scf/bin
    32./scf
    8./test3
    1288.

    只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小

    显示指定文件所占空间

    # du log2012.log 300     log2012.log

    方便阅读的格式显示test目录所占空间情况:

    # du -h test608K    test/test6
    308K    test/test4
    4.0K    test/scf/lib
    4.0K    test/scf/service/deploy/product
    4.0K    test/scf/service/deploy/info
    12K     test/scf/service/deploy
    16K     test/scf/service
    4.0K    test/scf/doc
    4.0K    test/scf/bin
    32K     test/scf
    8.0K    test/test3
    1.3M    test

    【awk命令】

    AWK是一种处理文本文件的语言,是一个强大的文本分析工具。

    语法

    awk [选项参数]'script'var=value file(s)
    awk [选项参数]-f scriptfile var=value file(s)

    基本用法

    log.txt文本内容如下:

    2thisis a test
    3Are you like awk
    This's a test
    10 There are orange,apple,mongo

    用法一:

    awk '{[pattern] action}'{filenames}# 行匹配语句 awk '' 只能用单引号

    实例:

    # 每行按空格或TAB分割,输出文本中的1、4项
     $ awk '{print $1,$4}' log.txt
     ---------------------------------------------2 a
     3 like
     This's
     10 orange,apple,mongo
     # 格式化输出
     $ awk '{printf "%-8s %-10s
    ",$1,$4}' log.txt
     ---------------------------------------------
     2        a
     3        like
     This's
     10       orange,apple,mongo
     

    用法二:

    awk -F  #-F相当于内置变量FS, 指定分割字符

    实例:

    # 使用","分割
     $  awk -F,'{print $1,$2}'   log.txt
     ---------------------------------------------2thisis a test
     3Are you like awk
     This's a test
     10 There are orange apple
     # 或者使用内建变量
     $ awk 'BEGIN{FS=","}{print $1,$2}'     log.txt
     ---------------------------------------------
     2 this is a test
     3 Are you like awk
     This's a test
     10There are orange apple
     # 使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
     $ awk -F '[ ,]''{print $1,$2,$5}'   log.txt
     ---------------------------------------------2this test
     3Are awk
     This's a
     10 There apple

    用法三:

    awk -v  # 设置变量

    实例:

     $ awk -va=1'{print $1,$1+a}' log.txt
     ---------------------------------------------2334This's 1
     10 11
     $ awk -va=1 -vb=s '{print $1,$1+a,$1b}' log.txt
     ---------------------------------------------
     2 3 2s
     3 4 3s
     This's 1This'ss
     10 11 10s

    用法四:

    awk -f {awk脚本}{文件名}

    实例:

     $ awk -f cal.awk log.txt

    详细参见 http://www.runoob.com/linux/linux-comm-awk.html

    【su命令】

    Linux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。

    使用权限:所有使用者。

    语法

    su [-fmp][-c command][-s shell][--help][--version][-][USER [ARG]]

    参数说明

    • -f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
    • -m -p 或 --preserve-environment 执行 su 时不改变环境变数
    • -c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
    • -s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
    • --help 显示说明文件
    • --version 显示版本资讯
    • - -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
    • USER 欲变更的使用者帐号
    • ARG 传入新的 shell 参数

    实例

    变更帐号为 root 并在执行 ls 指令后退出变回原使用者

    su -c ls root

    变更帐号为 root 并传入 -f 参数给新执行的 shell

    su root -f

    变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)

    su - clsung

    切换用户

    hnlinux@w3cschool.cc:~$ whoami //显示当前用户
    hnlinux
    hnlinux@w3cschool.cc:~$ pwd //显示当前目录/home/hnlinux
    hnlinux@w3cschool.cc:~$ su root //切换到root用户密码: 
    root@w3cschool.cc:/home/hnlinux# whoami 
    root
    root@w3cschool.cc:/home/hnlinux# pwd/home/hnlinux

    切换用户,改变环境变量

    hnlinux@w3cschool.cc:~$ whoami //显示当前用户
    hnlinux
    hnlinux@w3cschool.cc:~$ pwd //显示当前目录/home/hnlinux
    hnlinux@w3cschool.cc:~$ su - root //切换到root用户密码: 
    root@w3cschool.cc:/home/hnlinux# whoami 
    root
    root@w3cschool.cc:/home/hnlinux# pwd //显示当前目录/root

    【ll命令】

    ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。

    Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便。

    如果要使用此命令,可以作如下修改:
    打开 ~/.bashrc
    找到 #alias ll=’ls -l’,去掉前面的#就可以了。(关闭原来的终端才能使命令生效)
    这样个人用户可以使用ll命令,当切换成超级用户后,使用ll命令时提示找不到命令,那是因为你只是修改了个人用户的配置,所以,切换成root后做相同的操作即可解决问题。
    启示:我们可以通过修改~/.bashrc添加任何其他的命令别名。

    ll命令结果说明

    drwxr-xr-x   2 root root 48 2013-11-27 16:34 test/

    第一个栏位,表示文件的属性。Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。

    这有十个格子可以添(具体程序实现时,实际上是十个bit位)。

      第一个字母表示文件类型,

            ”-”,普通文件.

            ”d”目录,字母”d”,是dirtectory(目录)的缩写.

            “l”符号链接。请注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息.

            “b”块设备文件。

            “c”字符设备文件。

    紧接着的3*3个字符分3组,各指示此文件的读、写、执行权限,对于owner、group、others而言。
    因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):  
    rwx(Owner)r-x(Group)r-x(Other)  
    这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。
    另外,有一些程序属性的执行部分不是X,而是S,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。 

    第二个栏位,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。

    第三个栏位,表示该文件或目录的拥有者。若使用者目前处于自己的Home,那这一栏大概都是它的账号名称。

    第四个栏位,表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。
    第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主。  

    第六个栏位,表示最后一次修改时间。以“月,日,时间”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。

    第七个栏位,表示文件名。我们可以用ls –a显示隐藏的文件名。

    修改文件权限用,chmod命令

     
  • 相关阅读:
    http的8种请求方式
    死锁
    进程与线程
    vuex
    路由懒加载
    SPA单页面富应用
    组件中的data为什么必须是函数
    v-for中key的作用
    关于排序的常识总结
    关于树的常见操作-C++面试
  • 原文地址:https://www.cnblogs.com/zhangwuji/p/7413628.html
Copyright © 2020-2023  润新知