zoukankan      html  css  js  c++  java
  • Linux 命令行总结

    1、使用ln不加参数,会创建硬链接,如果要创建软连接,需要加-s 参数。

    # ln test1 test8
    -rw-r--r-- 5 root root 0 Nov  4 15:07 test1
    -rw-r--r-- 5 root root 0 Nov  4 15:07 test8

    2、使用-s 参数,会创建软连接。

    # ln -s test1 test9
    lrwxrwxrwx 1 root root 5 Nov  4 15:19 test9 -> test1

    3、使用cp -s 同样也可以创建软连接。

    # cp -s test1 test10
    lrwxrwxrwx 1 root root 5 Nov  4 15:21 test10 -> test1

     4、stat命令可以提供文件系统上某个文件的所有状态信息。

    # stat test2
      File: `test2'
      Size: 0             Blocks: 0          IO Block: 4096   regular empty file
    Device: 803h/2051d    Inode: 267778      Links: 5
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2016-11-04 15:07:34.551721265 +0800
    Modify: 2016-11-04 15:07:34.551721265 +0800
    Change: 2016-11-04 15:17:39.042608528 +0800

    5、file命令可以用来查看文件类型的工具

    # file test4
    test4: symbolic link to `test1'  #符号连接,test4链接到test1

    6、cat -n 查看文件的时候加行号

    # cat -n test1.sh
         1    #!/bin/bash
         2    #print hello world in the console window
         3    a="hello world"
         4    echo $a

    7、cat -b 只在文本行前添加行号,空白行不添加行号

    # cat -b test1.sh
         1    #!/bin/bash
    
         2    #print hello world in the console window
    
         3    a="hello world"
    
         4    echo $a

    8、实时检测进程 top:第一行显示了当前时间、系统的运行时间、登入的用户数以及系统的平均负载。平均负载有三个值:最近一分钟的、最近5分钟的、最近15分钟的平均负载。值越大说明系统的负载越大,如果系统的负载超过2,就说明系统比较繁忙了。

    top - 15:45:18 up 198 days,  4:40,  8 users,  load average: 0.10, 0.04, 0.01
    Tasks: 1354 total,   1 running, 1352 sleeping,   0 stopped,   1 zombie
    Cpu(s):  0.1%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:  66001880k total, 13323228k used, 52678652k free,   290580k buffers
    Swap: 16777212k total,    18948k used, 16758264k free,  2260564k cached
    
    

     9、sort的用法,数字排序 sort -n

    # cat file1
    1 
    4
    3
    9
    6
    7
    # sort -n file1
    1 
    3
    4
    6
    7
    9

    排反序加参数 -r,sort -nr

    # sort -nr file1
    9
    7
    6
    4
    3
    1

    sort  -t 参数来指定字段分隔符,-k参数用来指定排序的字段

    # sort -t ':' -k 3 -n /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/usr/sbin/nologin

    10、使用du -sh |sort -nr 对目录的文件大小进行排序

    # du -sh * | sort -nr
    240M    work
    4.0K    test.txt
    4.0K    small.pyc
    4.0K    small.py
    4.0K    data.txt
    4.0K    changer.py
    

    11、tar 打包和解压缩

    # tar -cvf test.tar file1 file2 
    file1
    file2

    # ls
    file1  file2  test.tar
    
    
    # tar -xvf test.tar
    file1
    file2

    12、 环境变量:环境变量分为两类,全局变量和局部变量。

    查看全局变量 printenv

    MAIL=/var/spool/mail/root
    PATH=/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/ibutils/bin:/root/bin
    PWD=/root/wangtao/work/shell/20160930
    KDE_IS_PRELINKED=1
    LANG=en_US.UTF-8
    MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles
    LOADEDMODULES=
    KDEDIRS=/usr
    SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
    HISTCONTROL=ignoredups
    SHLVL=1
    HOME=/root
    LOGNAME=root
    QTLIB=/usr/lib64/qt-3.3/lib
    CVS_RSH=ssh

    查看单个环境变量时,必须在环境变量的名称前放置一个$符。

    # echo $HOME
    /root

    13、set命令会显示为某个特定进程设置的所有环境变量,设置局部环境变量,,记住在环境变量名称,等号和值之间没有空格

    # test=testing
    # echo  $test
    testing

    14、在子进程中设置了一个局部环境变量,一旦你推出了环境变量,那个局部环境变量就不能用了。

    # bash
    # test=testing
    #echo $test
    testing
    #exit
    exit
    #echo $test
    
    #

    15、设置全局环境变量,创建全局环境变量的方法是先创建一个局部环境变量,然后在把它导出到全局环境中,注意在导出局部环境变量时,不能用美元符($)去引用变量名。

    # test="testing a long string"
    echo $test
    testing a long string
    # export test
    # bash
    # echo $test
    testing a long string

    16、删除环境变量

    删除一个已经存在的环境变量,可以使用unset.

    # echo $test
    testing a long string
    # unset test
    # echo $test
    
    #

    17、PATH环境变量,冒号分隔的shell查找命令的目录列表,设置PATH环境变量

    # echo $PATH
    /usr/sw-cluster/intel/composer_xe_2013_sp1.4.211/bin/intel64:/usr/sw-cluster/intel/composer_xe_2013_sp1.4.211/mpirt/bin/intel64:/usr/sw-cluster/intel/composer_xe_2013_sp1.4.211/debugger/gdb/intel64_mic/py26/bin
     
    echo $PATH
    PATH=$PATH:/home/usr/test

    18、登陆shell

          当你登陆shell,bash shell 会作为登陆shell启动,登陆shell 会从4个不同的启动文件里读取命令,下面时bash shell处理这些文件的次序。/etc/profile文件时bash shell的主启动文件。 

    /etc/profile
    $HOME/.bash_profile
    $HOME/.bash_login
    $HOME/.profile

    19.可变数组

    # mytest=(one two three four five)
    
    # echo $mytest
    one
    # echo ${mytest[2]}
    three
    # echo ${mytest[*]}
    one two three four five

    20、使用命令别名,使用alias -p 可以查看已有的别名列表

    # alias -p
    alias cp='cp -i'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mc='. /usr/libexec/mc/mc-wrapper.sh'
    alias mv='mv -i'
    alias rm='rm -i'

    你也可以使用alias命令创建自己的命令别名

    # alias li='ls -il'

    21、添加用户,使用useradd命令使用系统的默认值以及命令行参数来设置用户账户。

    # /usr/sbin/useradd -D
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes

    可以使用useradd -D -s 来修改用户参数

    # useradd -D -s /bin/tsch
    You have mail in /var/spool/mail/root
    [root@mail ~]# 
    [root@mail ~]# 
    [root@mail ~]# useradd -D
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/tsch
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes

    删除用户 可以使用userdel -r 选择删除用户的HOME目录和mail目录

    /usr/sbin/userdel -r test

    22、使用linux组

    /etc/group文件,/etc/group文件包含系统上用到的每个组的信息。(组名, 组密码, GID, 属于该组的用户列表)

    # cat /etc/group
    root:x:0:
    bin:x:1:bin,daemon
    daemon:x:2:bin,daemon
    sys:x:3:bin,adm
    adm:x:4:adm,daemon
    tty:x:5:
    disk:x:6:
    lp:x:7:daemon
    mem:x:8:
    kmem:x:9:
    wheel:x:10:

    创建新组groupadd

    # /usr/sbin/groupadd shared
    # tailf /etc/group
    pcp:x:486:
    squid:x:23:
    sfcb:x:485:root
    radiusd:x:95:
    tcpdump:x:72:
    screen:x:84:
    slocate:x:21:
    zjq:x:501:
    www:x:502:
    shared:x:503:

    可以使用usermod命令来添加用户到该组

    # /usr/sbin/usermod -G shared test
    [root@mail ~]# tail /etc/group
    pcp:x:486:
    squid:x:23:
    sfcb:x:485:root
    radiusd:x:95:
    tcpdump:x:72:
    screen:x:84:
    slocate:x:21:
    zjq:x:501:
    www:x:502:
    shared:x:503:test

    使用groupmod -n 修改组名,现在已经将组名shared改为sharing.

    /usr/sbin/groupmod -n sharing shared
    [root@mail ~]# tail /etc/group
    pcp:x:486:
    squid:x:23:
    sfcb:x:485:root
    radiusd:x:95:
    tcpdump:x:72:
    screen:x:84:
    slocate:x:21:
    zjq:x:501:
    www:x:502:
    sharing:x:503:test

    23、文件系统日志方式

    数据模式: 索引节点和文件都会被写入日志;丢失数据风险低,但性能差

    排序模式: 只有索引节点数据会被写入日志,但只有数据成功写入后才删除;性能和安全之间的良好折中

    ext4:  ext4文件系统支持压缩和加密,ext4文件系统还支持一个称作区段的特性。

    磁盘格式化分区与挂载

    # sudo fdisk /dev/sdc
    p    显示当前分区表
    n    添加一个新分区
    p    推出,不保存更改
    w   将分区表写入磁盘
    
    格式化
    mkefs          创建一个ext文件系统
    mke2fs        创建一个ext2文件系统
    mkfs.ext3    创建一个ext3文件系统
    mkfs.ext4    创建一个ext4文件系统
    
    #sudo mkfs.ext4 /dev/sdc1
    #sudo mkdir /mnt/testing
    #sudo mount -t ext4 /dev/sdc1 /mnt/testing
    
    #这种挂载文件系统的方法只会临时挂载该文件系统。当重启linux系统时,文件系统不会自动挂载,要强制linux在启动时自动挂载这个新文件系统,可以将文件系统添加到/etc/fstab文件按中。

    #最流行的文件系统时ext3和ext4,这两个文件系统都提供了日志文件系统。


    24、内核模块

    Linux的内核模块文件的命名方式通常为<模块名称.ko>,CentOS系统的内核模块被存放在/lib/modules/`uname -r`.
    lsmod 命令用来显示当前Linux内核模块状态,模块名称,占用内存大小,是否被使用。
    # lsmod
    Module                  Size  Used by
    vboxsf                 42558  3 
    bnep                   18895  2 
    rfcomm                 58045  0 
    bluetooth             391253  10 bnep,rfcomm
    6lowpan_iphc           18262  1 bluetooth
    joydev                 17113  0 
    snd_intel8x0           37321  2 
    snd_ac97_codec        105860  1 snd_intel8x0
    ac97_bus               12642  1 snd_ac97_codec
    snd_pcm                87194  2 snd_ac97_codec,snd_intel8x0
    snd_seq_midi           13324  0 

      modprobe命令可以动态加载喝卸载内核模块:

    # modprobe ip_vs                                #动态加载ip_vs模块
    root@adonis:~# lsmod | grep ip_vs               #查看模块是否加载成功
    ip_vs                 116816  0 
    nf_conntrack           87794  1 ip_vs
    libcrc32c              12543  1 ip_vs
    root@adonis:~# modprobe -r ip_vs                #动态卸载ip_vs模块
    root@adonis:~# modinfo ip_vs                    #查看内核模块信息
    filename:       /lib/modules/3.16.0-30-generic/kernel/net/netfilter/ipvs/ip_vs.ko
    license:        GPL
    srcversion:     E99FD4CE8D7CC74AC469649
    depends:        nf_conntrack,libcrc32c
    intree:         Y
    vermagic:       3.16.0-30-generic SMP mod_unload modversions 686 
    signer:         Magrathea: Glacier signing key
    sig_key:        3C:66:A9:3E:B5:D1:A5:68:11:66:B6:81:A5:17:93:8D:08:1E:4D:C7
    sig_hashalgo:   sha512
    parm:           conn_tab_bits:Set connections' hash size (int)

    25、wc 显示文件行数

    # wc -l /etc/passwd
    40 /etc/passwd

      显示文件的单词个数

    # wc -w /etc/passwd
    63 /etc/passwd

    26、限制用户的进程数为200,在/etc/security/limits.conf文件末尾中加入一行,root用户不会受影响

    * hard nproc 200
  • 相关阅读:
    Vue之利用vueRouter的元信息实现页面的缓存
    Vue之directives所遇小bug
    《CSS世界》读书笔记
    git 错误error: failed to push some refs to
    v-text指令消除刷新慢显示替换的过程
    防抖案例实战之仿百度搜索框即时搜索
    数字金额转大写金额
    常见前端安全
    sendmail邮箱部署设置
    Shell之监控cpu、内存、磁盘脚本
  • 原文地址:https://www.cnblogs.com/wangtao1993/p/6030430.html
Copyright © 2011-2022 走看看