您的位置:新葡亰496net > 电脑系统 > bash的基础特性,linux文件系统及bash基础特性

bash的基础特性,linux文件系统及bash基础特性

发布时间:2019-09-17 09:20编辑:电脑系统浏览(189)

    一声令下历史

    shell进度会记录客户提交试行过的通令

    可以是用history查看:

    [root@localhost dev]# history 
        1  ss -tnl
        2  ifconfig
        3  vi /etc/sysconfig/network-scripts/ifcfg-ens33 
        4  reboot 
        5  systemctl stop firewalld
        6  systemctl disable firewalld
        7  ifconfig
        8  ifconfig
        9  startx
       10  ping 114.114.114.114
       11  top
    ......
      140  who -b
      141  who -r
      142  date
      143  w
      144  history 
    

     

    定制history的功能

    HISTSIZE:shell进度能够保存的命令历史的条数

    [root@localhost dev]# echo $HISTSIZE
    1000
    

    HISTFILE:悠久保存命令历史的文本,当退出登陆的时候,此番的吩咐历史才会被写入到HISTFILE中

    [root@localhost dev]# echo $HISTFILE
    /root/.bash_history
    
    [root@localhost dev]# cat /root/.bash_history
    ss -tnl
    ifconfig
    vi /etc/sysconfig/network-scripts/ifcfg-ens33 
    reboot 
    systemctl stop firewalld
    systemctl disable firewalld
    ifconfig
    ifconfig
    startx
    ping 114.114.114.114
    top
    ifconfig
    ifconfig --help
    type ls
    type ifconfig
    ......
    bash
    export name
    echo $name
    bash
    

    HISTFILESIZE:命令历史文件的轻重

    [root@localhost dev]# echo $HISTFILESIZE
    1000
    

     

    history常用命令用法

    -c:清空命令历史

    -d offset:删除钦定命令历史,offset为钦点的行数

    -r:从文件读取命令历史至历史列表中

    -w:把历史列表中的命令追加至历史文件中

    history #:展现近日的#条命令

     

    调用命令历史列表中的命令

    !#:再一次施行历史列表中第#条命令

    !!:再三次实行上一条命令

    !ST昂CoraING:再一遍推行命令历史列表中近年来一个以STCRUISERING开端的一声令下

     

    调用上一条命令的终极八个参数

    快捷键:按一下ESC再按点.

    可能使用字符串:!$

     

    调控命令的笔录情势

    [root@localhost /]# echo $HISTCONTROL
    ignoredups
    

    ignoredups:忽略重复的命令;

    ignorespace:忽略以空白字符开始的授命;

    ignoreboth:以上两个同期生效;

     

    【Linux相识相知】bash的根基脾性,linux相识相知bash

    linux文件系统

        一、根文件系统

      linux被识别的第一个被喻为根之间关系的文件系统叫做根文件系统(rootfs),别的分区要想被读到,须求挂载到根目录的有些挂载点(根的子目录)上。根文件系统至关心珍视要,整个文件系统统一访问入口。  

      Linux引导运转时,暗中同意使用的文件系统是根文件系统。当中一般都包含那样一些子目录:

      /boot 系统辅导文件寄存目录

      /bin 供全数客商使用的通令(不能够关联到独门分支)不可能关联到独门分区,os运行即会用到的次序。

      /sbin 管理员使用特权命令。root-only使用的命令。不能够关联到独门分区,os运行即会用到的主次。

      /lib 基本共享库文件(运转就必要的库文件),以及内核模块文件。

      /lib64 专项使用于63个人系统上的支持库文件

      /etc 配置文件目录(多数纯文本文件)

          (1)/etc/opt 为opt运转文件寄存配置目录

          (2)/etc/sgml /etc/xml三种标记语言。

      /home客商主目录约定俗成在/home/username(普通客户)管理员家目录正是/root

      /media 挂载光盘u盘等装置

      /mnt  挂载偶尔文件系统

      /dev 设备文件目录(特殊文件)

          b block device(可自由会见设备,多个电影,想看那四个随机点那叁个都足以)  c character device(县人民来信来访设备,按梯次访谈)

      /opt 附属类小部件,第三方应用程序安装目录系统安装完,额外安装的别的程序

      /srv 当前系统某个服务程序运行时,使用的中档数据。

      /tmp 一时文件寄放地方

      注:除开/boot和/home是无法关联到独门分区的,必需在根上

      /usr 独立分区上的目录(全局分享只读数据):那可不是user的简写呦(具备独立的文件系统结构)

       (1)/usr/bin 全数程序可采取

          (2)/usr/sbin 管理员使用

    新葡亰496net 1

     

             他的布署文件或然在/etc下

              include,c语言头文件的规范库(头文件是汇报库文件展开调用接口情势的)

          (3)/usr/share只读的 ,结构化独立数据

          (4)/usr/local第三方应用程序安装地方

      /var 日常独立分区,可变数据文件

    新葡亰496net 2

      当中cache:应用程序缓存数据目录

          lib 可变状态音信数量

          local:专项使用于为/usr/local下应用程序存储可变多少

          lock 锁文件

          log 日志目录及文件

          opt 专项使用于为/opt下应用程序存款和储蓄可变多少

             run 运转中经过的相关数据,平时用于存款和储蓄进程中的pid

          spool应用程序缓冲池

          tmp 系统重启进度中的有时文件

      /proc 用于出口基础,进度有关的虚构文件系统,

      /sys 输出当前系统上硬件器材相关消息的设想文件系统

      /selinux selinux相关安全计谋等新闻的存款和储蓄地点

        二、linux下的文件类型

      -(f)普通文书

      d目录文件(贮存的是路线音讯,找到目录下的音讯的门路音信,文件名到文件的不二秘籍音讯)

      b块设备文件,l软连接文件,c字符设备,p管道文件,s套接字文件(访谈现成系统的一个专项使用接口)

        三、系统管理类命令

      关机或重启命令:

      (1)halt,halt调用shutdown来关机,-f选项正是不调用shutdown强制关机,不建议使用

      (2)shutdown,shutdown  [option...]  time  [message...]

        -r 重启;-h关闭并清电源;-c撤消关机选项;

        time:now:立刻

         m:相对时间表示法,从命令提交后初阶总结。

        hh:mm:给定具体时间。

      (3)power off,关机。

      (4)init 0:关机;init6 重启。

      (5)reboot;重启。

      顾客登陆消息查阅命令:

      (1)whoami:显示当前登入的客商;

      (2)who:当前持有登陆会话;

      (3)w:系统当下有着登陆会话和操作。

    linux文件系统

        一、根文件系统

      linux被识其余首先个被叫做根之间涉及的文件系统叫做根文件系统(rootfs),其余分区要想被读到,需求挂载到根目录的有个别挂载点(根的子目录)上。根文件系统至关心爱护要,整个文件系统统一访谈入口。  

      Linux教导运营时,暗许使用的文件系统是根文件系统。在那之中一般都包罗那样一些子目录:

      /boot 系统教导文件贮存目录

      /bin 供全部顾客使用的一声令下(无法关联到独门分支)无法关联到独门分区,os运营即会用到的前后相继。

      /sbin 管理员使用特权命令。root-only使用的吩咐。不能够关联到独门分区,os运行即会用到的顺序。

      /lib 基本分享库文件(运行就需求的库文件),以及内核模块文件。

      /lib64 专项使用于六拾位系统上的援救库文件

      /etc 配置文件目录(比非常多纯文本文件)

          (1)/etc/opt 为opt运维文件寄存配置目录

          (2)/etc/sgml /etc/xml两种标记语言。

      /home客商主目录约定俗成在/home/username(普通客户)管理员家目录便是/root

      /media 挂载光盘u盘等道具

      /mnt  挂载不常文件系统

      /dev 设备文件目录(特殊文件)

          b block device(可任性访问设备,八个电影,想看那么些随机点这几个都能够)  c character device(县人民来信来访设备,按顺序访谈)

      /opt 附属类小部件,第三方应用程序安装目录系统设置完,额外安装的其他程序

      /srv 当前系统有些服务程序运维时,使用的中等数据。

      /tmp 有时文件寄放地点

      注:除了/boot和/home是不能够关联到独门分区的,必得在根上

      /usr 独立分区上的目录(全局分享只读数据):那可不是user的简写呦(具备独立的文件系统结构)

       (1)/usr/bin 全部程序可使用

          (2)/usr/sbin 管理员使用

    新葡亰496net 3

     

             他的布局文件也许在/etc下

              include,c语言头文件的标准库(头文件是描述库文件展开调用接口情势的)

          (3)/usr/share只读的 ,结构化独立数据

          (4)/usr/local第三方应用程序安装地方

      /var 平常独立分区,可变数据文件

    新葡亰496net 4

      个中cache:应用程序缓存数据目录

          lib 可变状态音讯数量

          local:专项使用于为/usr/local下应用程序存款和储蓄可变多少

          lock 锁文件

          log 日志目录及文件

          opt 专项使用于为/opt下应用程序存款和储蓄可变多少

             run 运转中经过的连带数据,平常用于存款和储蓄进度中的pid

          spool应用程序缓冲池

          tmp 系统重启进度中的有时文件

      /proc 用于出口基础,进程有关的虚构文件系统,

      /sys 输出当前系统上硬件设施相关消息的杜撰文件系统

      /selinux selinux相关安全计策等音讯的累积地点

        二、linux下的文件类型

      -(f)普通文书

      d目录文件(寄存的是渠道消息,找到目录下的新闻的门径新闻,文件名到文件的路子消息)

      b块设备文件,l软连接文件,c字符设备,p管道文件,s套接字文件(访谈现存系统的三个专项使用接口)

        三、系统管理类命令

      关机或重启命令:

      (1)halt,halt调用shutdown来关机,-f选项便是不调用shutdown强制关机,不提议利用

      (2)shutdown,shutdown  [option...]  time  [message...]

        -r 重启;-h关闭并清电源;-c撤销关机选项;

        time:now:立刻

         m:相对时间表示法,从命令提交后开端测度。

        hh:mm:给定具体日子。

      (3)power off,关机。

      (4)init 0:关机;init6 重启。

      (5)reboot;重启。

      客商登陆新闻查阅命令:

      (1)whoami:突显当前报到的客商;

      (2)who:当前享有登陆会话;

      (3)w:系统当下怀有登入会话和操作。

    补全作用

    指令补全

    shell程序在接受到客商实践命令的呼吁时,最侧面的字符串会被看做命令

    一声令下查找体制:首先查找内部命令,根据PATH意况变量中设定的目录,自左而右每一种搜索目录下的文本名

    [root@localhost /]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    

     使用Tab键补全

     

    渠道补全

     在给定的序曲路线下,以对应路线下的打头字符串来逐条相配初叶路线下各类文件

     

    指令历史

    shell进度会记录客户提交实践过的一声令下

    能够是用history查看:

    [[email protected] dev]# history 
        1  ss -tnl
        2  ifconfig
        3  vi /etc/sysconfig/network-scripts/ifcfg-ens33 
        4  reboot 
        5  systemctl stop firewalld
        6  systemctl disable firewalld
        7  ifconfig
        8  ifconfig
        9  startx
       10  ping 114.114.114.114
       11  top
    ......
      140  who -b
      141  who -r
      142  date
      143  w
      144  history 
    

     

    定制history的功能

    HISTSIZE:shell进度能够保存的授命历史的条数

    [[email protected] dev]# echo $HISTSIZE
    1000
    

    HISTFILE:持久保存命令历史的文本,当退出登入的时候,这一次的指令历史才会被写入到HISTFILE中

    [[email protected] dev]# echo $HISTFILE
    /root/.bash_history
    
    [[email protected] dev]# cat /root/.bash_history
    ss -tnl
    ifconfig
    vi /etc/sysconfig/network-scripts/ifcfg-ens33 
    reboot 
    systemctl stop firewalld
    systemctl disable firewalld
    ifconfig
    ifconfig
    startx
    ping 114.114.114.114
    top
    ifconfig
    ifconfig --help
    type ls
    type ifconfig
    ......
    bash
    export name
    echo $name
    bash
    

    HISTFILESIZE:命令历史文件的深浅

    [[email protected] dev]# echo $HISTFILESIZE
    1000
    

     

    history常用命令用法

    -c:清空命令历史

    -d offset:删除内定命令历史,offset为钦赐的行数

    -r:从文件读取命令历史至历史列表中

    -w:把历史列表中的命令追加至历史文件中

    history #:彰显近期的#条命令

     

    调用命令历史列表中的命令

    !#:再一次推行历史列表中第#条命令

    !!:再三次实行上一条命令

    !STLacrosseING:再二次实践命令历史列表中近来三个以ST奥迪Q5ING起初的指令

     

    调用上一条命令的终极一个参数

    快捷键:按一下ESC再按点.

    也许选取字符串:!$

     

    调节命令的记录格局

    [[email protected] /]# echo $HISTCONTROL
    ignoredups
    

    ignoredups:忽略重复的授命;

    ignorespace:忽略以空白字符开首的下令;

    ignoreboth:以上两个同不平日间生效;

     

    常用管理命令

      1.利用pwd和cd命令来明确和切换目录

    [root@localhost ~]# pwd
    /root
    [root@localhost ~]# cd /
    [root@localhost /]# pwd
    /
    
    [root@localhost /]# pwd
    /
    [root@localhost /]# cd
    [root@localhost ~]# cd
    

      2.运用ls命令列出目录中的内容

      -a 显示全体的公文,富含掩盖文件,.伊始的为隐匿文件

      -all 显示全数文件的详细新闻,

      -l 彰显文件详细消息,不包含遮蔽文件

    [root@localhost ~]# ls -a
    .   anaconda-ks.cfg  .bash_logout   .bashrc  .lesshst  Python-3.6.1      .tcshrc
    ..  .bash_history    .bash_profile  .cshrc   .pki      Python-3.6.1.tgz  .viminfo
    [root@localhost ~]# ls -all
    total 22084
    dr-xr-x---.  4 root root      223 Aug 28 03:04 .
    dr-xr-xr-x. 22 root root     4096 Jul 23 06:59 ..
    -rw-------.  1 root root     1669 May 13 10:16 anaconda-ks.cfg
    -rw-------.  1 root root    19956 Jul 24 11:01 .bash_history
    -rw-r--r--.  1 root root       18 Dec 28  2013 .bash_logout
    -rw-r--r--.  1 root root      176 Dec 28  2013 .bash_profile
    -rw-r--r--.  1 root root      176 Dec 28  2013 .bashrc
    -rw-r--r--.  1 root root      100 Dec 28  2013 .cshrc
    -rw-------.  1 root root       35 May 15 10:53 .lesshst
    drwxr-----   3 root root       19 May 25 09:38 .pki
    drwxr-xr-x  18  501  501     4096 Jun 12 09:15 Python-3.6.1
    -rw-r--r--   1 root root 22540566 May 23 11:21 Python-3.6.1.tgz
    -rw-r--r--.  1 root root      129 Dec 28  2013 .tcshrc
    -rw-------   1 root root     9062 Aug 28 03:04 .viminfo
    [root@localhost ~]# ls -l
    total 22024
    -rw-------.  1 root root     1669 May 13 10:16 anaconda-ks.cfg
    drwxr-xr-x  18  501  501     4096 Jun 12 09:15 Python-3.6.1
    -rw-r--r--   1 root root 22540566 May 23 11:21 Python-3.6.1.tgz
    

      3.用到cp命令复制文件和目录

      cp -r 递归复制

      cp -p 保留最先的作品件的顾客权限

    [root@localhost /]# cp a.txt /tmp/
    [root@localhost /]# ls /tmp/
    a.txt  etc.conf  etc.test  maxusers.txt  test.txt
    [root@localhost /]# cp -r /dj /tmp/
    [root@localhost /]# ls /tmp/
    a.txt  dj  etc.conf  etc.test  maxusers.txt  test.txt
    [root@localhost /]# cp -rpf /dj /tmp/
    [root@localhost /]# ls /tmp/
    a.txt  dj  etc.conf  etc.test  maxusers.txt  test.txt
    

      4.行使mv命令移动及修改文件和目录名 

    [root@localhost /]# mv a.txt b.t
    [root@localhost /]# ls
    bin   b.t  dj   home  lib64  mnt      oo   Packages  root  sbin  sys  tt   var
    boot  dev  etc  lib   media  mylinux  opt  proc      run   srv   tmp  usr
    [root@localhost /]# mv b.t /tmp/
    [root@localhost /]# ls /tmp/
    a.txt  b.t  dj  etc.conf  etc.test  maxusers.txt  test.txt
    

      5.使用mkdir命令创立目录 

    [root@localhost /]# mkdir -p /a/b/c/d
    [root@localhost /]# ls /a/b/c/
    d
    

        [root@localhost /]# mkdir -p /tmp/a/b/c/d
        [root@localhost /]# ls /tmp/
        a a.txt b.t dj etc.conf etc.test maxusers.txt test.txt

      6.利用touch命令创设文件

    [root@localhost /]# touch a.txt
    [root@localhost /]# ls
    a      bin   dev  etc   lib    media  mylinux  opt       proc  run   srv  tmp  usr
    a.txt  boot  dj   home  lib64  mnt    oo       Packages  root  sbin  sys  tt   var
    

      7.施用rm命令删除文件

    [root@localhost /]# rm -rf a.txt 
    

     

    常用管理命令

      1.用到pwd和cd命令来明确和切换目录

    [root@localhost ~]# pwd
    /root
    [root@localhost ~]# cd /
    [root@localhost /]# pwd
    /
    
    [root@localhost /]# pwd
    /
    [root@localhost /]# cd
    [root@localhost ~]# cd
    

      2.利用ls命令列出目录中的内容

      -a 彰显全数的文件,包涵隐形文件,.开首的为掩饰文件

      -all 呈现全部文件的详细消息,

      -l 呈现文件详细音讯,不包罗隐敝文件

    [root@localhost ~]# ls -a
    .   anaconda-ks.cfg  .bash_logout   .bashrc  .lesshst  Python-3.6.1      .tcshrc
    ..  .bash_history    .bash_profile  .cshrc   .pki      Python-3.6.1.tgz  .viminfo
    [root@localhost ~]# ls -all
    total 22084
    dr-xr-x---.  4 root root      223 Aug 28 03:04 .
    dr-xr-xr-x. 22 root root     4096 Jul 23 06:59 ..
    -rw-------.  1 root root     1669 May 13 10:16 anaconda-ks.cfg
    -rw-------.  1 root root    19956 Jul 24 11:01 .bash_history
    -rw-r--r--.  1 root root       18 Dec 28  2013 .bash_logout
    -rw-r--r--.  1 root root      176 Dec 28  2013 .bash_profile
    -rw-r--r--.  1 root root      176 Dec 28  2013 .bashrc
    -rw-r--r--.  1 root root      100 Dec 28  2013 .cshrc
    -rw-------.  1 root root       35 May 15 10:53 .lesshst
    drwxr-----   3 root root       19 May 25 09:38 .pki
    drwxr-xr-x  18  501  501     4096 Jun 12 09:15 Python-3.6.1
    -rw-r--r--   1 root root 22540566 May 23 11:21 Python-3.6.1.tgz
    -rw-r--r--.  1 root root      129 Dec 28  2013 .tcshrc
    -rw-------   1 root root     9062 Aug 28 03:04 .viminfo
    [root@localhost ~]# ls -l
    total 22024
    -rw-------.  1 root root     1669 May 13 10:16 anaconda-ks.cfg
    drwxr-xr-x  18  501  501     4096 Jun 12 09:15 Python-3.6.1
    -rw-r--r--   1 root root 22540566 May 23 11:21 Python-3.6.1.tgz
    

      3.施用cp命令复制文件和目录

      cp -r 递归复制

      cp -p 保留原来的书文件的客商权限

    [root@localhost /]# cp a.txt /tmp/
    [root@localhost /]# ls /tmp/
    a.txt  etc.conf  etc.test  maxusers.txt  test.txt
    [root@localhost /]# cp -r /dj /tmp/
    [root@localhost /]# ls /tmp/
    a.txt  dj  etc.conf  etc.test  maxusers.txt  test.txt
    [root@localhost /]# cp -rpf /dj /tmp/
    [root@localhost /]# ls /tmp/
    a.txt  dj  etc.conf  etc.test  maxusers.txt  test.txt
    

      4.利用mv命令移动及修改文件和目录名 

    [root@localhost /]# mv a.txt b.t
    [root@localhost /]# ls
    bin   b.t  dj   home  lib64  mnt      oo   Packages  root  sbin  sys  tt   var
    boot  dev  etc  lib   media  mylinux  opt  proc      run   srv   tmp  usr
    [root@localhost /]# mv b.t /tmp/
    [root@localhost /]# ls /tmp/
    a.txt  b.t  dj  etc.conf  etc.test  maxusers.txt  test.txt
    

      5.使用mkdir命令创造目录 

    [root@localhost /]# mkdir -p /a/b/c/d
    [root@localhost /]# ls /a/b/c/
    d
    

        [root@localhost /]# mkdir -p /tmp/a/b/c/d
        [root@localhost /]# ls /tmp/
        a a.txt b.t dj etc.conf etc.test maxusers.txt test.txt

      6.采纳touch命令创造文件

    [root@localhost /]# touch a.txt
    [root@localhost /]# ls
    a      bin   dev  etc   lib    media  mylinux  opt       proc  run   srv  tmp  usr
    a.txt  boot  dj   home  lib64  mnt    oo       Packages  root  sbin  sys  tt   var
    

      7.使用rm命令删除文件

    [root@localhost /]# rm -rf a.txt 
    

     

    目录管理类命令

    mkdir

    make directories 创设目录

    mkdir [OPTION]... DIRECTORY...

    常用选项:

    -p:自动按需创制父目录

    [root@localhost tmp]# mkdir -p /tmp/x/y/z
    [root@localhost tmp]# cd /tmp/x/y/z/
    [root@localhost z]# 
    

     -v:呈现详细经过,verbose

    [root@localhost z]# mkdir -pv /tmp/a/b/c
    mkdir: created directory ‘/tmp/a’
    mkdir: created directory ‘/tmp/a/b’
    mkdir: created directory ‘/tmp/a/b/c’
    

    -m MODE:直接给定权限

    注意:路线基名方为命令的效果对象,基名以前的门径必得得存在

     

    rmdir

    remove empty direcories

    移除空目录

    常用选项:

    -p:删除某目录后,假使其父目录为空,则一并删除之

    -v:显示进度

    [root@localhost b]# rmdir -pv /tmp/a/b/c/
    rmdir: removing directory, ‘/tmp/a/b/c/’
    rmdir: removing directory, ‘/tmp/a/b’
    rmdir: removing directory, ‘/tmp/a’
    rmdir: removing directory, ‘/tmp’
    rmdir: failed to remove directory ‘/tmp’: Device or resource busy
    

     

    补全效率

    命令补全

    shell程序在接受到客商推行命令的乞请时,最左侧的字符串会被当作命令

    指令查找体制:首先查找内部命令,根据PATH景况变量中设定的目录,自左而右各种寻觅目录下的文本名

    [[email protected] /]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    

     使用Tab键补全

     

    路径补全

     在给定的开场路线下,以对应路线下的打头字符串来逐条般配开端路径下各类文件

     

    bash的基础性子:

      一、命令历史

      history;history的情况变量:

      (1)HISTSIZE:命令历史的条数;

    [root@localhost ~]# echo $HISTSIZE
    1000
    

      (2)HISTFILE:长久保存命令历史的文书,当退出登入的时候,此番的授命历史才会被写入到HISTFILE中

    [root@localhost ~]# echo $HISTFILE
    /root/.bash_history
    

      命令历史存在~/.bash_history里。

      (3)HISTFILESIZE:命令历史文件记录的历史条数。

    [root@localhost ~]# echo $HISTFILESIZE
    1000
    

      二、history常用命令用法  

      -c:清空命令历史  

      -d offset:删除钦赐命令历史,offset为钦点的行数  

      -r:从文件读取命令历史至历史列表中  

      -w:把历史列表中的命令追加至历史文件中  

      history #:显示近些日子的#条命令

      -a:手动追加当前会话缓冲区的下令历史至历史文件中

      调用命令历史列表中的命令:

      !#:再度实行历史列表中第#条命令

      !!:再一遍实行上一条命令

      !ST宝马X3ING:再三次实施命令历史列表中方今一个以ST兰德酷路泽ING最早的授命

      调用上一条最终二个参数方法:!$;ESC,.;ALT .。

      调控命令历史的笔录格局:境况变量:HISTCONTROL;

      ignoredups:忽略重复命令,连续且一样才算重复。

      ignorespace:忽略以空白起始的指令。

      ignoreboth:以上两个皆忽略。
      修改情形变量值得格局为export 变量名=‘值’;变量赋值就是把赋值符号前面的数目存款和储蓄于变量名指向内存空间。

    [root@localhost ~]# echo $HISTCONTROL
    ignoredups
    [root@localhost ~]# export HISTCONTROL=ignoreboth
    [root@localhost ~]# echo $HISTCONTROL
    ignoreboth
    

      三、命令、路线补全

      命令补全:

      shell程序在承受到客商试行命令的伸手时,最左侧的字符串会被当做命令

      命令查找体制:依照PATH情况变量中设定的目录($PATH),自左而右各个搜索目录下的文件名

      按Tab可间接补全命令,若给定字符开始的授命不独一,再一次Tab给出以给定字符作为开始的文本列表

      路线补全: 在给定的开场路线下,以对应路线下的打头字符串来逐条相配起首路线下各种文件

      四、命令行张开

      ~:张开为客商家目录;

      ~username:张开为钦赐顾客的家目录

      {}:张开为几个门路。例:/tmp/{a,b} = /tmp/a,/tmp/b;/tmp/{a,b}/{c,d} =/tmp/a/c,/tmp/a/d,/tmp/b/c,/tmp/b/d。

      五、命令的试行结果

      命令实施的意况结果有二种:成功(0),战败(1-255),可用$?查看近日一条命令的履市场价格况结果。

      程序推行有两类结果:程序再次回到值和程序施行状态结果。

      六、命令小名(alias)

      alias:突显当前shell进度具备可用别名。

    [root@localhost tmp]# alias
    alias cp='cp -i'
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias grep='grep --color=auto'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    

      alias name=‘value’:定义外号,使用alias也就是施行value。

      :在命令行定义小名,仅对近期shell有效,永远有效须求定义在布局文件中。

      对当下客户:~/.bashrc

      对具备顾客:/etc/bashrc

      况兼编辑配置不会即时生效。

      撤消小名(unalias)

      七、glob(bash中用于落到实处公文通配)

      通配符:*,?,[]

      *专擅长度的随机字符

      ?率性单个字符

      []匹配内定范围的单个字符[0-9],[a-z]:全部字母,不区分轻重缓急写[A-Z]:大写字母

      [^]取反

      专项使用字符集:

       [[:upper:]]:全数大写字母

         [[:lower:]]:全数小写字母

         [[:alpha:]]:全部字母

         [[:digit:]]:全数数字

         [[:alnum:]]:全部的假名和数字

         [[:space:]]:全数空白字符

         [[:punct:]]:全体标点符号

      八、bash的I/O重定向及管道

      展开文件皆有贰个fd:file descriptor(文件叙述)

      规范输入:0

      标准输出:1

      错误输出:2

      I/O重定向就是改变职业地方。

      输出重定向:

      >    覆盖输出

      >>    追加输出

      set -C:禁止覆盖输出重定向至已存在的公文

      set C:开启覆盖输出重定向至已存在的文本(暗中同意)

      错误输出重定向:

      2>    覆盖输出

      2>>    追加输出

      合併日常输出流和错误输出流

      &>    覆盖输出

      &>>    追加输出

      COMMADN > /PATH/TO/somefile  2>&1 :假若命令实践成功则覆盖输出至somefile,实行不成功也隐藏输出至somefile

      COMMAND >> /PATH/TO/somefile 2>&1:假若命令实行成功则扩充覆盖至somefile,实施不成功也增添输出至somefile

      注:特殊器械:当不必要命令的施行结果,只必要精晓命令的履市价况,则能够重定向至/dev/null,/dev/null相当于贰个果皮箱。

      输入重定向:<

      Here Document:<<,能够作为钦定文件的利落符,常用来shell编制程序

    [root@localhost tmp]# cat <<EOF
    > how are you
    > EOF
    how are you
    

      tr [OPTION]... SET1 [SET2]

      把输入的数据当中的字符,凡是在SET1概念范围内冒出的,通通对位转变为SET2冒出的字符,不修改原来的小说件

      tr -d SET1  <  /PATH/FROM/SOMEFILE     删除SET1中的字符,区分轻重缓急写

      管道

      连接程序,最终一个命令会在近些日子shell进度的子进度中奉行。

      COMMAND1 | COMMAND2 | COMMAND3 ...

    [root@localhost tmp]# echo 'abcdefg' | tr 'a-z' 'A-Z' | tr -d 'AD' 
    BCEFG
    

      tee

      突显程序的出口并将其复制到二个或几个文件中。

    bash的根基性情:

      一、命令历史

      history;history的情形变量:

      (1)HISTSIZE:命令历史的条数;

    [root@localhost ~]# echo $HISTSIZE
    1000
    

      (2)HISTFILE:持久保存命令历史的文件,当退出登入的时候,本次的吩咐历史才会被写入到HISTFILE中

    [root@localhost ~]# echo $HISTFILE
    /root/.bash_history
    

      命令历史存在~/.bash_history里。

      (3)HISTFILESIZE:命令历史文件记录的野史条数。

    [root@localhost ~]# echo $HISTFILESIZE
    1000
    

      二、history常用命令用法  

      -c:清空命令历史  

      -d offset:删除内定命令历史,offset为钦赐的行数  

      -r:从文件读取命令历史至历史列表中  

      -w:把历史列表中的命令追加至历史文件中  

      history #:展现前段时间的#条命令

      -a:手动追加当前会话缓冲区的命令历史至历史文件中

      调用命令历史列表中的命令:

      !#:再一次执行历史列表中第#条命令

      !!:再一遍实行上一条命令

      !ST瑞鹰ING:再二回试行命令历史列表中近期叁个以STGL450ING开首的吩咐

      调用上一条最终三个参数方法:!$;ESC,.;ALT .。

      调控命令历史的记录格局:情状变量:HISTCONTROL;

      ignoredups:忽略重复命令,一而再且一样才算重复。

      ignorespace:忽略以空白初阶的授命。

      ignoreboth:以上两者皆忽略。
      修改情况变量值得格局为export 变量名=‘值’;变量赋值正是把赋值符号前边的数额存款和储蓄于变量名指向内部存款和储蓄器空间。

    [root@localhost ~]# echo $HISTCONTROL
    ignoredups
    [root@localhost ~]# export HISTCONTROL=ignoreboth
    [root@localhost ~]# echo $HISTCONTROL
    ignoreboth
    

      三、命令、路线补全

      命令补全:

      shell程序在经受到客户试行命令的伸手时,最左侧的字符串会被当做命令

      命令查找体制:依据PATH蒙受变量中设定的目录($PATH),自左而右各个搜索目录下的文书名

      按Tab可直接补全命令,若给定字符开首的下令不独一,再度Tab给出以给定字符作为最初的文本列表

      路线补全: 在加以的序曲路线下,以对应路径下的打头字符串来逐条相称早先路线下各类文件

      四、命令行张开

      ~:打开为客商家目录;

      ~username:打开为内定客商的家目录

      {}:张开为多少个渠道。例:/tmp/{a,b} = /tmp/a,/tmp/b;/tmp/{a,b}/{c,d} =/tmp/a/c,/tmp/a/d,/tmp/b/c,/tmp/b/d。

      五、命令的试行结果

      命令试行的事态结果有二种:成功(0),退步(1-255),可用$?查看方今一条命令的推行情形结果。

      程序实践有两类结果:程序再次回到值和程序试行状态结果。

      六、命令别称(alias)

      alias:呈现当前shell进程具备可用外号。

    [root@localhost tmp]# alias
    alias cp='cp -i'
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias grep='grep --color=auto'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    

      alias name=‘value’:定义别称,使用alias相当于试行value。

      :在指令行定义别名,仅对近来shell有效,恒久有效须求定义在铺排文件中。

      对脚下客商:~/.bashrc

      对具有顾客:/etc/bashrc

      并且编辑配置不会立时生效。

      撤除别称(unalias)

      七、glob(bash中用于落到实处文件通配)

      通配符:*,?,[]

      *随便长度的妄动字符

      ?放肆单个字符

      []相当钦定范围的单个字符[0-9],[a-z]:全部字母,不区分轻重缓急写[A-Z]:大写字母

      [^]取反

      专项使用字符集:

       [[:upper:]]:全数大写字母

         [[:lower:]]:全部小写字母

         [[:alpha:]]:全体字母

         [[:digit:]]:全部数字

         [[:alnum:]]:全体的假名和数字

         [[:space:]]:全部空白字符

         [[:punct:]]:全体标点符号

      八、bash的I/O重定向及管道

      展开文件都有多个fd:file descriptor(文件陈述)

      规范输入:0

      典型输出:1

      错误输出:2

      I/O重定向正是改换专门的学业地方。

      输出重定向:

      >    覆盖输出

      >>    追加输出

      set -C:禁止覆盖输出重定向至已存在的公文

      set C:开启覆盖输出重定向至已存在的文本(暗中认可)

      错误输出重定向:

      2>    覆盖输出

      2>>    追加输出

      合并符合规律输出流和不当输出流

      &>    覆盖输出

      &>>    追加输出

      COMMADN > /PATH/TO/somefile  2>&1 :假若命令实行成功则覆盖输出至somefile,实施不成事也覆盖输出至somefile

      COMMAND >> /PATH/TO/somefile 2>&1:假若命令试行成功则扩展覆盖至somefile,奉行不成功也大增输出至somefile

      注:特殊器材:当无需命令的推行结果,只须求明白命令的试行境况,则足以重定向至/dev/null,/dev/null也就是三个果皮箱。

      输入重定向:<

      Here Document:<<,能够视作钦命文件的实现符,常用于shell编制程序

    [root@localhost tmp]# cat <<EOF
    > how are you
    > EOF
    how are you
    

      tr [OPTION]... SET1 [SET2]

      把输入的数量在那之中的字符,凡是在SET1定义范围内冒出的,通通对位转换为SET2涌出的字符,不修改原来的书文件

      tr -d SET1  <  /PATH/FROM/SOMEFILE     删除SET第11中学的字符,区分轻重缓急写

      管道

      连接程序,最终二个命令会在时下shell进度的子进度中试行。

      COMMAND1 | COMMAND2 | COMMAND3 ...

    [root@localhost tmp]# echo 'abcdefg' | tr 'a-z' 'A-Z' | tr -d 'AD' 
    BCEFG
    

      tee

      呈现程序的出口并将其复制到贰个或多个公文中。

    命令行张开

    {}:可承袭二个以逗号分隔的门路,并能够将其张开为五个路子

    例如:/tmp/{a,b}相当于 /tmp/a  /tmp/b

    例子:

    怎么着创立/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b?

    [root@localhost tmp]# mkdir -p /tmp/x/{y1/{a,b},y2}
    

    怎样创制a_c, a_d, b_c, b_d?

    [root@localhost tmp]# mkdir -p /tmp/{a,b}_{c,d}
    

     怎么样成立如下目录结构:

                /tmp/mysysroot/
                    |-- bin
                    |-- etc
                    |   `-- sysconfig
                    |       `-- network-scripts
                    |-- sbin
                    |-- usr
                    |   |-- bin
                    |   |-- lib
                    |   |-- lib64
                    |   |-- local
                    |   |   |-- bin
                    |   |   |-- etc
                    |   |   |-- lib
                    |   |   `-- sbin
                    |   `-- sbin
                    `-- var
                        |-- cache
                        |-- log
                        `-- run
    
    mkdir -p /tmp/mysysroot/{bin,etc/sysconfig/networkscripts,sbin,usr/{bin,lib,lib64,local/{bin,etc,lib,sbin},sbin},var/{cache,log,run}}
    

     

     tree

     可选拔tree来查阅目录的层级结构

     新葡亰496net 5

    -L #,钦赐要来得的层级

    新葡亰496net 6

     

    目录管理类命令

    mkdir

    make directories 成立目录

    mkdir [OPTION]... DIRECTORY...

    常用选项:

    -p:自动按需成立父目录

    [[email protected] tmp]# mkdir -p /tmp/x/y/z
    [[email protected] tmp]# cd /tmp/x/y/z/
    [[email protected] z]# 
    

     -v:彰显详细进度,verbose

    [[email protected] z]# mkdir -pv /tmp/a/b/c
    mkdir: created directory ‘/tmp/a’
    mkdir: created directory ‘/tmp/a/b’
    mkdir: created directory ‘/tmp/a/b/c’
    

    -m MODE:直接给定权限

    留神:路线基名方为命令的效果对象,基名在此以前的门径必须得存在

     

    rmdir

    remove empty direcories

    移除空目录

    常用选项:

    -p:删除某目录后,假诺其父目录为空,则一并剔除之

    -v:显示进度

    [[email protected] b]# rmdir -pv /tmp/a/b/c/
    rmdir: removing directory, ‘/tmp/a/b/c/’
    rmdir: removing directory, ‘/tmp/a/b’
    rmdir: removing directory, ‘/tmp/a’
    rmdir: removing directory, ‘/tmp’
    rmdir: failed to remove directory ‘/tmp’: Device or resource busy
    

     

    目录处理类命令

      一、mkdir

      make directories 成立目录

      mkdir [OPTION]... DIRECTORY...

      常用选项:

      -p:存在不报错,逐级生成目录;

      -v:展现详细音信;

      -m:mode,成立目录时一向内定权限。

      mkdir一回可成立八个目录:

    [root@localhost tmp]# mkdir -v {a,b}/{c,d}
    mkdir: cannot create directory ‘a/c’: No such file or directory
    mkdir: cannot create directory ‘a/d’: No such file or directory
    mkdir: cannot create directory ‘b/c’: No such file or directory
    mkdir: cannot create directory ‘b/d’: No such file or directory
    

      

    [root@localhost ~]# mkdir -p /mylinux/{bin,boot/grub,dev,etc/{rd.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
    [root@localhost ~]# tree /mylinux
    /mylinux
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rd.d
    │   │   └── init.d
    │   └── sysconfig
    │       └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │       ├── bin
    │       └── sbin
    └── var
        ├── lock
        ├── log
        └── run
    

     

      二、rmdir

      remove empty direcories

      移除空目录

      常用选项:

      -p:删除某目录后,若是其父目录为空,则一并剔除之

      -v:呈现过程

    [root@localhost b]# rmdir -pv /tmp/a/b/c/
    rmdir: removing directory, ‘/tmp/a/b/c/’
    rmdir: removing directory, ‘/tmp/a/b’
    rmdir: removing directory, ‘/tmp/a’
    rmdir: removing directory, ‘/tmp’
    rmdir: failed to remove directory ‘/tmp’: Device or resource busy
    

      三、tree:

      -d:只展现目录

      -L:level:内定展现的层级数目

      -P:pattern只展现由内定pattern相配到的路径。

    目录管理类命令

      一、mkdir

      make directories 创制目录

      mkdir [OPTION]... DIRECTORY...

      常用选项:

      -p:存在不报错,逐级生成目录;

      -v:展现详细消息;

      -m:mode,创立目录时间接钦点权限。

      mkdir二回可创立三个目录:

    [root@localhost tmp]# mkdir -v {a,b}/{c,d}
    mkdir: cannot create directory ‘a/c’: No such file or directory
    mkdir: cannot create directory ‘a/d’: No such file or directory
    mkdir: cannot create directory ‘b/c’: No such file or directory
    mkdir: cannot create directory ‘b/d’: No such file or directory
    

      

    [root@localhost ~]# mkdir -p /mylinux/{bin,boot/grub,dev,etc/{rd.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
    [root@localhost ~]# tree /mylinux
    /mylinux
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rd.d
    │   │   └── init.d
    │   └── sysconfig
    │       └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │       ├── bin
    │       └── sbin
    └── var
        ├── lock
        ├── log
        └── run
    

     

      二、rmdir

      remove empty direcories

      移除空目录

      常用选项:

      -p:删除某目录后,假若其父目录为空,则一并剔除之

      -v:显示进度

    [root@localhost b]# rmdir -pv /tmp/a/b/c/
    rmdir: removing directory, ‘/tmp/a/b/c/’
    rmdir: removing directory, ‘/tmp/a/b’
    rmdir: removing directory, ‘/tmp/a’
    rmdir: removing directory, ‘/tmp’
    rmdir: failed to remove directory ‘/tmp’: Device or resource busy
    

      三、tree:

      -d:只呈现目录

      -L:level:内定展现的层级数目

      -P:pattern只展现由钦命pattern相称到的渠道。

     命令的实施意况结果

    bash通过情形再次来到值来输出此结果:

    成功:0

    失败:1-255

    指令试行到位今后,其意况再次回到值保存于bash的非常变量$?中

    [root@localhost tmp]# ls /tmp/x/
    y1  y2
    [root@localhost tmp]# echo $?
    0
    [root@localhost tmp]# ls /tmp/y
    ls: cannot access /tmp/y: No such file or directory
    [root@localhost tmp]# echo $?
    2
    

     

    命令行张开

    {}:可承载三个以逗号分隔的门路,并能够将其开展为八个渠道

    例如:/tmp/{a,b}相当于 /tmp/a  /tmp/b

    例子:

    怎么创建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b?

    [[email protected] tmp]# mkdir -p /tmp/x/{y1/{a,b},y2}
    

    什么成立a_c, a_d, b_c, b_d?

    [[email protected] tmp]# mkdir -p /tmp/{a,b}_{c,d}
    

     怎么样创建如下目录结构:

                /tmp/mysysroot/
                    |-- bin
                    |-- etc
                    |   `-- sysconfig
                    |       `-- network-scripts
                    |-- sbin
                    |-- usr
                    |   |-- bin
                    |   |-- lib
                    |   |-- lib64
                    |   |-- local
                    |   |   |-- bin
                    |   |   |-- etc
                    |   |   |-- lib
                    |   |   `-- sbin
                    |   `-- sbin
                    `-- var
                        |-- cache
                        |-- log
                        `-- run
    
    mkdir -p /tmp/mysysroot/{bin,etc/sysconfig/networkscripts,sbin,usr/{bin,lib,lib64,local/{bin,etc,lib,sbin},sbin},var/{cache,log,run}}
    

     

     tree

     可使用tree来查看目录的层级结构

     新葡亰496net 7

    -L #,内定要展现的层级

    新葡亰496net 8

     

    神速操作

      ctrl a:跳转至命令行行首

      ctrl e:跳转至命令行行尾

      ctrl u:删除行首至光标所在处之间的装有字符

      ctrl k:删除光标所在处至行尾的保有字符

      ctrl l:清屏,相当于clear

    连忙操作

      ctrl a:跳转至命令行行首

      ctrl e:跳转至命令行行尾

      ctrl u:删除行首至光标所在处之间的有着字符

      ctrl k:删除光标所在处至行尾的具有字符

      ctrl l:清屏,相当于clear

    引用

     引用命令的实行结果:

     $(COMMAND)或者`COMMAND`

     新葡亰496net 9

     强引用,单引号:

    [root@localhost ~]# echo '$PATH'
    $PATH
    

     弱引用,双引号:

    [root@localhost ~]# echo "$PATH"
    /usr/local/sbin:/usr/loca
    

     

     命令的实市场价格况结果

    bash通过情形重返值来输出此结果:

    成功:0

    失败:1-255

    命令试行到位以往,其情景再次来到值保存于bash的例外变量$?中

    [[email protected] tmp]# ls /tmp/x/
    y1  y2
    [[email protected] tmp]# echo $?
    0
    [[email protected] tmp]# ls /tmp/y
    ls: cannot access /tmp/y: No such file or directory
    [[email protected] tmp]# echo $?
    2
    

     

    文本文件查看类命令

      cat

      cat [OPTION]... [FILE]...

      查看文件内容,直接呈现到文件尾巴部分

      常用选项:

      -n:可以突显行数;

      tac与cat类似,可反向查看文件内容

      head

      与cat类似,常用选项:

      -c #:钦命获取前#字节;

      -n # / -#:钦点获取前#行。

      tail

      与head相似,除了-c与-n以外,-f可追踪呈现文件新增的从头到尾的经过。

    文件文件查看类命令

      cat

      cat [OPTION]... [FILE]...

      查看文件内容,直接显示到文件尾巴部分

      常用选项:

      -n:能够显得行数;

      tac与cat类似,可反向查看文件内容

      head

      与cat类似,常用选项:

      -c #:钦赐获取前#字节;

      -n # / -#:钦定获取前#行。

      tail

      与head相似,除了-c与-n以外,-f可追踪呈现文件新增加的开始和结果。

    快捷键

    ctrl a:跳转至命令行行首

    ctrl e:跳转至命令行行尾

    ctrl u:删除行首至光标所在处之间的具备字符

    ctrl k:删除光标所在处至行尾的具有字符

    ctrl l:清屏,相当于clear

     

    引用

     引用命令的施行结果:

     $(COMMAND)或者`COMMAND`

     新葡亰496net 10

     强引用,单引号:

    [[email protected] ~]# echo '$PATH'
    $PATH
    

     弱引用,双引号:

    [[email protected]lhost ~]# echo "$PATH"
    /usr/local/sbin:/usr/loca
    

     

    文本的时间戳管理工科具:

      一、stat

      display file or file system status

      文件:两类数据

      元数据:metadata,文件的景观,创造时间,修改时间,大小,权限等

      数据:文件之中的情节

      stat呈现的就是文本的元数据,包含文件路线,大小,blocks数目,IO block,文件类型,inode号,权限,uid,gid和多少个日子戳等

      八个时间戳:

      access:这段时间三次访谈的岁月,即atime

      modify:方今贰次修改文件的时刻,即mtime

      change:文件近些日子贰回变动的光阴,即改动元数据的时光即ctime

      二、touch

      change file timestamps  修改时间戳

      touch [OPTION]... FILE...

      文件不设有则创建文件,当直接行义务令去touch一个文书的时候,修改的是负有的时刻戳

      常用选项:

      -c:钦命的文本路线官样文章时不授予创设

      -a:仅修改access time

      -m:仅修改modify time

      -t   STAMP

           [[CC]YY]MMDDhhmm[.ss]

    文件的年月戳管理工科具:

      一、stat

      display file or file system status

      文件:两类数据

      元数据:metadata,文件的气象,成立时间,修改时间,大小,权限等

      数据:文件之中的内容

      stat呈现的正是文件的元数据,包涵文件路线,大小,blocks数目,IO block,文件类型,inode号,权限,uid,gid和八个日子戳等

      三个时刻戳:

      access:近来一回访问的时光,即atime

      modify:前段时间贰回修改文件的岁月,即mtime

      change:文件近期叁次变动的时刻,即改造元数据的时日即ctime

      二、touch

      change file timestamps  修改时间戳

      touch [OPTION]... FILE...

      文件一纸空文则开创文件,当直接运用命令去touch二个文件的时候,修改的是颇具的岁月戳

      常用选项:

      -c:钦点的文本路线不设有时不给予创建

      -a:仅修改access time

      -m:仅修改modify time

      -t   STAMP

           [[CC]YY]MMDDhhmm[.ss]

    文本查看类命令

     cat

    cat [OPTION]... [FILE]...

    翻看文件内容,间接展现到文件尾部

    常用选项:

    -n:能够体现行数

    [root@localhost tmp]# cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    ......
    gnome-initial-setup:x:989:984::/run/gnome-initial-setup/:/sbin/nologin
    avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
    tcpdump:x:72:72::/:/sbin/nologin
    

     

    tac

    tac [OPTION]... [FILE]...

    反向查看文件内容

    [root@localhost tmp]# tac /etc/passwd
    tcpdump:x:72:72::/:/sbin/nologin
    avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
    gnome-initial-setup:x:989:984::/run/gnome-initial-setup/:/sbin/nologin
    ......
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    

     

    more

     分屏查看文件内容

     

    head

    head  [新葡亰496net,OPTION]... [FILE]...

    查看文件的前n行,默以为前10行

    [root@localhost tmp]# head /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    

    常用选项:

    head -n  #:显示前#行照旧是head -#

     

    tail

    翻开文件的后n行

    tail  [OPTION]... [FILE]...

    [root@localhost tmp]# tail /etc/passwd
    colord:x:992:987:User for colord:/var/lib/colord:/sbin/nologin
    qemu:x:107:107:qemu user:/:/sbin/nologin
    setroubleshoot:x:991:986::/var/lib/setroubleshoot:/sbin/nologin
    rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    gdm:x:42:42::/var/lib/gdm:/sbin/nologin
    sssd:x:990:985:User for sssd:/:/sbin/nologin
    gnome-initial-setup:x:989:984::/run/gnome-initial-setup/:/sbin/nologin
    avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
    tcpdump:x:72:72::/:/sbin/nologin
    

    常用选项:

    tail -n #:突显最终#行照旧是tail -#

    -f:查看文件尾巴部分内容,停止后不脱离,跟随突显新扩展的行

     

    stat

    bash的基础特性,linux文件系统及bash基础特性。display file or file system status

    文本:两类数据

    元数据:metadata,文件的情景,创立时间,修改时间,大小,权限等

    数据:文件之中的剧情

    [root@localhost tmp]# stat /etc/passwd
      File: ‘/etc/passwd’
      Size: 2235          Blocks: 8          IO Block: 4096   regular file
    Device: fd00h/64768d    Inode: 19840519    Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: system_u:object_r:passwd_file_t:s0
    Access: 2017-07-06 09:25:43.555083116 -0400
    Modify: 2017-07-01 08:00:52.140151303 -0400
    Change: 2017-07-01 08:00:52.141154779 -0400
     Birth: -
    

    stat展现的正是文本的元数据,包涵文件路线,大小,blocks数目,IO block,文件类型,inode号,权限,uid,gid和四个时刻戳等

    多个小时戳:

    access:这两天贰遍访谈的年华

    modify:近期三回修改文件的岁月

    change:文件最近叁次变动的时刻,即更改元数据的时刻

     

    touch

    change file timestamps  修改时间戳

    touch [OPTION]... FILE...

    文本不设有则成立文件,当直接采纳命令去touch一个文本的时候,修改的是兼具的年月戳

    常用选项:

    -c:钦点的文件路线不真实时不予以创设

    -a:仅修改access time

    -m:仅修改modify time

    -t   STAMP

           [[CC]YY]MMDDhhmm[.ss]

    (无法改改change time,只当元数据发生变化时,才会改造)

    [root@localhost tmp]# touch -t 201212121200.30  test.txt -m
    [root@localhost tmp]# stat test.txt 
      File: ‘test.txt’
      Size: 0             Blocks: 0          IO Block: 4096   regular empty file
    Device: fd00h/64768d    Inode: 17251556    Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2017-07-07 03:17:12.640883844 -0400
    Modify: 2012-12-12 12:00:30.000000000 -0500
    Change: 2017-07-07 03:19:17.667997201 -0400
     Birth: -
    [root@localhost tmp]# 
    

     

    wc

    NAME:输出文件中的行数、单词数、字节数

    SYNOPSIS:wc [慎选列表]... [文件名列表]...

    常用选项:

    -l:输骑行数

    -w:输出单词数,重复单词只算三个

    -c:输出字节数

    举例:

    [root@localhost tmp]# wc /etc/passwd
      40   78 2022 /etc/passwd
    

     

     

    cut

    NAME:在文书的每一行中提取部分

    SYNOPSIS:cut OPTION... [FILE]...

    常用选项:-d CHA科雷傲:以钦赐的字符为分隔符

                      -f  FIELDS:挑选出的字段

                      #:钦点的单个片段

                      #-#:一连的多少个字段

                      #,#:离散的多少个字段

    举个例证

    [root@localhost tmp]# cut -d: -f1 /etc/passwd
    root
    bin
    daemon
    adm
    lp
    sync
    shutdown
    halt
    ....
    frank
    Frank
    centos
    

     

    sort

    NAME:对文本文件的行排序

    SYNOPSIS:sort  [OPTION]...  [FILE]...

    常用选项:

    -n:基于数值大小而非字符进行排序

    -t CHA汉兰达:钦命分隔符

    -k #:用于排序相比较的字段

    -r:逆序排序

    -f:忽略字符大小写

    -u:重复行只保留一份,三回九转且同样

    比喻:以:为分隔符,按第多个字段的数值大小比较排序文件/etc/passwd下的从头到尾的经过

    [root@localhost tmp]# sort -n -t: -k 3 /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    ....
    polkitd:x:998:997:User for polkitd:/:/sbin/nologin
    systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    frank:x:1000:1000:frank:/home/frank:/bin/bash
    Frank:x:1001:1001::/home/Frank:/bin/bash
    centos:x:1002:1002::/home/centos:/bin/bash
    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    

     

    uniq

    NAME:删除排序文件中的重复行

    SYNOPSIS:uniq [OPTION]... [INPUT [OUTPUT]]

    常用选项:

    -c:展现每行的重复次数

    -u:仅呈现未有重复的行

    -d:仅体现重复过的行

     

    快捷键

    ctrl a:跳转至命令行行首

    ctrl e:跳转至命令行行尾

    ctrl u:删除行首至光标所在处之间的有所字符

    ctrl k:删除光标所在处至行尾的装有字符

    ctrl l:清屏,相当于clear

     

    文件管理工科具

      一、cp

      复制文件大概目录

      cp [OPTION]... [-T] SOURCE DEST

      cp [OPTION]... SOURCE... DIRECTORY

      cp [OPTION]... -t DIRECTORY SOURCE...

      cp SRC DEST

      SRC是文件

        要是DEST不设有,则先创立DEST,并复制源文件的数额流至DEST文件中

        假诺DEST存在:DEST是非目录文件,则覆盖DEST文件

        DEST是目录文件,则在DEST目录下创办一个与源文件同名的文书,并复制其数据

      SRC是多少个文本时:

        DEST必得存在,且为目录,不然就能够报错。

      SRC是目录:

        DEST不设有,则开创钦赐目录,复制SRC目录中存有文件至DEST。

        DEST存在,DEST是文件,报错,DEST是目录分别复制每一个文件至目的目录中,并保持原名。

      常用选项:

      -i:交互式复制

      -f:强制覆盖指标文件

      -r,-福睿斯:递归复制目录

      -d:复制符号链接文件自个儿,而非指向的源文件

      -a:-d中华V --preserve=all, archive,用于落到实处归档;

      --preserv[=ATTR_LIST]         

        mode:权限  

        ownership:属主和属组

             timestamps: 时间戳

             context:安全标签

             xattr:扩大属性

             links:符号链接

             all:上述全数属性

      二、mv

      移动文件,可用来重命名文件

           mv [OPTION]... [-T] SOURCE DEST

           mv [OPTION]... SOURCE... DIRECTORY

           mv [OPTION]... -t DIRECTORY SOURCE...

      常用选项:
      -i:交互式

      -f:强制覆盖文件

      三、rm

      移除文件

      rm [OPTION]... FILE...

      常用选项:

      -i:交互式移除文件

      -f:强制删除文件

      -r:递归删除

      :全部不用的文件提议不要平昔删除,能够移动至有些专项使用的目录(用来做回收站的目录)

      :还大概有个无敌bug,rm-rf /*。

     

    文件管理工具

      一、cp

      复制文件只怕目录

      cp [OPTION]... [-T] SOURCE DEST

      cp [OPTION]... SOURCE... DIRECTORY

      cp [OPTION]... -t DIRECTORY SOURCE...

      cp SRC DEST

      SRC是文件

        要是DEST不设有,则先创设DEST,并复制源文件的数量流至DEST文件中

        倘若DEST存在:DEST是非目录文件,则覆盖DEST文件

        DEST是目录文件,则在DEST目录下创设贰个与源文件同名的公文,并复制其数额

      SRC是七个文件时:

        DEST必需存在,且为目录,否则就能够报错。

      SRC是目录:

        DEST不设有,则开创钦点目录,复制SRC目录中全体文件至DEST。

        DEST存在,DEST是文件,报错,DEST是目录分别复制每一个文件至目的目录中,并保证原名。

      常用选项:

      -i:交互式复制

      -f:强制覆盖目的文件

      -r,-奇骏:递归复制目录

      -d:复制符号链接文件自身,而非指向的源文件

      -a:-dKoleos --preserve=all, archive,用于落实归档;

      --preserv[=ATTR_LIST]         

        mode:权限  

        ownership:属主和属组

             timestamps: 时间戳

             context:安全标签

             xattr:扩大属性

             links:符号链接

             all:上述全数属性

      二、mv

      移动文件,可用来重命名文件

           mv [OPTION]... [-T] SOURCE DEST

           mv [OPTION]... SOURCE... DIRECTORY

           mv [OPTION]... -t DIRECTORY SOURCE...

      常用选项:
      -i:交互式

      -f:强制覆盖文件

      三、rm

      移除文件

      rm [OPTION]... FILE...

      常用选项:

      -i:交互式移除文件

      -f:强制删除文件

      -r:递归删除

      :全体不用的公文提议不要平昔删除,可以移动至某些专项使用的目录(用来做回收站的目录)

      :还应该有个无敌bug,rm-rf /*。

     

    文本管理工科具

    cp

    复制文件或然目录

    单源复制:

    cp [OPTION]... [-T] SOURCE DEST

    一旦DEST不设有,则先创制此文件,并复制源文件的数据流至DEST文件中

    如果DEST存在:

        尽管DEST是非目录文件,则覆盖DEST文件

        要是DEST是目录文件,则在DEST目录下创办一个与源文件同名的文件,并复制其数据

    多源复制:

    cp [OPTION]... SOURCE... DIRECTORY

    cp [OPTION]... -t DIRECTORY SOURCE...

    如果DIRECTORY不存在,则报错

    如果DIRECTORY存在:

         假使DIRECTO大切诺基Y是非目录文件,则报错

         假若DIRECTOEnclaveY是目录文件,分别复制各个文件至指标目录中,并维持原名

    常用选项:

    -i:交互式复制

    -f:强制覆盖目的文件

    -r,-纳瓦拉:递归复制目录

    -d:复制符号链接文件本人,而非指向的源文件

    -a:-dTiguan --preserve=all, archive,用于落到实处归档;

    --preserv=

           mode:权限

            ownership:属主和属组

            timestamps: 时间戳

            context:安全标签

            xattr:扩张属性

            links:符号链接

            all:上述全体属性

     

    mv

    move

    移动文件,可用来重命名文件

    SYNOPSIS

           mv [OPTION]... [-T] SOURCE DEST

           mv [OPTION]... SOURCE... DIRECTORY

           mv [OPTION]... -t DIRECTORY SOURCE...

    常用选项:
    -i:交互式

    -f:强制覆盖文件

     

    rm

    remove

    移除文件

    rm [OPTION]... FILE...

    常用选项:

    -i:交互式移除文件

    -f:强制删除文件

    -r:递归删除

    专一:全体不用的公文建议不要从来删除,能够移动至某些专项使用的目录(用来做回收站的目录)

     

    diff

    NAME:寻觅2个文本中的不一致

    SYNOPSISI:diff [OPTION]... FILES

    -u:使用unfied机制,即呈现要修改行的上下文,默以为3行

    很好用的工具

    比如大家未来有2个文件a.txt,b.txt

    [root@localhost tmp]# cat a.txt 
    111
    222
    333
    444
    555
    666
    [root@localhost tmp]# cat b.txt 
    111
    222
    333
    

    文件比较,会提议差异的行

    [root@localhost tmp]# diff a.txt b.txt 
    4,5d3
    < 444
    < 555
    

    大家能够把差异的行的新闻保存到贰个文书中(后边使用)

    [root@localhost tmp]# diff a.txt b.txt  > c.txt
    [root@localhost tmp]# cat c.txt 
    4,5d3
    < 444
    < 555
    

     

    patch

    NAME:向文件中打补丁

    SYNOPSIS:patch /PATH/TO/OLDFILE < /PATH/TO/PATCH_FILE

    如上个例子中,b.txt比a.txt少的剧情保留在了补丁文件c.txt中,我们就可以利用patch来讲b比a少的开始和结果补进去

    [root@localhost tmp]# patch  b.txt c.txt 
    patching file b.txt
    Reversed (or previously applied) patch detected!  Assume -R? [n] yes
    [root@localhost tmp]# cat b.txt
    111
    222
    333
    444
    555
    666
    

     

    文本查看类命令

     cat

    cat [OPTION]... [FILE]...

    翻看文件内容,直接展现到文件尾巴部分

    常用选项:

    -n:能够展现行数

    [[email protected] tmp]# cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    ......
    gnome-initial-setup:x:989:984::/run/gnome-initial-setup/:/sbin/nologin
    avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
    tcpdump:x:72:72::/:/sbin/nologin
    

     

    tac

    tac [OPTION]... [FILE]...

    反向查看文件内容

    [[email protected] tmp]# tac /etc/passwd
    tcpdump:x:72:72::/:/sbin/nologin
    avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
    gnome-initial-setup:x:989:984::/run/gnome-initial-setup/:/sbin/nologin
    ......
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    

     

    more

     分屏查看文件内容

     

    head

    head  [OPTION]... [FILE]...

    翻开文件的前n行,默感觉前10行

    [[email protected] tmp]# head /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    

    常用选项: head -n  #:显示前#行依旧是head -#

     

    tail

    查阅文件的后n行

    tail  [OPTION]... [FILE]...

    [[email protected] tmp]# tail /etc/passwd
    colord:x:992:987:User for colord:/var/lib/colord:/sbin/nologin
    qemu:x:107:107:qemu user:/:/sbin/nologin
    setroubleshoot:x:991:986::/var/lib/setroubleshoot:/sbin/nologin
    rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    gdm:x:42:42::/var/lib/gdm:/sbin/nologin
    sssd:x:990:985:User for sssd:/:/sbin/nologin
    gnome-initial-setup:x:989:984::/run/gnome-initial-setup/:/sbin/nologin
    avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
    tcpdump:x:72:72::/:/sbin/nologin
    

    常用选项:

    tail -n #:展现最终#行照旧是tail -#

    -f:查看文件尾巴部分内容,结束后不脱离,跟随展现新扩充的行

     

    stat

    display file or file system status

    文本:两类数据

    元数据:metadata,文件的情状,创造时间,修改时间,大小,权限等

    数码:文件之中的内容

    [[email protected] tmp]# stat /etc/passwd
      File: ‘/etc/passwd’
      Size: 2235          Blocks: 8          IO Block: 4096   regular file
    Device: fd00h/64768d    Inode: 19840519    Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: system_u:object_r:passwd_file_t:s0
    Access: 2017-07-06 09:25:43.555083116 -0400
    Modify: 2017-07-01 08:00:52.140151303 -0400
    Change: 2017-07-01 08:00:52.141154779 -0400
     Birth: -
    

    stat呈现的正是文本的元数据,富含文件路线,大小,blocks数目,IO block,文件类型,inode号,权限,uid,gid和多少个小时戳等

    多少个日子戳:

    access:近日叁遍采访的大运

    modify:方今一回修改文件的小时

    change:文件近期一次变动的时日,即改造元数据的日子

     

    touch

    change file timestamps  修改时间戳

    touch [OPTION]... FILE...

    文件不真实则开创文件,当直接动用命令去touch八个文本的时候,修改的是具有的小时戳

    常用选项:

    -c:钦点的文本路线不设有的时候不予以成立

    -a:仅修改access time

    -m:仅修改modify time

    -t   STAMP

           [[CC]YY]MMDDhhmm[.ss]

    (无法修改change time,只当元数据产生变化时,才会改造)

    [[email protected] tmp]# touch -t 201212121200.30  test.txt -m
    [[email protected] tmp]# stat test.txt 
      File: ‘test.txt’
      Size: 0             Blocks: 0          IO Block: 4096   regular empty file
    Device: fd00h/64768d    Inode: 17251556    Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2017-07-07 03:17:12.640883844 -0400
    Modify: 2012-12-12 12:00:30.000000000 -0500
    Change: 2017-07-07 03:19:17.667997201 -0400
     Birth: -
    [[email protected] tmp]# 
    

     

    Globbing

    文本名通配:是对完全文件名相称,不是部分相称

    十分字符:

    *:相称猖狂长度的轻便字符

    ?:相配跋扈单个字符

    [ ]:匹配内定范围内的妄动单个字符‘

          [a-z],[A-Z],[0-9],[a-z0-9]   不区分轻重缓急写

          特殊格式:

         [[:upper:]]:全数大写字母

         [[:lower:]]:全数小写字母

         [[:alpha:]]:全数字母

         [[:digit:]]:全体数字

         [[:alnum:]]:全数的字母和数字

         [[:space:]]:全部空白字符

         [[:punct:]]:全部标点符号

    [^]:中括号加托字符,相称钦点范围外的专断单个字符

         [^0-9]:相称数字之外的妄动单个字符  

         [^[:upper:]]:相称大写字母以外的任意单个字符

    演练:展现/var目录下全体以l开始,以三个小写字母结尾,且中间出现壹个人大肆字符的文书或目录;

    ls -d /var/l?[[:lower:]]
    

     练习:复制/etc目录下,全体以.conf结尾,且以m,n,r,p初始的文件或目录至/tmp/conf.d/目录下;

    cp -r /etc/[mnrp]*.conf /tmp/conf.d/
    

     

    文本管理工具

    cp

    复制文件可能目录

    单源复制:

    cp [OPTION]... [-T] SOURCE DEST

    假诺DEST不设有,则先创设此文件,并复制源文件的数量流至DEST文件中

    如果DEST存在:

        假设DEST是非目录文件,则覆盖DEST文件

        纵然DEST是目录文件,则在DEST目录下开创一个与源文件同名的文本,并复制其数额

    多源复制:

    cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE...

    如果DIRECTORY不存在,则报错

    如果DIRECTORY存在:

         若是DIRECTOLANDY是非目录文件,则报错

         要是DIRECTOQX56Y是目录文件,分别复制每种文件至指标目录中,并保持原名

    常用选项:

    -i:交互式复制

    -f:强制覆盖指标文件

    -r,-奥迪Q5:递归复制目录

    -d:复制符号链接文件自个儿,而非指向的源文件

    -a:-d奇骏 --preserve=all, archive,用于落到实处归档;

    --preserv=

           mode:权限

            ownership:属主和属组

            timestamps: 时间戳

            context:安全标签

            xattr:增添属性

            links:符号链接

            all:上述全体属性

     

    mv

    move

    活动文件,可用来重命名文件

    SYNOPSIS        mv [OPTION]... [-T] SOURCE DEST        mv [OPTION]... SOURCE... DIRECTORY        mv [OPTION]... -t DIRECTORY SOURCE...

    常用选项:
    -i:交互式

    -f:强制覆盖文件

     

    rm

    remove

    移除文件

    rm [OPTION]... FILE...

    常用选项:

    -i:交互式移除文件

    -f:强制删除文件

    -r:递归删除

    只顾:全部不用的公文指出不用直接删除,能够移动至有个别专项使用的目录(用来做回收站的目录)

     

    IO重定向及管道

    IO即输入和输出设备,可用以输入的器材一般有键盘、文件系统上的常规文件、网卡等,可用于出口的设备有显示屏、文件系统上的常常化文件、网卡等;

    程序的三种数据流:

    输入的数据流:规范输入(stdin),键盘;

    输出的数据流:规范输出(stdout),显示屏;

    谬误的输出流:错误输出(stderr),显示器;

    文件讲述符:fd,file descriptor

    规范输入:0

    职业输出:1

    漏洞相当多输出:2

     

     IO重定向

    出口重定向:

    >    覆盖输出

    >>    追加输出

    小特性:

    set -C:禁止覆盖输出重定向至已存在的文本

    set C:开启覆盖输出重定向至已存在的文书(暗许)

    不当输出重定向:

    2>    覆盖输出

    2>>    追加输出

    群集平常输出流和谬误输出流

    1.

    &>    覆盖输出

    &>>    追加输出

    2.

    COMMADN > /PATH/TO/somefile  2>&1 :倘使命令实行成功则覆盖输出至somefile,实践不成事也覆盖输出至somefile

    COMMAND >> /PATH/TO/somefile 2>&1:要是命令实践成功则增添覆盖至somefile,实施不成功也大增输出至somefile

    瞩目:特殊设施:/dev/null  当不供给命令的执行结果,只必要精通命令的执市价况,则足以重定向至/dev/null,/dev/null也就是二个果皮箱。

    输入重定向:<

    Here Document:<<,能够看做钦点文件的停止符,常用于shell编制程序

    [root@localhost tmp]# cat <<EOF
    > how are you
    > my name is Frank
    > EOF
    how are you
    my name is Frank
    

     

     tr

    tr [OPTION]... SET1 [SET2]

    把输入的数量个中的字符,凡是在SET1定义范围内冒出的,通通对位转变为SET2涌出的字符,不修改原来的文章件

    用法1: tr SET SET2 < /PATH/FROM/SOMEFILE  

     新葡亰496net 11

    用法2:tr -d SET1  <  /PATH/FROM/SOMEFILE     删除SET第11中学的字符,区分轻重缓急写

     新葡亰496net 12

     

    管道

    接连程序,实现将前方四个指令的输出直接定向后二个顺序作为输出数据流

    COMMAND1 | COMMAND2 | COMMAND3 ...

    [root@localhost tmp]# echo 'abcd' | tr 'a-z' 'A-Z' | tr -d 'AD' 
    BC
    

     

    tee

     显示程序的输出并将其复制到一个或多少个文本中

    [root@localhost tmp]# echo 'abcd' | tee /etc/fstab | tr 'ab' 'AB' 
    ABcd
    [root@localhost tmp]# cat /etc/fstab 
    abcd
    

     如上例子,使用tee命令输出到/etc/fstab,又将正式输入作为了后面tr的输入。

     

    Globbing

    文本名通配:是对总体文件名相称,不是有的相称

    合作字符:

    *:相配大肆长度的放肆字符

    ?:相称自便单个字符

    [ ]:相称钦点范围内的即兴单个字符‘

          [a-z],[A-Z],[0-9],[a-z0-9]   不区分轻重缓急写

          特殊格式:

         [[:upper:]]:全部大写字母

         [[:lower:]]:全数小写字母

         [[:alpha:]]:全部字母

         [[:digit:]]:全数数字

         [[:alnum:]]:全体的字母和数字

         [[:space:]]:全数空白字符

         [[:punct:]]:全数标点符号

    [^]:中括号加托字符,相配钦定范围外的自由单个字符

         [^0-9]:相称数字之外的即兴单个字符  

         [^[:upper:]]:相称大写字母以外的妄动单个字符

    勤学苦练:展现/var目录下全体以l初步,以一个小写字母结尾,且中间出现壹个人自便字符的公文或目录;

    ls -d /var/l?[[:lower:]]
    

     练习:复制/etc目录下,全数以.conf结尾,且以m,n,r,p开始的文件或目录至/tmp/conf.d/目录下;

    cp -r /etc/[mnrp]*.conf /tmp/conf.d/
    

     

    命令hash

    当在bash下边施行多少个命令的时候,bash会在PATH路线下去相称相应的吩咐,假使您登陆叁回shell,施行了每每ls,bash每一次都以去PATH路线下去找三次,岂不是很耗费时间间和能源吗?所以当你在报到shell之后,实行的每命令都会被缓存起来,那样你后一次推行同二个指令的时候,就不需求又在PATH的路子下去搜索了,只须要在缓存里去找。当然这里的一声令下只针对外界命令,像cd这种内建在bash程序中的命令是无需缓存的了。

    能够是hash查看当前shell进行缓存的一声令下(hash本身不会被缓存):

    新葡亰496net 13

     常用选项:

     hash -d COMMAND:删除COMMAND

     新葡亰496net 14

    hash -r:清空hash缓存

    新葡亰496net 15

     

    IO重定向及管道

    IO即输入和输出设备,可用来输入的装置一般有键盘、文件系统上的正规文件、网卡等,可用以出口的器材有显示屏、文件系统上的常规文件、网卡等;

    次第的三种数据流:

    输入的数据流:标准输入(stdin),键盘;

    出口的数据流:标准输出(stdout),显示屏;

    荒唐的输出流:错误输出(stderr),显示屏;

    文本叙述符:fd,file descriptor

    正式输入:0

    标准输出:1

    漏洞非常多输出:2

     

     IO重定向

    出口重定向:

    >    覆盖输出

    >>    追加输出

    小特性:

    set -C:禁止覆盖输出重定向至已存在的文件

    set C:开启覆盖输出重定向至已存在的公文(暗中认可)

    不当输出重定向:

    2>    覆盖输出

    2>>    追加输出

    联合正常输出流和谬误输出流

    1.

    &>    覆盖输出

    &>>    追加输出

    2.

    COMMADN > /PATH/TO/somefile  2>&1 :若是命令实行成功则覆盖输出至somefile,推行不成事也覆盖输出至somefile

    COMMAND >> /PATH/TO/somefile 2>&1:若是命令实施成功则扩张覆盖至somefile,实施不成功也大增输出至somefile

    小心:特殊道具:/dev/null  当不供给命令的实行结果,只需求精通命令的履市价况,则足以重定向至/dev/null,/dev/null约等于二个果皮箱。

    输入重定向:<

    Here Document:<<,能够看作钦赐文件的达成符,常用于shell编程

    [[email protected] tmp]# cat <<EOF
    > how are you
    > my name is Frank
    > EOF
    how are you
    my name is Frank
    

     

     tr

    tr [OPTION]... SET1 [SET2]

    把输入的数据个中的字符,凡是在SET1概念范围内冒出的,通通对位转换为SET2冒出的字符,不修改原来的文章件

    用法1: tr SET SET2 < /PATH/FROM/SOMEFILE  

     新葡亰496net 16

    用法2:tr -d SET1  <  /PATH/FROM/SOMEFILE     删除SET第11中学的字符,区分轻重缓急写

     新葡亰496net 17

     

    管道

    连日程序,达成将前方贰个命令的输出直接定向后三个主次作为输出数据流

    COMMAND1 | COMMAND2 | COMMAND3 ...

    [[email protected] tmp]# echo 'abcd' | tr 'a-z' 'A-Z' | tr -d 'AD' 
    BC
    

     

    tee

     展现程序的输出并将其复制到贰个或多个文本中

    [[email protected] tmp]# echo 'abcd' | tee /etc/fstab | tr 'ab' 'AB' 
    ABcd
    [[email protected] tmp]# cat /etc/fstab 
    abcd
    

     如上例子,使用tee命令输出到/etc/fstab,又将业内输入作为了背后tr的输入。

     

    命令历史 shell进度会记录客户提交施行过的命令 能够是用history查看: [[email protected] dev]...

    变量

    如何是变量呢?变量就足以看成存款和储蓄数据的器皿。

    在bash变量的赋值和别的编制程序语言一样,使用:

    name=value

    [root@localhost /]# my_name="Frank"
    [root@localhost /]# echo ${my_name}
    Frank
    

    在bash中,变量是弱类型的,把持有的变量都作为是字符型,变量不须要事先注脚,表明和赋值可以何况达成。

    变量引用使用${name}恐怕$name,提出使用加花括号的点子

    [root@localhost /]# my_name="Frank"
    [root@localhost /]# echo ${my_name}
    Frank
    [root@localhost /]# echo $my_name
    Frank
    

    变量名的定义准则

    1.变量名只好分包字母数字下划线,不可能以数字先河

    2.不能够使用程序保留的主要字,如if,else

    3.变量名应该既简约和富有描述性

    bash变量类型

    本土变量:效能域仅为方今的shell

            变量赋值:name=value

            查看变量:set

            撤除变量:unset name

    遇到变量:成效域为方今shell及其子进度

            变量赋值:

                    (1) export name=value    或者  name=value  再export name

                    (2) declare -x name=value  或者 name=value 再 declare -x name

            查看意况变量:export,declare -x ,printenv,env

            裁撤碰到变量:unset name
    在bash中放到了十分的多的情况变量,景况变量一般为大写,一般用于定义bash的行事情状,如PATH,HISTSIZE

    某些变量:作用域仅为某代码片段(函数上下文)

    职分参数变量:当实施脚本的shell进度传递的参数

    特种变量:shell内置的有异乎平时效果的变量

    十分变量如$?,重回上次命令推行的图景,0代表成功,1-255象征失利

    设置只读变量:

            declare -r name  或者 readonly name

    [root@localhost /]# name="Frank2"
    [root@localhost /]# 
    [root@localhost /]# declare -r name
    [root@localhost /]# echo ${name}
    Frank2
    

    只读变量无法被重复赋值,也不扶助撤废,存活时间为当前shell进度的生命周期,随shell实行完成而终止

     

    多命令施行

    bash一行能够同不平时间实行五个指令

    ~]# COMMAND1; COMMAND2; COMMAND3; ......

    [root@localhost /]# useradd frank1; useradd frank2
    [root@localhost /]# tail -2 /etc/passwd
    frank1:x:1203:1203::/home/frank1:/bin/bash
    frank2:x:1204:1204::/home/frank2:/bin/bash
    

     

    逻辑运算

    运算数:真(true,yes,on,1),假(false,no,off,0)

    运算符:

    与: 1 && 1 = 1   1 && 0 = 0   0 && 1 = 0    0 && 0 = 0

    或: 1 || 1 = 1   1 || 0 = 1   0 || 1 = 1    0 || 0 = 0

    非:! 1 = 0    ! 0 = 1

    由路线运算,在bash中一个准则,为短路法则

    ~]#COMMAND1 && COMMAND2

    即使COMMNAD1为假,那么COMMAND2就不会施行了

    一旦COMMAND1为真,那么COMMAND2必得实行

    ~]#COMMAND1 || COMMAND2

    只要COMMAND1为假,那么COMMAND2必需执行

    假诺COMMAND2为真,那么COMMAND2不会进行

    举例:

    认清frank3是或不是存在,假若海市蜃楼则创建

    [root@localhost /]# id frank3 || useradd frank3
    id: frank3: no such user
    [root@localhost /]# tail -1 /etc/passwd
    frank3:x:1205:1205::/home/frank3:/bin/bash
    

     

    算术运算

    在bash中也得以实行算术运算:

    算术运算符:

    :加

    -:减

    *:乘

    /:除

    **:幂运算

    %:取余

    算术运算格式:

    (1) let VA帕杰罗=算术运算表明式

    [root@localhost ~]# let var=1 2
    [root@localhost ~]# echo ${var}
    3
    

    (2) VAR=$[算术运算表明式]

    [root@localhost ~]# number1=2
    [root@localhost ~]# number2=2
    [root@localhost ~]# var=$[$number1 $number2]
    [root@localhost ~]# echo ${var}
    4
    

    (3) VAEscort=$((算术运算表明式))

    [root@localhost ~]# number1=1
    [root@localhost ~]# number2=6
    [root@localhost ~]# var=$(($number1 number2))
    [root@localhost ~]# echo $var
    7
    

    (4)VAR=$(expr $ARG1 操作  $ARG2)

    [root@localhost ~]# number2=6
    [root@localhost ~]# number1=1
    [root@localhost ~]# 
    [root@localhost ~]# 
    [root@localhost ~]# var=$(expr $number1   $number2)
    [root@localhost ~]# echo $var
    7
    

    expr也足以做数值比较,详见man expr

    [root@localhost ~]# var=$(expr $number1 = $number2)
    [root@localhost ~]# echo $var
    0
    

     

    bash的布局文件

    当我们登陆shell进程的时候,会读取bash的铺排文件,bash的计划文件非为两种,profile类和bashrc类,在讲这么些后边,唯有管理员本事修改bash的布置文件,我们先来打探一下底下二种登入类型:

    交互式登入shell进程:

    1.由此某终端输入账号和密码后登入张开的shell进度

    2.采取su命令,su - USE翼虎NAME恐怕使用su -l USERubiconNAME登陆shell进度

    非交互式登入shell基础:

    1.图形分界面下张开的极端

    2.运转脚本时张开的shell

    3.su USE本田UR-VNAME施行的记名切换

    询问三种登陆类型的时候,大家就来看看bash的两类配置文件,profile类和bashrc类

    profile类:

    profile类的文本有:/etc/profile   /etc/profile.d/*.sh    ~/.bash.profile

    大局意义:/etc/profile和/etc/profile.d/*.sh

    客户个人作用:~/.bash.rc

    重大作用:用于定义情况变量,运转命令或脚本

    bashrc类:

    bashrc类的文件有:/etc/bashrc    ~/.bashrc

    全局意义:/etc/bashrc

    顾客个人成效:~/.bashrc

    主要作用:定义本地变量和指令的外号

    那么三种登入方式会读取哪些布署文件,读取时是按什么的相继吗?

    交互式登入shell进度:

    /etc/profile  -->  /etc/profile.d/*  -->  ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

    非交互式登陆shell进度:

    ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*

    在眼下命令行中定义变量的时候,我们会开采当自家关闭shell进度的时候,再一次登入的时候,从前定义的变量都不曾了,所以在指令行中定义的变量的生命周期为当下shell进度的生命周期。

    如果在计划文件中定义,会冒出哪些的地方呢?大家来试试看,前面说bashrc是根本定义命令别名的,命令别名在~/.bashrc中存在:

    [root@localhost ~]# cat .bashrc 
    # .bashrc
    # User specific aliases and functions
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    # Source global definitions
    if [ -f /etc/bashrc ]; then
        . /etc/bashrc
    fi
    

    好的,大家就在文件写入alias cls='clear',写完事后保存退出,奉行cls,大家会发觉并未得逞,因为在配备文件中写入的只对接着新运转的shell进程有效

    新葡亰496net 18

    让配置文件定义的性子立刻生效的点子

    1.透过命令行重复定义一次

    2.让shell进度重读配置文件

    ~]#source  /PATH/FROM/CONFI_FILE

    或者

    ~]# .  /PATH/FROM/CONFI_FILE

    举个例证:让centos顾客登陆时,显示接待,并呈现当前时间:

    分析:因为只是针对单个顾客,大家只要求在其家目录下修改.bash_profiel文件

    echo "Hi centos!"
    echo `date`
    

    当客户登入时就能够议及展览示效果:

    新葡亰496net 19

     

     

    更新历史:

    2017-7-18:更新了命令wc、sort、uniq、cut、diff和patch

           更新命令hash、变量、多命令试行,逻辑和算术运算和bash的布置文件

     

    本文由新葡亰496net发布于电脑系统,转载请注明出处:bash的基础特性,linux文件系统及bash基础特性

    关键词: