一声令下历史

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 #:突显近年来的#条命令

 

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

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

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

!STOdysseyING:再一回执行命令历史列表中近期四个以ST奥迪Q3ING开始的下令

 

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

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

要么使用字符串:!$

 

支配命令的笔录情势

[root@localhost /]# echo $HISTCONTROL
ignoredups

ignoredups:忽略重复的指令;

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

ignoreboth:以上两者同时生效;

 

命令历史

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 #:展现近来的#条命令

 

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

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

!!:再2遍实施上一条命令

!STCR-VING:再三次执行命令历史列表中最近1个以STXC60ING开首的通令

 

调用上一条命令的末尾五个参数

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

照旧应用字符串:!$

 

支配命令的记录格局

[root@localhost /]# echo $HISTCONTROL
ignoredups

ignoredups:忽略重复的授命;

ignorespace:忽略以空白字符初始的一声令下;

ignoreboth:以上两者同时生效;

 

【Linux相识相知】bash的底子天性,linux相识相知bash

linux文件系统

    一、根文件系统

  linux被识其余第3个被称呼根之间涉及的文件系统叫做根文件系统(rootfs),别的分区要想被读到,要求挂载到根目录的有些挂载点(根的子目录)上。根文件系统至关心爱慕要,整个文件系统统1访问入口。  

  Linux指点运转时,暗许使用的文件系统是根文件系统。在这之中1般都包蕴那样局地子目录:

  /boot 系统指导文件存放目录

  /bin
供全体用户使用的授命(不可能关联到独门分支)不能够关联到独门分区,os运行即会用到的次序。

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

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

  /lib6四 专用于陆1八位系统上的帮助库文件

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

      (一)/etc/opt 为opt运营文件存放配置目录

      (二)/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 全体程序可使用

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

澳门金沙国际 1

 

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

        
 include,c语言头文件的标准库(头文件是讲述库文件打开调用接口格局的)

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

      (四)/usr/local第3方应用程序安装地方

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

澳门金沙国际 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套接字文件(访问现有系统的贰个专用接口)

    3、系统一管理理类命令

  关机或重启命令:

  (一)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;重启。

  用户登录音讯查阅命令:

  (壹)whoami:呈现当前登录的用户;

  (二)who:当前有所登录会话;

  (三)w:系统当下抱有登录会话和操作。

补全功能

命令补全

shell程序在经受到用户执行命令的伸手时,最左边的字符串会被看作命令

命令查找体制:首先查找内部命令,依照PATH环境变量中设定的目录,自左而右每一个搜索目录下的文书名

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

 使用Tab键补全

 

路线补全

 在给定的起初路径下,以对应路径下的打头字符串来逐1相称开头路径下每一个文件

 

补全作用

一声令下补全

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 #:显示如今的#条命令

 

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

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

!!:再2遍施行上一条命令

!STCR-VING:再二回执行命令历史列表中近年来五个以ST昂CoraING发轫的一声令下

 

调用上一条命令的末梢三个参数

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

依然选取字符串:!$

 

支配命令的记录情势

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

ignoredups:忽略重复的下令;

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

ignoreboth:以上两者同时生效;

 

常用管理命令

  壹.施用pwd和cd命令来分明和切换目录

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

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

  二.选拔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

  三.使用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

  四.行使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

  陆.应用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

  七.接纳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:删除某目录后,如若其父目录为空,则1并删除之

-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

 

目录管理类命令

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的底蕴天性:

  1、命令历史

  history;history的环境变量:

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

[root@localhost ~]# echo $HISTSIZE
1000

  (二)HISTFILE:持久保存命令历史的文件,当退出登录的时候,此番的指令历史才会被写入到HISTFILE中

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

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

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

