Linux命令小总结

        

        随着对Linux学习的深入,Linux命令也越来越多的。虽然我们可以通过man等帮助查询我

忘记的命令,但写脚本本质是由命令有序的堆砌而运行的。下面让我来总结一番我们学习过的命令



    1.查看当前的终端设备:#tty

    Linux命令小总结

    2.显示当前使用的shell

    echo ${SHELL}

    Linux命令小总结

   3. 显示当前系统使用的所有shell
    cat /etc/shells

    Linux命令小总结

    
    4.示提示符格式
    [root@localhost~]#echo $PS1

    Linux命令小总结
 

  5.区别指定的命令是内部或外部命令
    type COMMAND

    Linux命令小总结
  

  6.hash常见用法
    hash 显示hash缓存
    hash –l 显示hash缓存,可作为输入使用
    hash –p path name 将命令全路径path起别名为name
    hash –t name 打印缓存中name的路径
    –d name 清name缓存
    hash –r 清除缓存

     Linux命令小总结   

   

    7.显示当前shell进程所有可用的命令别名
    alias
    定义别名NAME,其相当于执行命令VALUE
    alias NAME=’VALUE’
    在命令行中定义的别名,仅对当前shell进程有效
    如果想永久有效,要定义在配置文件中
    仅对当前用户:~/.bashrc
    对所有用户有效:/etc/bashrc
    撤消别名:unalias
    unalias[-a] name [name …]
    -a 取消所有别名

    Linux命令小总结        

    
   8. 用户登录信息查看命令:
    whoami: 显示当前登录有效用户
    who: 系统当前所有的登录会话
    w: 系统当前所有的登录会话及所做的操作

 

   9.命令:
    创建新screen会话
    screen –S [SESSION]
    加入screen会话
    screen –x [SESSION]
    退出并关闭screen会话
    exit
    剥离当前screen会话
    Ctrl+a,d
    显示所有已经打开的screen会话
    screen -ls
    恢复某screen会话
    screen -r [SESSION]

    Linux命令小总结


   10. echo命令:
    功能:显示字符
    语法:echo [-neE][字符串]
   
    选项
    E (默认)不支持\解释功能
       -n 不自动换行
      –e 启用\字符的解释功能
    显示变量
     echo “$VAR_NAME“ 变量会替换,弱引用
     echo ‘$VAR_NAME‘ 变量不会替换,强引用
    启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出(有可能用到脚本中)
    \a 发出警告声   —>自动化脚本会用到
    \b 退格键
    \c 最后不加上换行符号
    \n 换行且光标移至行首
    \r 回车,即光标移至行首,但不换行
    \t 插入tab
    \\插入\字符

    11.历史history:
     history [-c] [-d offset] [n]
     history -anrw[filename]
     history -psarg[arg…]

    选项:
    -c: 清空命令历史
    -d offset: 删除历史中指定的第offset个命令
    n: 显示最近的n条历史
    a: 追加本次会话新执行的命令历史列表至历史文件
    -n: 读历史文件中未读过的行到历史列表
    -r: 读历史文件附加到历史列表
    -w: 保存历史列表到指定的历史文件
    -p: 展开历史参数成多行,但不存在历史列表中
    -s: 展开历史参数成一行,附加在历史列表后

    
    12.显示日期和时间:date

    SYNOPSIS
       date       [OPTION]…
       [+FORMAT]
       date  [-u|–utc|–uni-
       versal]          [MMD-
       Dhhmm[[CC]YY][.ss]]

     Linux的两种时钟
    系统时钟:由Linux内核通过CPU的工作频率进行的
    硬件时钟:主板
    hwclock,clock: 显示硬件时钟
    -s, –hctosys以硬件时钟为准,校正系统时钟
    -w, –systohc以系统时钟为准,校正硬件时钟

    
    [root@CentOS6 app]# date             #系统格式                                                                   
    Sat Jul 29 21:18:45 CST 2017                                                                                             
    [root@CentOS6 app]# date 082712342017.03   系统格式,月日小时分年。秒                
    Sun Aug 27 12:34:03 CST 2017                                                                                          
    [root@CentOS6 app]# date “+%F %T”  #自定义模式                                                      
    2017-07-29 07-29-17                                                                                                           
    [root@CentOS6 app]# date -d -1 “+%F +%D” #错误自定义一天以前书写格式               
    date: invalid date `-1′                                                                                                            
    [root@CentOS6 app]# date -d “-1 days” “+%F %T”#正确的一天以前要加单位要引起来
    2017-07-28  07-28-17                                                                                                           

   13.时区:/etc/localtime



   14. cal显示日历
        cal-y

    Linux命令小总结


    15.关机或重启:    
     halt, poweroff
     重启:reboot
    -f: 强制,不调用shutdown
    -p: 切断电源
     关机或重启:shutdown
     shutdown [OPTION]… TIME [MESSAGE]
       -r: reboot
       -h: halt
       -c:cancel
     TIME:无指定,默认相当于+1
        now: 立刻,相当于+0
     +m: 相对时间表示法,几分钟之后;例如+3
     hh:mm: 绝对时间表示,指明具体时间


       显示当前路径pwd
    -P 显示真实物理路径
    -L 显示链接路径(默认)



    16.基名:basename(一般用于脚本取文件名)


    17.目录名:dirname


   18.当前目录的内容或指定目录
    用法:ls [options] [files_or_dirs]
    示例:
    ls -a包含隐藏文件
    ls -l显示额外的信息
    ls -R目录递归通过
    ls -ld目录和符号链接信息
    ls -1 文件分行显示
    ls –S 按从大到小排序
    –t 按mtime排序
    ls –U 按目录存放顺序显示
    ls –X 按文件后缀排序



   19. stat
    文件:metadata, data
    三个时间戳:
    access time:访问时间,atime,读取文件内容
    modify time: 修改时间, mtime,改变文件内容(数据)
    change time: 改变时间, ctime,元数据发生改变

    Linux命令小总结


    20.touch命令:
    touch [OPTION]… FILE…
    -a仅改变atime和ctime
    -m 仅改变mtime和ctime
    -t [[CC]YY]MMDDhhmm[.ss]
    指定atime和mtime的时间戳
    -c如果文件不存在,则不予创建   

    21.mv 
     mv [OPTION]… [-T] SOURCE DEST
     mv [OPTION]… SOURCE… DIRECTORY
     mv  [OPTION]….SOURCE…
    选项:
    -i: 交互式
    -f: 强制



  22.rm[OPTION]… FILE…
    常用选项:
    -i: 交互式
    -f: 强制删除
    -r: 递归
    –no-preserve-root

    rm-r递归删除目录树
    rm命令:
    删除目录项
    数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖
     注意:请慎用rm -rf,一般用把别名处理alias rm=”mv -t”

    eg:
    rm-tree 显示目录树
    -d: 只显示目录
    -L level:指定显示的层级数目
    -P pattern: 只显示由指定pattern匹配到的路



   23.mkdir
    -p: 存在于不报错,且可自动创建所需的各目录
    -v: 显
    -m MODE: 创建目录时直接指定权限

    24.rmdir
    rmdir删除空目录
    -p: 递归删除父空目录
    -v: 显示详细信息

  

    24.cp复制

    cp[OPTION]… [-T] SOURCE DEST
    cp[OPTION]… SOURCE… DIRECTORY
    cp[OPTION]… -t DIRECTORY SOURCE…
    

   25.ln链接

   语法:

    ln filename [linkname] 硬连接

    

    ln -s  filename [linkname] 软连接

    26.tr转换和删除字符
    tr[OPTION]… SET1 [SET2]
    选项:
    -c–C –complement:取字符集的补集(除了)
    -d–delete:删除所有属于第一字符集的字符
    -s–squeeze-repeats:把连续重复的字符以单独一个字符表示
    -t–truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符

       Linux命令小总结

       Linux命令小总结

      Linux命令小总结


   

    27. less :一页一页地查看输入(通常与管道一起用)
           cat /etc/passwd |less

    28.useradd
    useradd[options] LOGIN
    -u UID: [UID_MIN, UID_MAX]定义在/etc/login.defs
    -o 配合-u 选项,不检查UID的唯一性
    -g GID:指明用户所属基本组,可为组名,也可以GID
    -c “COMMENT”:用户的注释信息
    -d HOME_DIR:以指定的路径(不存在)为家目录
    -s SHELL: 指明用户的默认shell程序
    可用列表在/etc/shells文件中
    -G GROUP1[,GROUP2,…]:为用户指明附加组,组须事先存在
    -N 不创建私用组做主组,使用users组做主组
    -r: 创建系统用户CentOS 6: ID<500,CentOS 7: ID<1000
    默认值设定:/etc/default/useradd文件中
    显示或更改默认设置:
    useradd-D
    useradd–D -s SHELL
    useradd –D –b BASE_DIR
    useradd –D –g GROUP


  29.  newusers passwd格式文件批量创建用户


   30. chpasswd 批量修改用户口令

    

    31.usermod
    usermod[OPTION] login
    -u UID: 新UID
    -g GID: 新主组
    -G GROUP1[,GROUP2,…[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
    -s SHELL:新的默认SHELL
    -c ‘COMMENT’:新的注释信息
    -d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
    -l login_name: 新的名字;
    -L: lock指定用户,在/etc/shadow 密码栏的增加!
    -U: unlock指定用户,将/etc/shadow 密码栏的! 拿掉
    -e YYYY-MM-DD: 指明用户账号过期日期
    -f INACTIVE: 设定非活动期限

    32.userdel
    userdel[OPTION]… login
    -r: 删除用户家目录

    33.id
    id [OPTION]… [USER]
    -u: 显示UID
    -g: 显示GID
    -G: 显示用户所属的组的ID
    -n: 显示名称,需配合ugG使用

    Linux命令小总结
  

   34.su[options…] [-] [user [args…]]
    切换用户的方式:
    su  UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
    su  –  UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
    root su至其他用户无须密码;非root用户切换时需要密码
    换个身份执行命令:
    su[-] UserName-c ‘COMMAND’
    选项:-l –login
    su-l UserName相当于su-UserName

    Linux命令小总结


    34. passwd: 修改自己的密码
    常用选项:
    -l:锁定指定用户
    -u:解锁指定用户
    -e:强制用户下次登录修改密码
    -n mindays: 指定最短使用期限
    -x maxdays:最大使用期限
    -w warndays:提前多少天开始警告
    -iinactivedays:非活动期限
    –stdin:从标准输入接收用户密码

    35.gpasswd[OPTION] GROUP
    -a user: 将user添加至指定组中
    -d user: 从指定组中移除用户user
    -A user1,user2,…: 设置有管理权限的用户列表
    newgrp命令:临时切换主组
    如果用户本不属于此组,则需要组密码
    groupmems[options] [action]
    options:
    -g, –group groupname更改为指定组(只有root)
    Actions:
    -a, –add username 指定用户加入组
    -d, –delete username 从组中删除用户
    -p, –purge 从组中清除所有成员
    -l, –list 显示组成员列


    36.groups [OPTION].[USERNAME]… 查看用户所属组列表
    -M –maxdaysMAX_DAYS
    -W –warndaysWARN_DAYS
    –l 显示密码策略
    示例:
    chage-d 0 tom 下一次登录强制重设密码
    chage-m 0 –M 42 –W 14 –I 7 tom
    chage-E 2016-09-10 tom
  

    37.chfn指定个人信息


    38.chsh指定shell


    39.finger


    40.groupadd[OPTION]… group_name
    -g GID: 指明GID号;[GID_MIN, GID_MAX]
    -r: 创建系统组
    CentOS 6: ID<500
    CentOS 7: ID<1000


    41.组属性修改:groupmod
    groupmod[OPTION]… group
    -n group_name: 新名字
    -g GID: 新的GID


    42.组删除:groupdel
    groupdelGROUP


    43.修改文件的属主:chown
    chown[OPTION]… [OWNER][:[GROUP]] FILE…
    用法:
    OWNER
    OWNER:GROUP
    :GROUP
    命令中的冒号可用.替换
    -R: 递归

    44.组密码:gpasswd
    gpasswd[OPTION] GROUP
    -a user: 将user添加至指定组中
    -d user: 从指定组中移除用户user
    -A user1,user2,…: 设置有管理权限的用户列表


    45.newgrp命令:临时切换主组
    如果用户本不属于此组,则需要组密码
  

     46. groupmems[options] [action]
    options:
     -g, –group groupname更改为指定组(只有root)
     Actions:
     -a, –add username 指定用户加入组
     -d, –delete username 从组中删除用户
     -p, –purge 从组中清除所有成员
     -l, –list 显示组成员列表


    47.groups [OPTION].[USERNAME]… 查看用户所属组列表

    

     48.修改文件的所有者

     chown[OPTION]… –reference=RFILE FILE…

    Linux命令小总结

    49. 修改文件的属组:chgrp
    chgrp[OPTION]… GROUP FILE…
    chgrp[OPTION]… –reference=RFILE FILE…
    -R 递归
    文件的权限主要针对三类对象进行定义:
    owner: 属主, u
    group: 属组, g
    other: 其他, o
    每个文件针对每类访问者都定义了三种权限:
    r: Readable
    w: Writable
    x: eXcutable


   50. 文件权限操作命令
    chmod

    chmod[OPTION]… OCTAL-MODE FILE…
    -R: 递归修改权限
    chmod[OPTION]… MODE[,MODE]… FILE…
    MODE:
    修改一类用户的所有权限:
    u= g= o= ug= a= u=,g=
    修改一类用户某位或某些位权限
    u+ u-g+ g-o+ o-a+ a-+ –
    chmod[OPTION]… –reference=RFILE FILE…
    参考RFILE文件的权限,将FILE的修改为同RFILE
     文件和目录的默认权限


    51.  umask值可以用来保留在创建文件权限
    新建FILE权限: 666-umask
    如果所得结果某位存在执行(奇数)权限,则将其权限+1
    新建DIR权限: 777-umask
    非特权用户umask是002
     root的umask是022
     umask: 查看
     umask#: 设定
     umask002
     umask–S 模式方式显示
     umask–p 输出可被调用


    51. chattr +i 不能删除,改名,更改
          chattr +a 只能追加内容


    52. lsattr 显示特定属性
    ACL文件上的group权限是mask 值(自定义用户,自定义组,拥有组的最大权限),而非传统的组权限
    

    53. getfacl可看到特殊权限:flags
    通过ACL赋予目录默认x权限,目录内文件也不会继承x权限
    base ACL 不能删除
    

    54.setfacl-k dir 删除默认ACL权限
    setfacl–b file1清除所有ACL权限
    getfaclfile1 | setfacl–set-file=-file2 复制file1的acl权限给file2
    全局设置:/etc/bashrc用户设置:~/.bashrc

    55.cat [OPTION]… [FILE]…
    -E: 显示行结束符$
    -n: 对显示出的每一行进行编号
    -A:显示所有控制符
    -b:非空行编号
    -s:压缩连续的空行成一行


    56. more: 分页查看文件
    more [OPTIONS…] FILE…
    -d: 显示翻页及退出提示


    57.less:一页一页地查看文件或STDIN输出
    查看时有用的命令包括:
    /文本搜索文本
    n/N跳到下一个或上一个匹配
    less命令是man命令使用的分页器


   58. head
    head [OPTION]… [FILE]…
    -c #: 指定获取前#字节
    -n #: 指定获取前#行
    -#:指定行数

    Linux命令小总结


    59.tail
    tail [OPTION]… [FILE]…
    -c #: 指定获取后#字节
    -n #: 指定获取后#行
     -#:
     -f: 跟踪显示文件新追加的内容,常用日志监控


    60 .cut [OPTION]… [FILE]…
    -d DELIMITER: 指明分隔符,默认tab
    -f FILEDS:
    #: 第#个字段
    #,#[,#]:离散的多个字段,例如1,3,6
    #-#:连续的多个字段, 例如1-6
    混合使用:1-3,7
    -c按字符切割
        –output-delimiter=STRING指定输出分隔符
    显示文件或STDIN数据的指定列
    cut-d:-f1/etc/passwd
    cat /etc/passwd|cut-d:-f7
    cut-c2-5/usr/share/dict/words


    61.paste 合并两个文件同行号的列到一行
    paste [OPTION]… [FILE]…
    -d 分隔符:指定分隔符,默认用TAB
    -s : 所有行合成一行显示
    paste f1 f2
    paste -s f1 f2

    62.wc
    计数单词总数、行总数、字节总数和字符总数
    可以对文件或STDIN中的数据运行
    $wcstory.txt
    392371901story.txt
    行数字数字符数
    使用-l来只计数行数
    使用-w来只计数单词总数
    使用-c来只计数字节总数
    使用-m来只计数字符总数
    把整理过的文本显示在STDOUT,不改变原始文件


    63.$sort[options]file(s)
    常用选项
    -r执行反方向(由上至下)整理
    -n执行按数字大小整理
    -f选项忽略(fold)字符串中的字符大小写
    -u选项(独特,unique)删除输出中的重复行
    -t c选项使用c做为字段界定符
    -k X选项按照使用c字符分隔的X列来整理能够使用多次


    64.uniq命令:从输入中删除前后相接的重复的行
    uniq[OPTION]… [FILE]…
    -c: 显示每行重复出现的次数
    -d: 仅显示重复过的行
    -u: 仅显示不曾重复的行
    连续且完全相同方为重复
    常和sort 命令一起配合使用:

     sort userlist.txt | uniq-c

    

    65.比较两个文件之间的区别
    $difffoo.conf-brokenfoo.conf-works
    5c5
    <use_widgets=no
    
    >use_widgets=yes
        注明第5行有区别(改变)
        diff命令的输出被保存在一种叫做“补丁”的文件中
        使用-u选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件。
        patch复制在其它文件中进行的改变(要谨慎使用)
        适用-b选项来自动备份改变了的文件
        $diff-ufoo.conf-brokenfoo.conf-works>foo.patch
        $patch-bfoo.conf-brokenfoo.patch


    66.grep命令选项
    –color=auto: 对匹配到的文本着色显示
    -v: 显示不被pattern匹配到的行
    -i: 忽略字符大小写
    -n:显示匹配的行号
    -c: 统计匹配的行数
    -o: 仅显示匹配到的字符串
    -q: 静默模式,不输出任何信息
    -A #: after, 后#行
    -B #: before, 前#行
    -C #:context, 前后各#行
    -e:实现多个选项间的逻辑or关系

    grep –e ‘cat ’ -e ‘dog’ file
    -w:匹配整个单词
    -E:使用ERE
    -F:相当于fgrep,不支持正则表达式
    字符匹配:
    . 匹配任意单个字符
    [] 匹配指定范围内的任意单个字符
    [^] 匹配指定范围外的任意单个字符
    [:alnum:] 字母和数字
    [:alpha:] 代表任何英文大小写字符,亦即A-Z, a-z
    [:lower:] 小写字母[:upper:] 大写字母
    [:blank:] 空白字符(空格和制表符)
    [:punct:] 标点符号


    匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数
    * 匹配前面的字符任意次,包括0次
    贪婪模式:尽可能长的匹配
    .*任意长度的任意字符
    \?匹配其前面的字符0或1次
    \+匹配其前面的字符至少1次
    \{n\}匹配前面的字符n次
    \{m,n\}匹配前面的字符至少m次,至多n次
    \{,n\}匹配前面的字符至多n次
    \{n,\}匹配前面的字符至少n次
    位置锚定:定位出现的位置
    ^ 行首锚定,用于模式的最左侧
    $ 行尾锚定,用于模式的最右侧
    ^PATTERN$ 用于模式匹配整行
    ^$ 空行
    ^[[:space:]]*$ 空白行
    \< 或\b词首锚定,用于单词模式的左侧
    \> 或\b词尾锚定;用于单词模式的右侧
    \<PATTERN\>匹配整个单词
    分组:\(\) 将一个或多个字符捆绑在一起,当作一个整体进行处理,如:\(root\)\+
    分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2, \3, …
    \1表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符
    示例:\(string1\+\(string2\)*\)
    \1 :string1\+\(string2\)*
    \2 :string2
    后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本身
    或者:\|
    示例:a\|b: a或b C\|cat: C或cat \(C\|c\)at:Cat或cat


    67. egrep= grep -E
    egrep[OPTIONS] PATTERN [FILE…]
    扩展正则表达式的元字符:
    字符匹配:
    . 任意单个字符
    [] 指定范围的字符
    [^] 不在指定范围的字符
    次数匹配:
    *:匹配前面字符任意次
    ?: 0或1次
    +:1次或多次
    {m}:匹配m次
    {m,n}:至少m,至多n次
    位置锚定:
    ^ :行首
    $ :行尾
    \<, \b :语首
    \>, \b :语尾
    分组:
    ()
    后向引用:\1, \2, …
    或者:
    a|b: a或b
    C|cat: C或cat
    (C|c)at:Cat或cat



原创文章,作者:m25Chronos,如若转载,请注明出处:http://www.178linux.com/83219

(6)
m25Chronosm25Chronos
上一篇 2017-07-29
下一篇 2017-07-30

相关推荐

  • 马哥linux运维第一天感受

    101个人的大家庭

    Linux干货 2018-03-26
  • 第一天心得体会

    初次见面,你好

    2018-03-26
  • linux终端的类型与linux发展历史

    一、linux console的类型与说明 说明:        1 由于虚拟终端的实现,人们可以多用户多任务的在一台计算机操作系统上工作             2 在80或90年代的旧电脑上,人们只能用分屏这样的方法来实现多用户,多任务的工作  …

    Linux干货 2016-11-03
  • CentOS计划任务详解

    一、计划任务应用场景:        需要每天对服务器上的数据进行备份,但是白天服务器的访问量较大,服务器承受着较大的压力,备份任务只能在夜晚服务器较空闲时才能进行。或者需要临时在某时间点执行一个任务等,都需要用到计划任务的功能。 二、计划任务分类:    &…

    Linux干货 2016-09-09
  • 简述开源协议

    简述开源协议 现在一说到智能手机,相信很容易就会想到苹果和安卓。安卓搭载的Android是一种基于Linux的自由及开源的操作系统,苹果手机搭载OS X是苹果公司为Mac系列产品开发的专属操作系统。    安卓手机凭借其开源的特性达到与苹果系统分庭伉礼的地位,又凭借其开源的价格优势,牢牢把控手机设备的中低端市场,其市场占有率远远…

    Linux干货 2017-03-26
  • 磁盘配额

    磁盘配额 1 启用磁盘配额 首先创建新的分区 /dev/sd5,并创建文件系统。 [root@local ~]# mkfs.ext4 /dev/sda5 由于xfs 不磁盘配额能成功,这里使用ext4. 然后把/dev/sda5分区挂载到 /home [root@local ~]# mount /dev/sda5 /home [root@local ~]# …

    Linux干货 2017-05-02