linux文件系统及bash基础性情,Linux相识相知

By admin in 美高梅手机版4858 on 2019年4月12日

一声令下历史

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哈弗ING:再叁次执行命令历史列表中目前三个以ST库罗德ING起先的命令

 

调用上一条命令的终极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 #:展现近期的#条命令

 

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

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

!linux文件系统及bash基础性情,Linux相识相知。!:再3次实行上一条命令

!STOdysseyING:再1次执行命令历史列表中近年来多少个以ST途锐ING开首的命令

 

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

快捷键:按一下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 基本共享库文件(运行就须要的库文件),以及内核模块文件。

  /lib6四 专用于611位系统上的协助库文件

  /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的简写呦(拥有独立的文件系统结构)

   (一)/usr/bin 全部程序可应用

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

美高梅手机版4858 1

 

         他的配置文件只怕在/etc下

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

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

      (肆)/usr/local第2方应用程序安装地点

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

美高梅手机版4858 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套接字文件(访问现有系统的2个专用接口)

    三、系统一管理理类命令

  关机或重启命令:

  (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:彰显当前登录的用户;

  (二)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键补全

 

途径补全

 在加以的苗子路径下,以对应路径下的打头字符串来逐1相配开首路径下各样文件

 

指令历史

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

 

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

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

!!:再一回进行上一条命令

!ST奥德赛ING:再贰遍执行命令历史列表中近期一个以ST凯雷德ING初步的授命

 

调用上一条命令的尾声2个参数

快捷键:按一下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

  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

  四.采取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

  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

 

目录管理类命令

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

 

补全成效

指令补全

shell程序在收受到用户执行命令的呼吁时,最左边的字符串会被看成命令

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

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

 使用Tab键补全

 

途径补全

 在给定的序曲路径下,以对应路径下的打头字符串来逐1相称开端路径下各样文件

 

bash的基本功性格:

  壹、命令历史

  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:手动追加当前会话缓冲区的指令历史至历史文件中

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

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

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

  !STOdysseyING:再一回执行命令历史列表中近来二个以STCR-VING开始的一声令下

  调用上一条最终2个参数方法:!$;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可直接补全命令,若给定字符开头的指令不唯1,再一次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。

  5、命令的履行结果

  命令执行的处境结果有二种:成功(0),失利(一-25伍),可用$?查看方今一条命令的实市价况结果。

  程序执行有两类结果:程序重回值和程序执行状态结果。

  陆、命令别称(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

  标准输出:一

  错误输出:2

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

  输出重定向:

  >    覆盖输出

  >>    追加输出

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

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

  错误输出重定向:

  贰>    覆盖输出

  贰>>    追加输出

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

  &>    覆盖输出

  &>>    追加输出

  COMMADN > /PATH/TO/somefile  二>&一:假职务令执行成功则覆盖输出至somefile,执行不成功也掩盖输出至somefile

  COMMAND >> /PATH/TO/somefile
2>&壹:尽管命令执行成功则扩张覆盖至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 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

  展现程序的出口并将其复制到3个或三个文本中。

命令行展开

{}:可承接3个以逗号分隔的路径,并能够将其开始展览为七个途径

例如:/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来查阅目录的层级结构

 美高梅手机版4858 3

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

美高梅手机版4858 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_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来查阅目录的层级结构

 美高梅手机版4858 5

-L #,钦赐要呈现的层级

美高梅手机版4858 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:删除某目录后,借使其父目录为空,则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

  三、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/y一, /tmp/x/y二, /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来查看目录的层级结构

 美高梅手机版4858 7

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

美高梅手机版4858 8

 

高速操作

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

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

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

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

  ctrl+l:清屏,相当于clear

引用

 引用命令的实施结果:

 $(COMMAND)或者`COMMAND`

 美高梅手机版4858 9

 强引用,单引号:

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

 弱引用,双引号:

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

 

引用

 引用命令的进行结果:

 $(COMMAND)或者`COMMAND`

 美高梅手机版4858 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`

 美高梅手机版4858 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:近年来1遍访问的日子,即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  [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

文本:两类数据

美高梅手机版4858,元数据: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:文件方今3次变动的岁月,即改变元数据的小时

 

touch

change file timestamps  修改时间戳

touch [OPTION]… FILE…

文件不存在则开创文件,当直接利用命令去touch1个文书的时候,修改的是具备的年华戳

常用选项:

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

-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:仅显示重复过的行

 

文件查看类命令

 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行,默许为前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

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 CHAPAJERO:钦命分隔符

-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目录下开创一个与源文件同名的文本,并复制其数额

  SKoleosC是四个文本时:

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

  SRC是目录:

    DEST不存在,则成立钦点目录,复制SCRUISERC目录中颇具文件至DEST。

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

  常用选项:

  -i:交互式复制

  -f:强制覆盖目的文件

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

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

  -a:-dCR-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

比方DEST不存在,则先创立此文件,并复制源文件的数码流至DEST文件中

如果DEST存在:

    要是DEST是非目录文件,则覆盖DEST文件

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

多源复制:

cp [OPTION]… SOURCE… DIRECTORY

cp [OPTION]… -t DIRECTORY SOURCE…

如果DIRECTORY不存在,则报错

如果DIRECTORY存在:

     倘诺DIRECTO福特ExplorerY是非目录文件,则报错

     假若DIRECTOCR-VY是目录文件,分别复制种种文件至目的目录中,并维持原名

常用选项:

-i:交互式复制

-f:强制覆盖指标文件

-r,-君越:递归复制目录

-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:递归删除

小心:全数不用的公文提出并非直接删除,可以活动至某些专用的目录(用来做回收站的目录)

 

diff

NAME:找出三个文本中的差异

SYNOPSISI:diff [OPTION]… FILES

-u:使用unfied机制,即突显要修改行的上下文,暗中认可为三行

很好用的工具

譬如大家明日有二个文件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

我们能够把差异的行的新闻保存到3个文件中(前面使用)

[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目录下开创四个与源文件同名的文件,并复制其数额

多源复制:

cp [OPTION]… SOURCE… DIRECTORY

cp [OPTION]… -t DIRECTORY SOURCE…

如果DIRECTORY不存在,则报错

如果DIRECTORY存在:

     如若DIRECTO中华VY是非目录文件,则报错

     倘使DIRECTOOdysseyY是目录文件,分别复制每一种文件至目的目录中,并维持原名

常用选项:

-i:交互式复制

-f:强制覆盖目的文件

-r,-福特Explorer:递归复制目录

-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:递归删除

只顾:全数不用的公文建议不用直接删除,能够运动至有些专用的目录(用来做回收站的目录)

 

diff

NAME:找出一个公文中的区别

SYNOPSISI:diff [OPTION]… FILES

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

很好用的工具

诸如我们明日有三个文本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

大家得以把差异的行的新闻保存到3个文书中(后边使用)

[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…

文本不存在则开创文件,当直接利用命令去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最先,以2个小写字母结尾,且中间出现1个人任意字符的公文或目录;

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开首,以3个小写字母结尾,且中间出现一人任意字符的文本或目录;

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

多源复制:

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

如果DIRECTORY不存在,则报错

如果DIRECTORY存在:

     假设DIRECTOENVISIONY是非目录文件,则报错

     若是DIRECTOEscortY是目录文件,分别复制种种文件至目的目录中,并维持原名

常用选项:

-i:交互式复制

-f:强制覆盖指标文件

-r,-君越:递归复制目录

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

-a:-dTiggo –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即输入和输出设备,可用以输入的装置1般有键盘、文件系统上的常规文件、网卡等,可用于出口的装备有显示屏、文件系统上的平常化文件、网卡等;

程序的三种数据流:

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

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

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

文本讲述符:fd,file descriptor

正式输入:0

规范输出:一

荒谬输出:贰

 

 IO重定向

出口重定向:

>    覆盖输出

>>    追加输出

小特性:

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

set +C:开启覆盖输出重定向至已存在的文书(私下认可)

漏洞非常多输出重定向:

贰>    覆盖输出

二>>    追加输出

统一平常输出流和错误输出流

1.

&>    覆盖输出

&>>    追加输出

2.

COMMADN > /PATH/TO/somefile  贰>&一:假设命令执行成功则覆盖输出至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]

把输入的数目在这之中的字符,凡是在SET一概念范围内出现的,通通对位转换为SET二并发的字符,不改动原来的书文件

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

 美高梅手机版4858 12

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

 美高梅手机版4858 13

 

管道

接二连三程序,完毕将日前二个命令的出口直接定向后3个程序当做输出数据流

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

正式输出:1

荒唐输出:二

 

 IO重定向

输出重定向:

>    覆盖输出

>>    追加输出

小特性:

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

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

荒谬输出重定向:

二>    覆盖输出

二>>    追加输出

联合不荒谬输出流和谬误输出流

1.

&>    覆盖输出

&>>    追加输出

2.

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

COMMAND >> /PATH/TO/somefile
贰>&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定义范围内冒出的,通通对位转换为SET二涌出的字符,不修改原作件

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

 美高梅手机版4858 14

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

 美高梅手机版4858 15

 

管道

连年程序,完毕将日前二个指令的出口直接定向后1个程序作为输出数据流

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上边执行3个限令的时候,bash会在PATH路径下去相配相应的授命,若是您登录三遍shell,执行了频仍ls,bash每一次都以去PATH路径下去找3次,岂不是很耗费时间间和财富吗?所以当你在登录shell之后,执行的每命令都会被缓存起来,这样您下次施行同3个发令的时候,就不须要又在PATH的不二秘籍下去寻找了,只供给在缓存里去找。当然那里的命令只针对外部命令,像cd那种内建在bash程序中的命令是不供给缓存的了。

能够是hash查看当前shell进行缓存的命令(hash本人不会被缓存):

美高梅手机版4858 16

 常用选项:

 hash -d COMMAND:删除COMMAND

 美高梅手机版4858 17

hash -r:清空hash缓存

美高梅手机版4858 18

 

命令hash

当在bash下边执行三个限令的时候,bash会在PATH路径下去相称相应的吩咐,如若你登录二回shell,执行了累累ls,bash每一回都以去PATH路径下去找贰次,岂不是很耗费时间间和财富吗?所以当你在报到shell之后,执行的每命令都会被缓存起来,那样你下次施行同3个下令的时候,就不须要又在PATH的门径下去寻找了,只供给在缓存里去找。当然那里的下令只针对外部命令,像cd那种内建在bash程序中的命令是不须求缓存的了。

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

美高梅手机版4858 19

 常用选项:

 hash -d COMMAND:删除COMMAND

 美高梅手机版4858 20

hash -r:清空hash缓存

美高梅手机版4858 21

 

IO重定向及管道

IO即输入和输出设备,可用来输入的设施1般有键盘、文件系统上的例行文件、网卡等,可用于出口的装置有显示屏、文件系统上的健康文件、网卡等;

程序的二种数据流:

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

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

漏洞非常多的输出流:错误输出(stderr),显示器;

文件讲述符:fd,file descriptor

专业输入:0

正规输出:1

不当输出:二

 

 IO重定向

出口重定向:

>    覆盖输出

>>    追加输出

小特性:

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

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

荒唐输出重定向:

2>    覆盖输出

贰>>    追加输出

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

1.

&>    覆盖输出

&>>    追加输出

2.

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

COMMAND >> /PATH/TO/somefile
2>&1:假职责令执行成功则增添覆盖至somefile,执行不成事也增多输出至somefile

注意:特殊设施:/dev/null
 当不须求命令的举行结果,只要求精晓命令的推行情状,则足以重定向至/dev/null,/dev/null相当于2个垃圾桶。

输入重定向:<

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定义范围内出现的,通通对位转换为SET贰涌出的字符,不改动原来的书文件

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

 美高梅手机版4858 22

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

 美高梅手机版4858 23

 

管道

老是程序,完结将前方3个命令的出口直接定向后叁个顺序作为输出数据流

COMMAND1 | COMMAND2 | COMMAND3 …

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

 

tee

 呈现程序的出口并将其复制到3个或七个公文中

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

变量名的定义规则

一.变量名只好分包字母数字下划线,不可能以数字开始

二.不可见利用程序保留的首要字,如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般为大写,1般用于定义bash的劳作环境,如PATH,HISTSIZE

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

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

越发变量:shell内置的有卓绝作用的变量

特殊变量如$?,再次来到上次命令执行的动静,0代表成功,一-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变量的赋值和别的编制程序语言一样,使用:

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

变量名的概念规则

一.变量名只可以分包字母数字下划线,不可能以数字开头

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代表成功,一-25伍代表失利

安装只读变量:

        declare -r name  或者 readonly name

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

只读变量不也许被另行赋值,也不支持废除,存活时间为当前shell进度的生命周期,随shell进行扫尾而终结

 

多命令执行

bash1行能够而且履行多个指令

~]# 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

尽管COMMNAD1为假,那么COMMAND2就不会进行了

若是COMMAND1为真,那么COMMAND贰必须实施

~]#COMMAND1 || COMMAND2

比方COMMAND1为假,那么COMMAND二必须执行

1经COMMAND二为真,那么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

 

逻辑运算

运算数:真(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为假,那么COMMAND二就不会进行了

比方COMMAND壹为真,那么COMMAND二必须实施

~]#COMMAND1 || COMMAND2

壹经COMMAND一为假,那么COMMAND二必须执行

若是COMMAND二为真,那么COMMAND二不会履行

举例:

看清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中也足以举行算术运算:

算术运算符:

+:加

-:减

*:乘

/:除

**:幂运算

%:取余

算术运算格式:

(壹) 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

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

[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中也能够进行算术运算:

算术运算符:

+:加

-:减

*:乘

/:除

**:幂运算

%:取余

算术运算格式:

(1) let VAOdyssey=算术运算表明式

[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

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

[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 – USE科雷傲NAME恐怕使用su -l USE智跑NAME登录shell进度

非交互式登录shell基础:

1.图形界面下打开的顶峰

二.周转脚本时打开的shell

三.su USE帕杰罗NAME实践的登录切换

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

美高梅手机版4858 24

让配置文件定义的风味立时生效的办法

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

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

~]#source  /PATH/FROM/CONFI_FILE

或者

~]# .  /PATH/FROM/CONFI_FILE

举个例子:让centos用户登录时,展现欢迎,并展现当前时间:

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

echo "Hi centos!"
echo `date`

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

美高梅手机版4858 25

 

 

立异历史:

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

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

 

bash的布署文件

当我们登录shell进度的时候,会读取bash的布局文件,bash的布署文件非为二种,profile类和bashrc类,在讲那几个后面,唯有管理员才能修改bash的配备文件,大家先来询问一下上边二种登录类型:

交互式登录shell进程:

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

二.用到su命令,su – USECR-VNAME恐怕使用su -l USE福睿斯NAME登录shell进程

非交互式登录shell基础:

一.图形界面下打开的终点

二.运作脚本时打开的shell

三.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进度有效

美高梅手机版4858 26

让配置文件定义的特征登时生效的点子

一.经过命令行重复定义3遍

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

~]#source  /PATH/FROM/CONFI_FILE

或者

~]# .  /PATH/FROM/CONFI_FILE

举个例证:让centos用户登录时,展现欢迎,并出示当今天子:

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

echo "Hi centos!"
echo `date`

当用户登录时就会议及展览示效果:

美高梅手机版4858 27

 

 

履新历史:

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

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

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有