[root@localhost ~]# echo $HISTFILESIZE
1000

  贰、history常用命令用法  

  -c:清空命令历史  

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

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

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

  history #:显示近年来的#条命令

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

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

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

  !!:再1次实践上一条命令

  !STTucsonING:再2回执行命令历史列表中近来一个以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给出以给定字符作为初阶的文书列表

  路径补全: 在加以的苗子路径下,以对应路径下的打头字符串来逐1相配开端路径下各类文件

  肆、命令行展开

  ~:展开为用户家目录;

  ~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。

  5、命令的实施结果

  命令执行的景况结果有三种:成功(0),失利(一-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)

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

  通配符:*,?,[]

  *自由长度的妄动字符

  ?任意单个字符

  []协作钦赐范围的单个字符[0-9],[a-z]:全数字母,不区分轻重缓急写[A-Z]:大写字母

  [^]取反

  专用字符集:

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

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

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

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

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

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

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

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

  打开文件都有2个fd:file descriptor(文件讲述)

  标准输入:0

  标准输出:壹

  错误输出:贰

  I/O重定向正是改变专业地方。

  输出重定向:

  >    覆盖输出

  >>    追加输出

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

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

  错误输出重定向:

  二>    覆盖输出

  二>>    追加输出

  合并符合规律输出流和谬误输出流

  &>    覆盖输出

  &>>    追加输出

  COMMADN > /PATH/TO/somefile  二>&一:固然命令执行成功则覆盖输出至somefile,执行不成事也覆盖输出至somefile

  COMMAND >> /PATH/TO/somefile
贰>&一:若是命令执行成功则扩展覆盖至somefile,执行不成功也加进输出至somefile

  注:特殊配备:当不供给命令的推行结果,只供给知道命令的履汇兑况,则可以重定向至/dev/null,/dev/null相当于2个垃圾桶。

  输入重定向:<

  Here Document:<<,能够看作内定文件的终止符,常用来shell编程

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

  tr [OPTION]… SET1 [SET2]

  把输入的多寡当中的字符,凡是在SET壹概念范围内冒出的,通通对位转换为SET二出现的字符,不改动原著件

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

  管道

  连接程序,最后二个命令会在当前shell进度的子进度中推行。

  COMMAND1 | COMMAND2 | COMMAND3 …

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

  tee

  呈现程序的出口并将其复制到八个或多少个文本中。

命令行展开

{}:可承接1个以逗号分隔的门径,并能够将其展开为多个路子

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

例子:

何以创建/tmp/x/y一, /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来查阅目录的层级结构

 澳门金沙国际 3

-L #,内定要出示的层级

澳门金沙国际 4

 

命令行展开

{}:可承接一个以逗号分隔的门径,并能够将其展开为八个路子

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

例子:

何以创立/tmp/x/y一, /tmp/x/y二, /tmp/x/y1/a, /tmp/x/y1/b?

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

什么样创立a_c, a_d, b_【澳门金沙国际】Linux相识相知,bash的功底本性。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来查看目录的层级结构

 澳门金沙国际 5

-L #,钦命要出示的层级

澳门金沙国际 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相称到的途径。

 命令的施市价况结果

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

 

 命令的实施情形结果

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来查看目录的层级结构

 澳门金沙国际 7

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

澳门金沙国际 8

 

飞快操作

  ctrl+a:跳转至命令行行首

  ctrl+e:跳转至命令行行尾

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

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

  ctrl+l:清屏,相当于clear

引用

 引用命令的施行结果:

 $(COMMAND)或者`COMMAND`

 澳门金沙国际 9

 强引用,单引号:

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

 弱引用,双引号:

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

 

引用

 引用命令的实践结果:

 $(COMMAND)或者`COMMAND`

 澳门金沙国际 10

 强引用,单引号:

[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可跟踪展现文件新扩充的始末。

快捷键

ctrl+a:跳转至命令行行首

ctrl+e:跳转至命令行行尾

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

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

ctrl+l:清屏,相当于clear

 

快捷键

ctrl+a:跳转至命令行行首

ctrl+e:跳转至命令行行尾

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

ctrl+k:删除光标所在处至行尾的全数字符

ctrl+l:清屏,相当于clear

 

引用

 引用命令的施行结果:

 $(COMMAND)或者`COMMAND`

 澳门金沙国际 11

 强引用,单引号:

[[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:近年来3回修改文件的时日,即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  [OPTION]… [FILE]…

翻看文件的前n行,默许为前十行

[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

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:输出单词数,重复单词只算2个

-c:输出字节数

举例:

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

 

 

cut

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

SYNOPSIS:cut OPTION… [FILE]…

常用选项:-d CHALAND:以钦命的字符为分隔符

                  -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 CHAXC90:钦赐分隔符

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

-r:逆序排序

-f:忽略字符大小写

-u:重复行只保留1份,一连且同样

举例:以:为分隔符,按第多个字段的数值大小相比较排序文件/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:仅展现重复过的行

 

文本查看类命令

 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  [OPTION]… [FILE]…

查阅文件的前n行,默许为前十行

[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

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:最近3次访问的岁月

modify:近日三遍修改文件的时刻

change:文件近年来二回变动的光阴,即改变元数据的光阴

 

touch

change file timestamps  修改时间戳

touch [OPTION]… FILE…

文件不存在则开创文件,当直接利用命令去touch2个文书的时候,修改的是拥有的时刻戳

常用选项:

-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:在文件的每1行中领到部分

SYNOPSIS:cut OPTION… [FILE]…

常用选项:-d CHACR-V:以钦赐的字符为分隔符

                  -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 CHAKoleos:钦定分隔符

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

-r:逆序排序

-f:忽略字符大小写

-u:重复行只保留1份,一而再且同样

举例:以:为分隔符,按第多个字段的数值大小相比较排序文件/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目录下开创一个与源文件同名的文书,并复制其数额

  SLacrosseC是多少个文件时:

    DEST必须存在,且为目录,不然就会报错。

  SRC是目录:

    DEST不设有,则制造钦点目录,复制SKugaC目录中兼有文件至DEST。

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

  常用选项:

  -i:交互式复制

  -f:强制覆盖目标文件

  -r,-Qashqai:递归复制目录

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

  -a:-d奔驰G级 –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存在:

     假使DIRECTOPRADOY是非目录文件,则报错

     要是DIRECTOSportageY是目录文件,分别复制各个文件至目的目录中,并维持原名

常用选项:

-i:交互式复制

-f:强制覆盖目的文件

-r,-昂Cora:递归复制目录

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

-a:-dPAJERO –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:找出二个文本中的不一样

SYNOPSISI:diff [OPTION]… FILES

-u:使用unfied机制,即展示要修改行的上下文,私下认可为3行

很好用的工具

譬如大家今后有贰个公文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

 

文本管理工具

cp

复制文件或然目录

单源复制:

cp [OPTION]… [-T] SOURCE DEST

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

如果DEST存在:

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

   
假使DEST是目录文件,则在DEST目录下开创2个与源文件同名的文书,并复制其数额

多源复制:

cp [OPTION]… SOURCE… DIRECTORY

cp [OPTION]… -t DIRECTORY SOURCE…

如果DIRECTORY不存在,则报错

如果DIRECTORY存在:

     假诺DIRECTO奥德赛Y是非目录文件,则报错

     假诺DIRECTO猎豹CS陆Y是目录文件,分别复制每一个文件至目的目录中,并有限援救原名

常用选项:

-i:交互式复制

-f:强制覆盖指标文件

-r,-智跑:递归复制目录

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

-a:-dENVISION –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:找出贰个公文中的差别

SYNOPSISI:diff [OPTION]… FILES

-u:使用unfied机制,即体现要修改行的上下文,暗许为三行

很好用的工具

诸如大家明日有3个文本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行,默许为前十行

[[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:文件方今3遍变动的时日,即改变元数据的日子

 

touch

change file timestamps  修改时间戳

touch [OPTION]… FILE…

文本不设有则开创文件,当直接使用命令去touch3个文书的时候,修改的是享有的岁月戳

常用选项:

-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:]]:全体标点符号

[^]:中括号加托字符,相配钦点范围外的4意单个字符

     [^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/

 

Globbing

文件名通配:是对完全文件名相称,不是有些相配

相配字符:

*:相配任意长度的肆意字符

?:相配任意单个字符

[ ]:相配钦赐范围内的轻易单个字符‘

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

      特殊格式:

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

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

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

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

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

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

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

[^]:中括号加托字符,匹配内定范围外的任意单个字符

     [^0-9]:相配数字之外的随意单个字符  

     [^[:upper:]]:相配大写字母以外的自由单个字符

练习:展现/var目录下全体以l先导,以四个小写字母结尾,且中间现身1个人任意字符的公文或目录;

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目录下创办2个与源文件同名的公文,并复制其数据

多源复制:

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

如果DIRECTORY不存在,则报错

如果DIRECTORY存在:

     借使DIRECTOPRADOY是非目录文件,则报错

     要是DIRECTO福特ExplorerY是目录文件,分别复制每一个文件至指标目录中,并保持原名

常用选项:

-i:交互式复制

-f:强制覆盖指标文件

-r,-Haval:递归复制目录

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

-a:-dLAND –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

正规输出:一

不当输出:二

 

 IO重定向

出口重定向:

>    覆盖输出

>>    追加输出

小特性:

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

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

荒唐输出重定向:

二>    覆盖输出

2>>    追加输出

统1平常输出流和谬误输出流

1.

&>    覆盖输出

&>>    追加输出

2.

COMMADN > /PATH/TO/somefile  二>&1:如若命令执行成功则覆盖输出至somefile,执行不成功也掩盖输出至somefile

COMMAND >> /PATH/TO/somefile
二>&一:假义务令执行成功则扩大覆盖至somefile,执行不成事也平添输出至somefile

小心:特殊设施:/dev/null
 当不要求命令的进行理并了结果,只供给知道命令的推行境况,则足以重定向至/dev/null,/dev/null约等于1个垃圾箱。

输入重定向:<

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]

把输入的多少个中的字符,凡是在SET一定义范围内出现的,通通对位转换为SET2油然则生的字符,不改动原作件

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

 澳门金沙国际 12

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

 澳门金沙国际 13

 

管道

接贰连三程序,实现将近年来一个命令的出口直接定向后2个先后当做输出数据流

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的输入。

 

IO重定向及管道

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

次第的二种数据流:

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

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

不当的输出流:错误输出(stderr),显示屏;

文件讲述符:fd,file descriptor

正规输入:0

正式输出:一

谬误输出:二

 

 IO重定向

输出重定向:

>    覆盖输出

>>    追加输出

小特性:

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

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

谬误输出重定向:

二>    覆盖输出

贰>>    追加输出

统1不奇怪输出流和错误输出流

1.

&>    覆盖输出

&>>    追加输出

2.

COMMADN > /PATH/TO/somefile  二>&1:假如命令执行成功则覆盖输出至somefile,执行不成事也掩盖输出至somefile

COMMAND >> /PATH/TO/somefile
二>&一:即便命令执行成功则扩大覆盖至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定义范围内冒出的,通通对位转换为SET二涌出的字符,不修改原来的书文件

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

 澳门金沙国际 14

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

 澳门金沙国际 15

 

管道

连年程序,完成将前方两个指令的出口直接定向后二个先后当做输出数据流

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本人不会被缓存):

澳门金沙国际 16

 常用选项:

 hash -d COMMAND:删除COMMAND

 澳门金沙国际 17

hash -r:清空hash缓存

澳门金沙国际 18

 

命令hash

澳门金沙国际 ,当在bash上边执行一个发令的时候,bash会在PATH路径下去相配相应的吩咐,假如您登录三遍shell,执行了数次ls,bash每一遍都以去PATH路径下去找3次,岂不是很耗费时间间和财富吗?所以当你在报到shell之后,执行的每命令都会被缓存起来,那样您下次执行同三个限令的时候,就不必要又在PATH的门路下去寻找了,只供给在缓存里去找。当然这里的一声令下只针对外部命令,像cd那种内建在bash程序中的命令是不须要缓存的了。

能够是hash查看当前shell举办缓存的下令(hash自己不会被缓存):

澳门金沙国际 19

 常用选项:

 hash -d COMMAND:删除COMMAND

 澳门金沙国际 20

hash -r:清空hash缓存

澳门金沙国际 21

 

IO重定向及管道

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

先后的三种数据流:

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

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

不当的输出流:错误输出(stderr),显示屏;

文本讲述符:fd,file descriptor

正规输入:0

正式输出:一

谬误输出:2

 

 IO重定向

输出重定向:

>    覆盖输出

>>    追加输出

小特性:

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

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

荒谬输出重定向:

二>    覆盖输出

二>>    追加输出

集合平常输出流和不当输出流

1.

&>    覆盖输出

&>>    追加输出

2.

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

COMMAND >> /PATH/TO/somefile
二>&一:若是命令执行成功则扩大覆盖至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]

把输入的数码个中的字符,凡是在SET壹概念范围内冒出的,通通对位转换为SET二产出的字符,不改动原作件

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

 澳门金沙国际 22

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

 澳门金沙国际 23

 

管道

接二连3程序,完成将眼前一个命令的出口直接定向后一个先后当做输出数据流

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.无法使用程序保留的第3字,如if,else

三.变量名应该既简便易行和有着描述性

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中放置了无数的环境变量,环境变量1般为大写,一般用于定义bash的干活条件,如PATH,HISTSIZE

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

地点参数变量:当执行脚本的shell进度传递的参数

尤其变量:shell内置的有独特效率的变量

特出变量如$?,重返上次命令执行的地方,0代表成功,1-25伍象征失败

安装只读变量:

        declare -r name  或者 readonly name

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

只读变量无法被重新赋值,也不扶助裁撤,存活时间为近日shell进度的生命周期,随shell举行扫尾而终结

 

变量

怎么着是变量呢?变量就足以当作存款和储蓄数据的容器。

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

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.变量名只可以分包字母数字下划线,无法以数字起先

贰.不可见利用程序保留的重中之重字,如if,else

三.变量名应该既简约和颇具描述性

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中置放了成都百货上千的环境变量,环境变量一般为大写,1般用来定义bash的做事条件,如PATH,HISTSIZE

部分变量:功能域仅为某代码片段(函数上下文)

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

破例变量:shell内置的有新鲜意义的变量

非凡变量如$?,再次来到上次命令执行的景色,0代表成功,1-25伍意味着失利

设置只读变量:

        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

 

多命令执行

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中1个原理,为短路法则

~]#COMMAND1 && COMMAND2

要是COMMNAD一为假,那么COMMAND二就不会履行了

假定COMMAND壹为真,那么COMMAND二必须举行

~]#COMMAND1 || COMMAND2

若是COMMAND壹为假,那么COMMAND二必须实施

万1COMMAND2为真,那么COMMAND2不会执行

举例:

判断frank三是不是存在,借使不设有则创制

[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

 

逻辑运算

运算数:真(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就不会执行了

假设COMMAND一为真,那么COMMAND贰必须履行

~]#COMMAND1 || COMMAND2

一旦COMMAND1为假,那么COMMAND二必须实施

若果COMMAND二为真,那么COMMAND二不会执行

举例:

判断frank叁是否留存,若是不设有则开创

[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

(三) VAPAJERO=$((算术运算表明式))

[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中也得以执行算术运算:

算术运算符:

+:加

-:减

*:乘

/:除

**:幂运算

%:取余

算术运算格式:

(一) let VA悍马H2=算术运算表明式

[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

(三) VA瑞虎=$((算术运算表达式))

[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进度:

壹.透过某终端输入账号和密码后登录打开的shell进度

二.运用su命令,su – USERubiconNAME或许利用su -l USEPRADONAME登录shell进度

非交互式登录shell基础:

1.图形界面下打开的终端

二.运营脚本时打开的shell

三.su USEEnclaveNAME履行的登录切换

摸底二种登录类型的时候,大家就来探视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进程有效

澳门金沙国际 24

让配置文件定义的特色立时生效的主意

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

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

~]#source  /PATH/FROM/CONFI_FILE

或者

~]# .  /PATH/FROM/CONFI_FILE

举个例证:让centos用户登录时,显示欢迎,并展现当前时刻:

解析:因为只是指向单个用户,大家只供给在其家目录下修改.bash_profiel文件

echo "Hi centos!"
echo `date`

当用户登录时就会来得效果:

澳门金沙国际 25

 

 

履新历史:

2017-7-1八:更新了指令wc、sort、uniq、cut、diff和patch

     
 更新命令hash、变量、多命令执行,逻辑和算术运算和bash的配备文件

 

bash的布局文件

当大家登录shell进度的时候,会读取bash的计划文件,bash的布署文件非为三种,profile类和bashrc类,在讲那一个前边,唯有管理员才能修改bash的安排文件,大家先来精晓一下底下三种登录类型:

交互式登录shell进度:

一.透过某终端输入账号和密码后登录打开的shell进度

二.施用su命令,su – USE哈弗NAME或然选择su -l USE奥迪Q5NAME登录shell进程

非交互式登录shell基础:

一.图形界面下打开的极端

贰.运营脚本时打开的shell

叁.su USE福特ExplorerNAME实践的登录切换

打探三种登录类型的时候,大家就来看看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进程有效

澳门金沙国际 26

让配置文件定义的风味立刻生效的格局

一.由此命令行重复定义2次

二.让shell进程重读配置文件

~]#source  /PATH/FROM/CONFI_FILE

或者

~]# .  /PATH/FROM/CONFI_FILE

举个例证:让centos用户登录时,展现欢迎,并展现超过天子:

浅析:因为只是针对单个用户,我们只需求在其家目录下修改.bash_profiel文件

echo "Hi centos!"
echo `date`

当用户登录时就会展现效果:

澳门金沙国际 27

 

 

创新历史:

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

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

 

相关文章