LINUX教程,linux 基礎 --04-07

 2023-12-01 阅读 38 评论 0

摘要:~~~ # day04@[toc] ### 1. 文件管理概述```bash創建 復制 移動 刪除 查看 編輯 壓縮 2. 系統的目錄結構 WindowsD:\Linux脫產10期視頻\基礎階段 反斜線 Linux 所有的文件或者目錄的起點或者頂點都是以根開始的 / 斜線Linux的目錄結構就像是一個倒掛的樹形結構
~~~
# day04@[toc]
### 1. 文件管理概述```bash創建  復制  移動  刪除  查看  編輯  壓縮 

2. 系統的目錄結構

WindowsD:\Linux脫產10期視頻\基礎階段     反斜線  Linux   所有的文件或者目錄的起點或者頂點都是以根開始的   /  斜線Linux的目錄結構就像是一個倒掛的樹形結構  必知必會的目錄及文件  [root@qls ~]# ls -1  /軟連接文件/bin		#存放系統命令的目錄    普通用戶可以執行的命令 /sbin		#存放系統命令的目錄    需要管理員權限才可以執行的命令/lib		#庫文件目錄   32位庫文件 /lib64		#庫文件目錄   64位庫文件====/usr/bin/usr/sbin/usr/lib/usr/lib64/boot		#系統引導目錄    存放的是系統內核和grub的配置 /dev		#系統設備目錄/dev/cdrom -> sr0		#光盤鏡像/dev/null				#黑洞設備  將一些不用的數據導入到黑洞設備  /dev/zero				#字符設備  源源不斷的產生數據 字符 /dev/random				#產生隨機數的設備 /dev/stderr -> /proc/self/fd/2		#錯誤輸出   2>/dev/stdin -> /proc/self/fd/0		#標準輸入 	</dev/stdout -> /proc/self/fd/1		#標準輸出 	>/dev/pts/				#存放的是虛擬終端信息  #磁盤設備及分區  /dev/sda/dev/sda1      //dev/sda2/dev/sda3    /boot/etc		#系統的主配置文件存放目錄    程序配置文件存放目錄 /etc/sysconfig/network-scripts/ifcfg-*		#系統網卡配置文件/etc/hosts			#本地域名解析文件   記錄 IP地址與主機名的對應的映射關系 /etc/resolv.conf	#本地DNS配置文件 /etc/fstab			#設備掛載目錄配置文件    開機自啟動掛載列表  /etc/hostname		#主機名配置文件  /home			#普通用戶的家目錄     /home/test/media			#掛載一些可移動的設備     CD   相機/mnt			#臨時掛載目錄 /opt			#早期第三方軟件安裝目錄 /proc			#虛擬可變的目錄   記錄了系統的實時狀態 /root			#超級用戶管理員root的家目錄  /run			#進程運行時產生的一些pid文件  /srv			#物理設備所產生的一些文件/sys			#物理設備的驅動信息文件/tmp			#公共臨時目錄  公共場所     系統會定時的刪除這個目錄下長時間沒有訪問的文件/usr			#系統目錄 系統文件目錄    跟Windows目錄一樣/usr/local		#軟件安裝目錄    /var			#可變的目錄     系統日志信息  /var/log		#系統日志存放目錄 /var/log/messages		#系統級別日志/var/log/secure			#用戶登錄日志 /var/tmp			#程序運行時所產生的一些進程文件 /var/run			#程序運行時所產生的進程的pid文件目錄 

3. 路徑的定位


包含整個文件名稱及文件的位置,這樣的定位稱之為路徑 路徑就是對于文件的定位的一種方式  每個目錄下都有一個點和兩個點,都表示什么意思  .		#表示的是當前所在的目錄 ..		#當前目錄的上一級目錄  [root@qls usr]# ./local/		#當前目錄下的local目錄    ==    /usr/local[root@qls usr]# ../				#當前目錄的上一級目錄   /  根    ./			#表示當前的目錄  .			#表示當前的目錄../			#從當前目錄的上一級目錄開始 ..			#上一級目錄 什么是絕對路徑   什么又是相對路徑絕對路徑:   凡是以根開始的路徑就是絕對路徑   或者以~開頭的路徑也是絕對路徑  ~  ===  /root    ~  == /home/xxx/usr/local/ 		#絕對路徑 相對路徑:  不是以根為開頭的路徑就是相對路徑     相對路徑是針對當前目錄而言的   ./local/local/

4. 文件管理基礎命令

1. pwd			#顯示當前工作目錄的絕對路徑    告訴我,你在哪里  [root@qls usr]# pwd
/usr
[root@qls usr]# cd  local/
[root@qls local]# pwd
/usr/local2.  cd			#切換工作目錄   切換路徑 [root@qls local]# cd		#直接切換到當前用戶的家目錄  
[root@qls ~]# 
[root@qls ~]# cd  ~			#切換當前用戶的家目錄   ====   cd  /root[root@qls ~]# cd  .			#保持當前目錄不變
[root@qls ~]# cd ./			#保持當前目錄不變[root@qls ~]# cd  ..		#切換當前目錄的上一級目錄
[root@qls /]# cd
[root@qls ~]# cd ../		#切換當前目錄的上一級目錄
[root@qls /]# [root@qls usr]# cd  ./local/
[root@qls local]# pwd
/usr/local[root@qls local]# cd ../etc		#進入當前目錄的上一級目錄/usr下的etc目錄
[root@qls etc]# pwd
/usr/etc[root@qls usr]# cd   ../etc		#不同目錄下。執行的相對路徑操作,得到的結果是不同的
[root@qls etc]# pwd
/etc[root@qls etc]# cd  /		#切換到根目錄   根本身也是一個目錄 [root@qls /]# cd  -			#切換到你上一次所在的目錄     快速的到達上一次所在的路徑 
/etc
[root@qls etc]# 3. ls		#顯示文件或者目錄列表信息      打開目錄  顯示目錄里面的內容  常用選項:-l		#以長格式形式顯示文件或者目錄的詳細屬性信息  -i		#顯示文件或者目錄的inode信息   索引節點信息 -h		#以字節大小的形式顯示文件大小   B   KB   MB   GB  -a		#顯示所有的文件,隱藏文件  所有以點開頭的文件就是隱藏文件 -S	 	#以文件大小進行排序  從大到小顯示-t		#根據時間進行排序  最新的時間在最上面 -r		#倒敘排序  -F		#給不同的文件加上不同的標識符  -d		#顯示目錄本身信息  /		#目錄 *		#可執行文件  =		#套接字文件  socker文件  |		#管道文件  [root@qls ~]# ls			#如果不加目錄信息,默認針對的是當前目錄操作 
anaconda-ks.cfg[root@qls ~]# ls   /root
anaconda-ks.cfg[root@qls ~]# ls  -l
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg===     系統自帶的別名   ll   ===  ls   -l  [root@qls ~]# ll
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg[root@qls ~]# ls -li
total 4
134317667 -rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg[root@qls ~]# ll -h 
total 4.0K
-rw-------. 1 root root 1.4K Jul  6 02:17 anaconda-ks.cfg10月24日   程序員日  [root@qls ~]# ll -a
total 28
dr-xr-x---.  2 root root  135 Jul  6 09:06 .
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ..
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc[root@qls ~]# ll -aS  
total 28
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ..
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
dr-xr-x---.  2 root root  135 Jul  6 09:06 .
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout[root@qls ~]# ll -at
total 28
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history
dr-xr-x---.  2 root root  135 Jul  6 09:06 .
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ..
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc[root@qls ~]# ll -atr
total 28
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ..
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
dr-xr-x---.  2 root root  135 Jul  6 09:06 .
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history[root@qls ~]# ll -aSr  
total 28
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc
dr-xr-x---.  2 root root  135 Jul  6 09:06 .
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ..
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg[root@qls ~]# ll -aF  
total 28
dr-xr-x---.  2 root root  135 Jul  6 09:06 ./
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ../
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc[root@qls ~]# ll  -d  /root
dr-xr-x---. 2 root root 135 Jul  6 09:06 /root[root@qls ~]# ls  /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@qls ~]# ls -1 /		#以行的形式顯示文件名稱  
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys4. tree			#以樹狀形式顯示目錄列表  [root@qls ~]# yum install  -y  tree 選項:-a		#顯示所有文件或者目錄  隱藏文件 -d		#只顯示目錄及目錄的數量 -h		#顯示文件的大小  -F		#給不同類型的文件加上不同的標識符/		#目錄 *		#可執行文件  =		#套接字文件  socker文件  |		#管道文件  -L		#根據目錄的基本顯示  [root@qls ~]# tree 
.
└── anaconda-ks.cfg0 directories, 1 file[root@qls ~]# tree  -a
.
├── anaconda-ks.cfg
├── .bash_history
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cshrc
└── .tcshrc0 directories, 7 files[root@qls ~]# tree  -d   /var/log/
/var/log/
├── anaconda
├── audit
├── rhsm
└── tuned4 directories[root@qls ~]# tree  -h   /var/log/
/var/log/
├── [ 176]  anaconda
│   ├── [ 26K]  anaconda.log
│   ├── [3.9K]  ifcfg.log
│   ├── [1.5M]  journal.log
│   ├── [   0]  ks-script-3PCKae.log
│   ├── [108K]  packaging.log
│   ├── [ 29K]  program.log
│   ├── [121K]  storage.log
│   ├── [275K]  syslog
│   └── [ 21K]  X.log[root@qls ~]# tree  -L  2  /5. mkdir		#創建目錄選項:-p		#創建多級目錄  遞歸創建   當目錄已經存在時,再次創建不會提示報錯  -v		#顯示創建的過程  -m		#創建的時候,給目錄設置一個權限  {}		#生成序列  有規律和無規律    有規律使用..分割   無規律的使用逗號分割 *		#通配符    所有的意思 在相同的路徑下,不能存在相同的文件名稱 在不同的路徑下,可以存在相同的文件名稱  [root@qls ~]# mkdir  /data		#使用絕對路徑進行創建
[root@qls ~]# mkdir  data		#使用相對路徑進行創建[root@qls ~]# ll
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 19:51 data
[root@qls ~]# ll /
total 20
lrwxrwxrwx.   1 root root    7 Jul  6 02:13 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Jul  6 02:17 boot
drwxr-xr-x.   2 root root    6 Jul  8 19:51 data[root@qls ~]# mkdir  /root/data
mkdir: cannot create directory ‘/root/data’: File existsFile exists			#文件已經存在 解決:  1. 你要創建的目錄已經存在,無需再次進行創建 2. 你要創建的目錄路徑書寫錯誤  [root@qls ~]# mkdir  -p  /root/data		[root@qls ~]# mkdir   test/oldboy
mkdir: cannot create directory ‘test/oldboy’: No such file or directory
[root@qls ~]# mkdir  -p  test/oldboy
[root@qls ~]# ll
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 19:51 data
drwxr-xr-x. 3 root root   20 Jul  8 19:57 test
[root@qls ~]# ll test/
total 0
drwxr-xr-x. 2 root root 6 Jul  8 19:57 oldboy[root@qls ~]# mkdir  oldboy
[root@qls ~]# mkdir  'oldboy '
[root@qls ~]# 
[root@qls ~]# ll
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 19:51 data
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy 
drwxr-xr-x. 3 root root   20 Jul  8 19:57 test
[root@qls ~]# ll  -F  
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 19:51 data/
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy/
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy /
drwxr-xr-x. 3 root root   20 Jul  8 19:57 test/
[root@qls ~]#  root    6 Jul  8 20:00 oldboy/[root@qls ~]# mkdir -v   data01
mkdir: created directory ‘data01’[root@qls ~]# mkdir  -m  700   data02
[root@qls ~]# ll
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 19:51 data
drwxr-xr-x. 2 root root    6 Jul  8 20:02 data01
drwx------. 2 root root    6 Jul  8 20:04 data02
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy 
drwxr-xr-x. 3 root root   20 Jul  8 19:57 test[root@qls ~]# echo {01..10}
01 02 03 04 05 06 07 08 09 10[root@qls ~]# mkdir  test/data{01..10}		#批量創建10個目錄 
[root@qls ~]# ll test/
total 0
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data01
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data02
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data03
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data04
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data05
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data06
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data07
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data08
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data09
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data10[root@qls ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@qls ~]# echo {a..g}
a b c d e f g
[root@qls ~]# echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z[root@qls ~]# mkdir  test/oldboy-{a..g}[root@qls ~]# ll  -d  test/oldboy-*
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-a
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-b
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-c
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-d
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-e
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-f
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-g[root@qls ~]# mkdir  data-{a,c,d,h}
[root@qls ~]# ll
total 4
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x.  2 root root    6 Jul  8 19:51 data
drwxr-xr-x.  2 root root    6 Jul  8 20:02 data01
drwx------.  2 root root    6 Jul  8 20:04 data02
drwxr-xr-x.  2 root root    6 Jul  8 20:12 data-a
drwxr-xr-x.  2 root root    6 Jul  8 20:12 data-c
drwxr-xr-x.  2 root root    6 Jul  8 20:12 data-d
drwxr-xr-x.  2 root root    6 Jul  8 20:12 data-h[root@qls ~]# mkdir  -p  oldboy/{01..10}/data{01..10}/test{01..10}#在Linux系統中,是區分大小寫的[root@qls ~]# mkdir  a
[root@qls ~]# mkdir  A
[root@qls ~]# ll
total 4
drwxr-xr-x.  2 root root    6 Jul  8 12:25 a
drwxr-xr-x.  2 root root    6 Jul  8 12:25 A6. touch		#創建文件   創建空文件  當文件已經存在時,創建的時候不會報錯,但是會改變文件的時間戳{}		#生成序列  有規律和無規律    有規律使用..分割   無規律的使用逗號分割 [root@qls ~]# touch  test.txt[root@qls ~]# touch  data.{txt,sh,log,xml,tar,py,js}
[root@qls ~]# ll
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.js
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.log
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.py
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.sh
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.tar
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.txt
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.xml[root@qls ~]# touch  data{01..10}.txt
[root@qls ~]# ll
-rw-r--r--.  1 root root    0 Jul  8 12:28 data01.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data02.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data03.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data04.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data05.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data06.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data07.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data08.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data09.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data10.txt

~~~bash
# day05@[toc]
### 1. cp命令```bash
復制,拷貝  語法:命令     源文件     目標目錄選項:-r		#遞歸復制   復制目錄時所使用的-p		#保持源文件屬性-d		#復制的時候保持軟連接 -a		===  -pdr-t		#把源文件的位置根目標目錄的位置進行調換   在批量拷貝文件時使用 -i		#當拷貝的文件在目標目錄已經存在時,提示是否覆蓋     系統自帶的別名 [root@qls ~]# cp  /etc/hosts  /root
[root@qls ~]# cp  /etc/passwd   ./
[root@qls ~]# cp  /etc/resolv.conf   .
[root@qls ~]# ll
total 12
-rw-r--r--. 1 root root 158 Jul  9 09:11 hosts
-rw-r--r--. 1 root root 873 Jul  9 09:11 passwd
-rw-r--r--. 1 root root  51 Jul  9 09:11 resolv.conf[root@qls ~]# cp  /opt/   ./
cp: omitting directory ‘/opt/’
[root@qls ~]# cp  -r   /opt/  ./
[root@qls ~]# ll
total 12
-rw-r--r--. 1 root root 158 Jul  9 09:11 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:14 opt
-rw-r--r--. 1 root root 873 Jul  9 09:11 passwd
-rw-r--r--. 1 root root  51 Jul  9 09:11 resolv.conf[root@qls ~]# ll  /etc/grub2.cfg 
lrwxrwxrwx. 1 root root 22 Jul  6 02:14 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
[root@qls ~]# cp  /etc/grub2.cfg  ./
[root@qls ~]# ll
total 20
-rw-r--r--. 1 root root 4229 Jul  9 09:16 grub2.cfg
-rw-r--r--. 1 root root  158 Jul  9 09:11 hosts
drwxr-xr-x. 2 root root    6 Jul  9 09:14 opt
-rw-r--r--. 1 root root  873 Jul  9 09:11 passwd
-rw-r--r--. 1 root root   51 Jul  9 09:11 resolv.conf
[root@qls ~]# rm -f grub2.cfg 
[root@qls ~]# cp  -d  /etc/grub2.cfg   ./
[root@qls ~]# ll
total 12
lrwxrwxrwx. 1 root root  22 Jul  9 09:16 grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--. 1 root root 158 Jul  9 09:11 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:14 opt
-rw-r--r--. 1 root root 873 Jul  9 09:11 passwd
-rw-r--r--. 1 root root  51 Jul  9 09:11 resolv.conf[root@qls ~]# cp  -t  ./   /etc/fstab 
[root@qls ~]# ll
total 16
lrwxrwxrwx. 1 root root   7 Jul  6 02:13 bin -> usr/bin
-rw-r--r--. 1 root root 501 Jul  9 09:21 fstab
lrwxrwxrwx. 1 root root  22 Jul  9 09:16 grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--. 1 root root 158 Jul  9 09:11 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:14 opt
-rw-r--r--. 1 root root 873 Jul  9 09:11 passwd
-rw-r--r--. 1 root root  51 Jul  9 09:11 resolv.conf[root@qls ~]# cp  /etc/hosts   ./
cp: overwrite ‘./hosts’? n[root@qls ~]# alias 
alias cp='cp -i'#強制覆蓋不提示    臨時取消別名 [root@qls ~]# \cp  /etc/hosts  ./```### 2. mv命令```bash移動和重命名文件 語法:命令     源文件    目標目錄  選項:-i		#當文件已經存在時,移動的時候,提示是否覆蓋目標文件    系統自帶別名 -f		#強制覆蓋,不提示  -t		#把源文件的位置跟目標目錄的位置進行調換 [root@qls ~]# ll  /opt/
total 12
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
-rw-r--r--. 1 root root 158 Jul  9 09:28 hosts
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf
[root@qls ~]# mv  /opt/hosts   ./
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 09:28 hosts
[root@qls ~]# ll /opt/
total 8
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf[root@qls ~]# cp -r  /mnt/   /opt/
[root@qls ~]# ll /opt/
total 8
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mnt
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf
[root@qls ~]# mv /opt/mnt/   ./		#在移動目錄的時候,不需要加任何的選項  
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 09:28 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mnt[root@qls ~]# cp  /etc/hosts  /opt/
[root@qls ~]# ll /opt/
total 12
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
-rw-r--r--. 1 root root 158 Jul  9 10:00 hosts
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 09:28 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mnt
[root@qls ~]# mv  /opt/hosts   ./		#文件已經存在時,提示是否覆蓋  
mv: overwrite ‘./hosts’? n[root@qls ~]# 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'#強制覆蓋不提示  [root@qls ~]# \mv  /opt/hosts   ./#強制覆蓋不提示 [root@qls ~]# mv  -f  /opt/hosts   ./
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:00 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mnt
[root@qls ~]# ll /opt/
total 8
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf[root@qls ~]# mv -t  /opt/   ./hosts  
[root@qls ~]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul  9 09:59 mnt
[root@qls ~]# ll /opt/
total 12
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
-rw-r--r--. 1 root root 158 Jul  9 10:00 hosts
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf#在移動文件或者目錄的過程中,修改了名稱  [root@qls ~]# mv  mnt/   mot
[root@qls ~]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul  9 09:59 mot
[root@qls ~]# mv  /opt/hosts   ./host
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:00 host
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mot```### 3. rename命令了解```bash
利用替換字符串的方式進行重命名 [root@qls ~]# rename   test   oldboy   test.txt 
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:00 host
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mot
-rw-r--r--. 1 root root   0 Jul  9 10:08 oldboy.txt```### 4. rm命令```bash
命令特別的危險  選項:-i    #在刪除文件的時候,提示你是否確認刪除    系統別名 -f	 #強制刪除不提示  -r	 #刪除目錄使用  遞歸刪除  [root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:00 host
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mot
-rw-r--r--. 1 root root   0 Jul  9 10:08 oldboy.txt
[root@qls ~]# rm  host 
rm: remove regular file ‘host’? n
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:00 host
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mot
-rw-r--r--. 1 root root   0 Jul  9 10:08 oldboy.txt
[root@qls ~]# 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'[root@qls ~]# rm  -f   host 
[root@qls ~]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul  9 09:59 mot
-rw-r--r--. 1 root root 0 Jul  9 10:08 oldboy.txt[root@qls ~]# rm -f  mot/
rm: cannot remove ‘mot/’: Is a directory[root@qls ~]# rm  -rf  mot/
[root@qls ~]# ll
total 0
-rw-r--r--. 1 root root 0 Jul  9 10:08 oldboy.txt[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:31 hosts
-rw-r--r--. 1 root root   0 Jul  9 10:08 oldboy.txt[root@qls ~]# rm -rf  ./*		#刪除目錄下的所有   排除 隱藏文件 ```### 5. echo命令```bash#打印你所要輸出的內容    打印變量的值   創建新文件   修改文件    輸出加上顏色      腳本中使用的多 選項:-n		#不自動換行 -e		#支持一些特殊字符的使用 \n	#換行符 \t	#tab鍵 [root@qls ~]# echo  hello  world
hello world
[root@qls ~]# echo -n   hello  world
hello world[root@qls ~]# #定義和打印變量 [root@qls ~]# Name=qls
[root@qls ~]# Name
-bash: Name: command not found
[root@qls ~]# echo  $Name
qls[root@qls ~]# echo $PWD
/root
[root@qls ~]# cd /opt/
[root@qls opt]# echo $PWD
/opt#創建新文件   >   #標準輸出重定向    如果文件不存在,會自動創建,如果文件存在,會首先把文件的內容清空,然后再把你要輸出的內容重定向進去  [root@qls ~]# echo  1  > test.txt
[root@qls ~]# ll
total 8
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
-rw-r--r--. 1 root root    2 Jul  9 10:56 test.txt
[root@qls ~]# cat test.txt 
1[root@qls ~]# echo  2  > test.txt 
[root@qls ~]# cat test.txt 
2>> 		#標準輸出追加重定向  如果文件不存在,會自動創建,如果文件存在,會把你要輸出的內容追加到文件的底部[root@qls ~]# echo  3  >> test.txt 
[root@qls ~]# cat test.txt 
2
3[root@qls ~]# echo -e "hello\nworld"
hello
world[root@qls ~]# echo  -e  "1\n2\n3"
1
2
3
[root@qls ~]# echo  -e  "1\n2\n3" > oldboy.txt
[root@qls ~]# cat oldboy.txt
1
2
3字顏色:30—–37echo -e "\033[30m 黑色字 \033[0m"echo -e "\033[31m 紅色字 \033[0m"echo -e "\033[32m 綠色字 \033[0m"echo -e "\033[33m 黃色字 \033[0m"echo -e "\033[34m 藍色字 \033[0m" echo -e "\033[35m 紫色字 \033[0m" echo -e "\033[36m 天藍字 \033[0m" echo -e "\033[37m 白色字 \033[0m" 字背景顏色范圍:40—–47echo -e "\033[40;37m 黑底白字 \033[0m"echo -e "\033[41;37m 紅底白字 \033[0m" echo -e "\033[42;37m 綠底白字 \033[0m" echo -e "\033[43;37m 黃底白字 \033[0m" echo -e "\033[44;37m 藍底白字 \033[0m" echo -e "\033[45;37m 紫底白字 \033[0m" echo -e "\033[46;37m 天藍底白字 \033[0m" echo -e "\033[47;30m 白底黑字 \033[0m"```### 6. cat命令```bash
#顯示文件內容  把文件內容全部顯示出來     創建新文件  修改文件    合并文件  選項:-n		#顯示文件時,顯示文件的行號   -A		#給顯示的文件內容的每行結尾加上一個標識符  [root@qls ~]# cat 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[root@qls ~]# cat  -n  passwd1	root:x:0:0:root:/root:/bin/bash2	bin:x:1:1:bin:/bin:/sbin/nologin3	daemon:x:2:2:daemon:/sbin:/sbin/nologin4	adm:x:3:4:adm:/var/adm:/sbin/nologin5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin6	sync:x:5:0:sync:/sbin:/bin/sync7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown[root@qls ~]# cat -A  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$[root@qls ~]# echo  "123456 "  >> pass.txt
[root@qls ~]# cat pass.txt
123456 
[root@qls ~]# cat -A pass.txt
123456 $[root@qls ~]# hostname -I
10.0.0.100 
[root@qls ~]# hostname -I | cat -A
10.0.0.100 $#   <<    標識符限定輸入重定向        命令從標準輸入中輸入,直到遇到標識符的分解符結束 [root@qls ~]# cat >123.txt<<EOF
> 123
> 456
> 789
> EOF
[root@qls ~]# cat 123.txt 
123
456
789[root@qls ~]# cat >>123.txt<<oldboy
> 000
> oldboy
[root@qls ~]# cat 123.txt 
123
456
789
000cat >456.txt<<EOF
123
456
789
EOF#將多個文件合并為一個文件 [root@qls ~]# cat pass.txt 
123456 
[root@qls ~]# cat test.txt 
2
3
[root@qls ~]# cat pass.txt  test.txt   
123456 
2
3
[root@qls ~]# cat pass.txt  test.txt    > new.txt
[root@qls ~]# cat new.txt
123456 
2
3[root@qls ~]# cp  /etc/services   ./```### 7. more命令```bash#分頁顯示文件內容    文件顯示完成之后,會自動退出  選項:-num		#num是數字    指定一頁顯示多少行 +num		#num是數字    指定從第幾行開始顯示文件內容 空格或者f鍵  		 #向下翻頁b鍵					#向上翻頁回車					#向下一行  h					#幫助信息 q					#退出  /xxx				#搜索你要搜索的內容    搜索出來的內容不會高亮顯示 n			#向下查找   不能向上查找 =					#顯示當前光標所在的行號 [root@qls ~]# more  services [root@qls ~]# more -1  services 
# /etc/services:
--More--(0%)[root@qls ~]# more  +5  services
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known```### 8. less命令```bash
#分頁顯示文件內容     文件顯示完成之后,不會自動退出 選項:-N			#顯示文件內容的時候,加上行號  -i			#在搜索的時候,忽略大小寫  空格或者f鍵		#向下翻頁 b鍵				#向上翻頁 回車				#向下一行 q				#退出h				#顯示幫助 /xxxx			#搜索指定的內容    會把搜索出來的內容高亮顯示  n			#向下查找 N			#向上查找 =				#顯示當前頁的內容是由哪些行組成的  顯示總行數 顯示文件從開頭到當前行總共顯示了多少字節內容   總字節大小[root@qls ~]# less -N  services[root@qls ~]# less -i  services
# day06@[toc]
### 1. head命令```bash#顯示文件的頭部信息,默認顯示文件的前十行內容 選項:-n		#取消默認輸出-c		#顯示文件的最前面的字符  [root@qls ~]# head 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[root@qls ~]# head  -n 2  passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin===[root@qls ~]# head  -2  passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin[root@qls ~]# head  -20  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
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin[root@qls ~]# head  -c5  passwd 
root:[root@qls ~]# ```### 2. tail命令```#顯示文件的尾部信息,默認顯示文件最后10行 選項:-n		#取消默認輸出-c		#顯示最后幾個字符 -f		#實時顯示文件的尾部變化信息  -F		#實時更新文件的內容,當文件不存在,不會退出,會一直嘗試讀取這個文件,直到文件存在 [root@qls ~]# tail  passwd
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin[root@qls ~]# tail  -n 1  passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin===[root@qls ~]# tail  -1  passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin[root@qls ~]# tail  -c5  passwd 			#顯示最后5個字符,只能看見4個,另外一個是換行符 
ogin
[root@qls ~]# [root@qls ~]# tail -f  passwd 
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologinhello#另外一個窗口進行測試  
[root@qls ~]# echo 'hello'  >> passwd[root@qls ~]# tail  -f  test.log
tail: cannot open ‘test.log’ for reading: No such file or directory
tail: no files remaining
[root@qls ~]# tail  -F  test.log
tail: cannot open ‘test.log’ for reading: No such file or directorytail: ‘test.log’ has appeared;  following end of new file
test```### 3. tailf命令```bash
#實時更新文件的內容  tailf    ====    tail   -f當文件內容沒有發生變化時,tailf不會去讀取磁盤中的信息,減少磁盤的讀寫 ,tail  -f  當文件內容沒有發生變化時,會一直向磁盤進行讀取選項:  -n			#取消默認輸出 ```### 4. locate命令```bash
#根據本地的數據庫進行查找文件,不會查找到最新的文件  [root@qls ~]# yum  install  -y  mlocate選項:-i		#不區分大小寫  -r		#簡單使用正則表達式   $  結尾  /var/lib/mlocate/mlocate.db[root@qls ~]# updatedb			#更新數據庫  #把系統中所有文件名稱包含passwd的文件全部查找出來 [root@qls ~]# locate  passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/root/passwd
/usr/bin/gpasswd
/usr/bin/grub2-mkpasswd-pbkdf2
/usr/bin/passwd
/usr/lib/firewalld/services/kpasswd.xml[root@qls ~]# locate    hostnamectl
/usr/bin/hostnamectl
/usr/share/bash-completion/completions/hostnamectl
/usr/share/man/man1/hostnamectl.1.gz
/usr/share/zsh/site-functions/_hostnamectl[root@qls ~]# touch  hostnamectl[root@qls ~]# updatedb	[root@qls ~]# locate    hostnamectl
/root/hostnamectl
/usr/bin/hostnamectl
/usr/share/bash-completion/completions/hostnamectl
/usr/share/man/man1/hostnamectl.1.gz
/usr/share/zsh/site-functions/_hostnamectl[root@qls ~]# updatedb 
[root@qls ~]# locate    hostnamectl
/root/hostnamectl
/usr/bin/hostnamectl
/usr/share/bash-completion/completions/hostnamectl
/usr/share/man/man1/hostnamectl.1.gz
/usr/share/zsh/site-functions/_hostnamectl
[root@qls ~]# locate  -i  hostnamectl
/opt/HOSTNAMEctl
/root/hostnamectl
/usr/bin/hostnamectl
/usr/share/bash-completion/completions/hostnamectl
/usr/share/man/man1/hostnamectl.1.gz
/usr/share/zsh/site-functions/_hostnamectl[root@qls ~]# locate  -r  hostname$
/etc/hostname
/etc/selinux/targeted/active/modules/100/hostname
/usr/bin/hostname
/usr/bin/nmtui-hostname
/usr/lib64/gettext/hostname```### 5. which命令```bash
#查找命令的絕對路徑  [root@qls ~]# which  ping
/usr/bin/ping#查找命令的絕對路徑時,是通過PATH環境變量中的路徑進行查找  
[root@qls ~]# echo  $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin#不使用which的別名進行查找命令的絕對路徑 [root@qls ~]# \which   cp
/usr/bin/cp[root@qls ~]# rpm -qf  `which  ping`
iputils-20160308-10.el7.x86_64[root@qls ~]# rpm  -qf  /usr/bin/ping
iputils-20160308-10.el7.x86_64```### 6. whereis命令```bash
#查找系統二進制程序、man幫助文件、源代碼文件     查找不到自己創建的文件  選項:-b		#只查找二進制程序文件-m		#查找man幫助文件 -s		#查找源代碼文件  [root@qls ~]# whereis   ping
ping: /usr/bin/ping /usr/share/man/man8/ping.8.gz[root@qls ~]# whereis -b  ping
ping: /usr/bin/ping
[root@qls ~]# whereis -m  ping
ping: /usr/share/man/man8/ping.8.gz```### 7. type命令```bash
#顯示命令的類型  選項:-a		#顯示內置命令的絕對路徑  -p		#只顯示命令的絕對路徑help命令可以顯示系統中所有的內置命令 [root@qls ~]# type  ping
ping is /usr/bin/ping[root@qls ~]# type  cd
cd is a shell builtin[root@qls ~]# type  -a  cd
cd is a shell builtin
cd is /usr/bin/cd[root@qls ~]# type  -p  ping
/usr/bin/ping[root@qls ~]# type  -ap  cd
/usr/bin/cd```### 8. find命令```bash
#查找和搜索文件  選項:-type		#根據文件類型進行查找f		#普通文件d		#目錄l		#軟連接文件 s		#socket文件  套接字文件  p		#管道文件 -name		#根據名稱進行查找  -iname		#查找的時候忽略大小寫  語法:選項,條件            干什么  命令      地區        類型     名稱       動作     默認動作就是打印 #在/etc目錄下進行查找      查找類型為普通文件    名稱為  hostname   精確查找  
[root@qls ~]# find  /etc  -type  f   -name  "hostname"  
/etc/hostname[root@qls ~]# touch  /opt/hostname{,ctl}
[root@qls ~]# ll /opt/
total 0
-rw-r--r--. 1 root root 0 Jul 10 10:32 hostname
-rw-r--r--. 1 root root 0 Jul 10 10:32 hostnamectl
[root@qls ~]# touch  /opt/test_hostname
[root@qls ~]# touch  /opt/test_hostname.txt
[root@qls ~]# ll /opt/
total 0
-rw-r--r--. 1 root root 0 Jul 10 10:32 hostname
-rw-r--r--. 1 root root 0 Jul 10 10:32 hostnamectl
-rw-r--r--. 1 root root 0 Jul 10 10:32 test_hostname
-rw-r--r--. 1 root root 0 Jul 10 10:33 test_hostname.txt
[root@qls ~]# find  /opt/  -type  f  -name "hostname"
/opt/hostname#查找以hostname開頭的文件[root@qls ~]# find  /opt/    -name  "hostname*"
/opt/hostname
/opt/hostnamectl#查找以hostname為結尾的文件  [root@qls ~]# find   /opt/  -name  "*hostname"
/opt/hostname
/opt/test_hostname#查找文件名稱包含hostname的文件 [root@qls ~]# find  /opt/  -name "*hostname*"
/opt/hostname
/opt/hostnamectl
/opt/test_hostname
/opt/test_hostname.txt#查找所有文件,包括隱藏文件  [root@qls ~]# touch   /opt/.hostname.log
[root@qls ~]# find  /opt/  -name "*hostname*"
/opt/hostname
/opt/hostnamectl
/opt/test_hostname
/opt/test_hostname.txt
/opt/.hostname.log[root@qls ~]# find  /opt/  -type d -iname "*hostname*"
/opt/HOSTNAMECTL```### 9. rz命令 ```bash
#將本地的文件上傳到Linux操作系統     #不能上傳目錄,需要將目錄打成一個壓縮包進行上傳     只能上傳 4G以下的文件  [root@qls ~]# yum  install  lrzsz   -y選項:-E		#當上傳的文件已經存在時,系統會進行重命名   會在原來的文件名稱后面加上.數字  從0開始 #執行命令,會跳出一個Windows界面的窗口,選擇你要上傳的文件  [root@qls ~]# rz[root@qls ~]# ll
total 16
-rw-r--r--. 1 root root 13140 Jul  7 12:23 day03.md[root@qls ~]# rz  -E[root@qls ~]# ll
total 32
-rw-r--r--. 1 root root 13140 Jul  7 12:23 day03.md
-rw-r--r--. 1 root root 13140 Jul  7 12:23 day03.md.0```### 10. sz命令```bash
#將Linux系統的文件下載到本地 [root@qls ~]# sz  /etc/hosts```### 11. wget命令```bash
[root@qls ~]# yum  install  -y  wget #聯網下載軟件包  選項:  -O		#指定下載的路徑和名稱  -q		#靜默輸出  --limit-rate=10k		#限制下載的速率     k  ===KB    m  == MB[root@qls ~]# wget  http://www.baidu.com
--2020-07-10 11:57:50--  http://www.baidu.com/
Resolving www.baidu.com (www.baidu.com)... 112.80.248.75, 112.80.248.76
Connecting to www.baidu.com (www.baidu.com)|112.80.248.75|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2381 (2.3K) [text/html]
Saving to: ‘index.html’100%[===============================================================================>] 2,381       --.-K/s   in 0.008s  2020-07-10 11:57:51 (290 KB/s) - ‘index.html’ saved [2381/2381][root@qls ~]# wget   http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-07-10 12:00:16--  http://nginx.org/download/nginx-1.18.0.tar.gz
Resolving nginx.org (nginx.org)... 95.211.80.227, 62.210.92.35, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|95.211.80.227|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1039530 (1015K) [application/octet-stream]
Saving to: ‘nginx-1.18.0.tar.gz’100%[===============================================================================>] 1,039,530    282KB/s   in 3.6s   2020-07-10 12:00:20 (282 KB/s) - ‘nginx-1.18.0.tar.gz’ saved [1039530/1039530][root@qls ~]# ll
total 1020
-rw-r--r--. 1 root root    2381 Jul 10 11:57 index.html
-rw-r--r--. 1 root root 1039530 Apr 21 22:33 nginx-1.18.0.tar.gz[root@qls ~]# wget  -O  /opt/nginx.tar.gz  http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-07-10 12:01:41--  http://nginx.org/download/nginx-1.18.0.tar.gz
Resolving nginx.org (nginx.org)... 62.210.92.35, 95.211.80.227, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|62.210.92.35|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1039530 (1015K) [application/octet-stream]
Saving to: ‘/opt/nginx.tar.gz’100%[===============================================================================>] 1,039,530    272KB/s   in 3.7s   2020-07-10 12:01:46 (272 KB/s) - ‘/opt/nginx.tar.gz’ saved [1039530/1039530][root@qls ~]# ll /opt/
total 1016
-rw-r--r--. 1 root root       0 Jul 10 10:32 hostname
-rw-r--r--. 1 root root       0 Jul 10 10:32 hostnamectl
drwxr-xr-x. 2 root root       6 Jul 10 10:39 HOSTNAMECTL
-rw-r--r--. 1 root root 1039530 Apr 21 22:33 nginx.tar.gz[root@qls ~]# wget  -q  http://nginx.org/download/nginx-1.19.1.tar.gz
[root@qls ~]# ll
total 2100
-rw-r--r--. 1 root root   41240 Mar 23 00:20 032220_1620_Zabbix1.png
-rw-r--r--. 1 root root    9810 Jul  8 00:06 download.html
-rw-r--r--. 1 root root    2381 Jul 10 11:57 index.html
-rw-r--r--. 1 root root 1039530 Apr 21 22:33 nginx-1.18.0.tar.gz
-rw-r--r--. 1 root root 1047223 Jul  7 23:59 nginx-1.19.1.tar.gz[root@qls ~]# wget   --limit-rate=10k   http://nginx.org/download/nginx-1.18.0.tar.gz ^C
[root@qls ~]# rm -rf ./*
[root@qls ~]# wget   --limit-rate=10k   http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-07-10 12:11:13--  http://nginx.org/download/nginx-1.18.0.tar.gz
Resolving nginx.org (nginx.org)... 62.210.92.35, 95.211.80.227, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|62.210.92.35|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1039530 (1015K) [application/octet-stream]
Saving to: ‘nginx-1.18.0.tar.gz’32% [========================>                                                       ] 335,872     10.0KB/s  eta 70s   ```### 12. curl命令```bash
#通過url規則進行文件傳輸工具  #測試網站使用的命令  選項:-o			#將訪問的數據內容寫入到指定的文件中 -s			#靜默輸出  [root@qls ~]# curl  -o  ./baidu.html    www.baidu.com% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100  2381  100  2381    0     0    311      0  0:00:07  0:00:07 --:--:--   657
[root@qls ~]# ll
total 1356
-rw-r--r--. 1 root root    2381 Jul 10 12:15 baidu.html[root@qls ~]# curl  -s   -o   ./nginx.tar.gz    http://nginx.org/download/nginx-1.18.0.tar.gz```
# day07@[toc]
### 1. sort命令```
#排序  將不相同的行進行排序在一起     默認是根據第一列進行排序  默認是以空白字符為分割符  默認以字母進行排序選項:-k		#指定哪一列為分隔符  -n		#以數值大小的方式進行排序 -r		#倒敘排序  -t		#指定分割符  cat>sort.txt<<EOF
b   5
c   3
a   11
f   2
d   9
EOF[root@qls ~]# cat sort.txt 
b   5
c   3
a   11
f   2
d   9
[root@qls ~]# sort sort.txt 
a   11
b   5
c   3
d   9
f   2[root@qls ~]# sort  -k2   sort.txt 
a   11
f   2
c   3
b   5
d   9
[root@qls ~]# sort  -nk2   sort.txt 
f   2
c   3
b   5
d   9
a   11[root@qls ~]# sort  -rnk2  sort.txt 
a   11
d   9
b   5
c   3
f   2[root@qls ~]# cp  /etc/passwd  ./
[root@qls ~]# cat 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
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin[root@qls ~]# sort  -t ":"  -nk3  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
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologincat>file.txt<<EOF
123
abc
123
edf
456
123
abc
EOF[root@qls ~]# cat file.txt 
123
abc
123
edf
456
123
abc[root@qls ~]# sort  file.txt 
123
123
123
456
abc
abc
edf```### 2. uniq命令```bash
#去重   去除重復的行   只能去除相同相鄰的行     統計   將重復的行的次數統計出來    跟sort結合使用  |		#管道   將前面命令的執行結果交給后面的命令繼續執行   操作的是數據  選項:-c		#統計重復的行的次數 [root@qls ~]# sort  file.txt 
123
123
123
456
abc
abc
edf[root@qls ~]# sort  file.txt | uniq  
123
456
abc
edf[root@qls ~]# sort  file.txt | uniq  -c3 1231 4562 abc1 edf[root@qls ~]# sort  file.txt | uniq  -c | sort  1 4561 edf2 abc3 123
[root@qls ~]# sort  file.txt | uniq  -c | sort  -n1 4561 edf2 abc3 123
[root@qls ~]# sort  file.txt | uniq  -c | sort  -rn3 1232 abc1 edf1 456```### 3. cut命令```bash
#取列      awk命令的小弟    默認的分隔符為tab鍵 選項:-d		#指定分隔符 -f		#取出指定的列 -c		#取出指定的字符  按照行進行處理的  [root@qls ~]# echo "root:x:0:0:root:/root:/bin/bash" >test.txt
[root@qls ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash#取出第七列
[root@qls ~]# cut  -d ":"  -f7   test.txt 
/bin/bash#取出第一列和第七列
[root@qls ~]# cut  -d ":"  -f1,7   test.txt 
root:/bin/bash#取出第五列到第七列
[root@qls ~]# cut  -d ":"  -f5-7   test.txt 
root:/root:/bin/bash[root@qls ~]# cut  -d  ":"  -f7   passwd 
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/bin/sync
/sbin/shutdown
/sbin/halt
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort  
/bin/bash
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/shutdown
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq 
/bin/bash
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/shutdown
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq  -c1 /bin/bash1 /bin/sync1 /sbin/halt14 /sbin/nologin1 /sbin/shutdown
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq  -c | sort -n1 /bin/bash1 /bin/sync1 /sbin/halt1 /sbin/shutdown14 /sbin/nologin
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq  -c | sort -rn14 /sbin/nologin1 /sbin/shutdown1 /sbin/halt1 /bin/sync1 /bin/bash[root@qls ~]# cat test.txt 
root:x:0:0:root:/root:/bin/bash
[root@qls ~]# cut  -c 6  test.txt 
x
[root@qls ~]# cut  -c 6  passwd 
x
:
n
:
4
x
o
x
x
t
#取出不同的字符 
[root@qls ~]# cut  -c 6,8  test.txt 
x0#取出連續的字符  
[root@qls ~]# cut  -c 1-4  test.txt 
root#取出系統eth0的IP地址[root@qls ~]# yum install  -y  net-tools[root@qls ~]# ifconfig  eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255inet6 fe80::3310:9d15:9ee4:43e8  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:eb:ea:8d  txqueuelen 1000  (Ethernet)RX packets 1634  bytes 464970 (454.0 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 1033  bytes 114568 (111.8 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@qls ~]# ifconfig  eth0 | head  -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
[root@qls ~]# ifconfig  eth0 | head  -2 | tail  -1 inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
[root@qls ~]# ifconfig  eth0 | head  -2 | tail  -1  | cut  -d " "  -f10
10.0.0.100[root@qls ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ffinet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 fe80::3310:9d15:9ee4:43e8/64 scope link noprefixroute valid_lft forever preferred_lft forever
[root@qls ~]# ip a s eth0  | head  -3
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ffinet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0  | head  -3 | tail  -1inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0  | head  -3 | tail  -1 | cut -c 10-19
10.0.0.100[root@qls ~]# ip a s eth0  | head  -3 | tail  -1inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0  | head  -3 | tail  -1 | cut  -d " "  -f6
10.0.0.100/24
[root@qls ~]# ip a s eth0  | head  -3 | tail  -1 | cut  -d " "  -f6 | cut -d "/"  -f1
10.0.0.100```### 4. tr命令```bash#替換  刪除   sed的小弟     只能單對單的替換 選項:-d		#刪除指定的字符語法:tr   old   new   <   file  <		#標準輸入重定向 [root@qls ~]# cat test.txt 
root:x:0:0:root:/root:/bin/bash[root@qls ~]# tr  "0"  "9"  < test.txt 
root:x:9:9:root:/root:/bin/bash[root@qls ~]# tr  -d  "o"  <  test.txt 
rt:x:0:0:rt:/rt:/bin/bash
[root@qls ~]# [root@qls ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ffinet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 fe80::3310:9d15:9ee4:43e8/64 scope link noprefixroute valid_lft forever preferred_lft forever
[root@qls ~]# ip a s eth0 | head -3 | tail -1inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0 | head -3 | tail -1 | tr  '/'  ' 'inet 10.0.0.100 24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0 | head -3 | tail -1 | tr  '/'  ' ' | cut  -d " "  -f6
10.0.0.100```### 5. wc命令```bash
#統計    行數  字節數  列數   行的長度  選項:-l		#統計行數 -w		#統計列數,默認以空白字符為分隔符 -c		#統計字節數 -L		#統計文件中最長的行的長度[root@qls ~]# wc  passwd 18  26 798 passwd
[root@qls ~]# wc -l  passwd 
18 passwd
[root@qls ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@qls ~]# wc  /etc/hosts2  10 158 /etc/hosts
[root@qls ~]# wc -w  /etc/hosts
10 /etc/hosts
[root@qls ~]# ll passwd 
-rw-r--r--. 1 root root 798 Jul 13 16:49 passwd
[root@qls ~]# ll /etc/hosts
-rw-r--r--. 1 root root 158 Jun  7  2013 /etc/hosts
[root@qls ~]# wc -c  /etc/hosts
158 /etc/hosts
[root@qls ~]# wc -c  passwd 
798 passwd
[root@qls ~]# [root@qls ~]# wc -L  passwd
68 passwd
[root@qls ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@qls ~]# wc -L  /etc/hosts
78 /etc/hosts[root@qls ~]# name=ewuighrtuighwiorteugh
[root@qls ~]# echo $name
ewuighrtuighwiorteugh
[root@qls ~]# echo $name | wc -L
21```### 6. grep命令```bash
#過濾    給過濾出來的內容加上顏色    按照行進行處理的  [root@qls ~]# 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'#選項:-n		#顯示出過濾出來的所在文件的行號-v		#排除,取反-c		#統計過濾出來的內容的總行數 -i		#過濾的時候忽略大小寫   -o		#只顯示你要過濾的內容-w		#精確匹配  只過濾你要過濾的單詞,而不是包含這個單詞的字符串  -r		#遞歸過濾  針對目錄進行操作  -A		#顯示出你要過濾的內容及向下多少行的內容 -B		#顯示出你要過濾的內容及向上多少行的內容 -C		#顯示出你要過濾的內容向上向下各多少行 ^		#以什么開頭$		#以什么為結尾|		# 或者    擴展正則   -E		#支持擴展正則   ====  egrep.		#任意一個字符  排除換行符  *		#前面的字符出現0次或者0次以上  .*		#所有  [root@qls ~]# grep  'root'  passwd 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin[root@qls ~]# grep  -n  'root'  passwd 
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin[root@qls ~]# grep  -v  'root'  passwd 
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
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin[root@qls ~]# grep 'root'  passwd 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@qls ~]# grep  -c  'root'  passwd 
2[root@qls ~]# echo "ROOT"  >> passwd 
[root@qls ~]# grep  "root"  passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@qls ~]# grep -i  "root"  passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ROOT[root@qls ~]# grep  -o  'root'  passwd 
root
root
root
root[root@qls ~]# echo  "roottttt"  >>passwd 
[root@qls ~]# grep  'root'  passwd 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
roottttt
[root@qls ~]# grep  -w  'root'  passwd 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin[root@qls ~]# ifconfig  eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255inet6 fe80::3310:9d15:9ee4:43e8  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:eb:ea:8d  txqueuelen 1000  (Ethernet)RX packets 3778  bytes 648285 (633.0 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 2329  bytes 260396 (254.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@qls ~]# ifconfig  eth0 | grep  inetinet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255inet6 fe80::3310:9d15:9ee4:43e8  prefixlen 64  scopeid 0x20<link>
[root@qls ~]# ifconfig  eth0 | grep -w  inetinet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
[root@qls ~]# #針對一個目錄進行操作 [root@qls ~]# grep  -r  'root'  ./
./passwd:root:x:0:0:root:/root:/bin/bash
./passwd:operator:x:11:0:operator:/root:/sbin/nologin
./passwd:roottttt
./test.txt:root:x:0:0:root:/root:/bin/bash
./data/test.txt:root
./test/test.txt:root
./backup/test.txt:root[root@qls ~]# grep  -R  'root'  ./
./passwd:root:x:0:0:root:/root:/bin/bash
./passwd:operator:x:11:0:operator:/root:/sbin/nologin
./passwd:roottttt
./test.txt:root:x:0:0:root:/root:/bin/bash
./data/test.txt:root
./test/test.txt:root
./backup/test.txt:root[root@qls ~]# grep  -A 4  'sync'  passwd 
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[root@qls ~]# grep  -B 4  'sync'  passwd 
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[root@qls ~]# grep  -C 4  'sync'  passwd 
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[root@qls ~]# grep  'root'  passwd 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
roottttt
[root@qls ~]# grep  '^root'  passwd 
root:x:0:0:root:/root:/bin/bash
roottttt
[root@qls ~]# grep  't$'  passwd 
halt:x:7:0:halt:/sbin:/sbin/halt
roottttt
[root@qls ~]# grep  'adm|mail'  passwd 
[root@qls ~]# grep -E  'adm|mail'  passwd 
adm:x:3:4:adm:/var/adm:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
[root@qls ~]# egrep  'adm|mail'  passwd 
adm:x:3:4:adm:/var/adm:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin#取出文件中的第5行到第15行 [root@qls ~]# head  -15  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
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
[root@qls ~]# head  -15  passwd  | tail  -11
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
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin[root@qls ~]# grep  'r*'  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
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ROOT
roottttt[root@qls ~]# grep  -n  '.*'  passwd 
1:root:x:0:0:root:/root:/bin/bash
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
11:games:x:12:100:games:/usr/games:/sbin/nologin
12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13:nobody:x:99:99:Nobody:/:/sbin/nologin
14:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15:dbus:x:81:81:System message bus:/:/sbin/nologin
16:polkitd:x:999:998:User for polkitd:/:/sbin/nologin
17:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin
19:ROOT
20:roottttt
[root@qls ~]# 
[root@qls ~]# grep  -n  '.*'  passwd  | grep  '^5'
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@qls ~]# grep  -n  '.*'  passwd  | grep -w  '^5'
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@qls ~]# grep  -n  '.*'  passwd  | grep -wA 10  '^5'
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
11:games:x:12:100:games:/usr/games:/sbin/nologin
12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13:nobody:x:99:99:Nobody:/:/sbin/nologin
14:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15:dbus:x:81:81:System message bus:/:/sbin/nologin
[root@qls ~]# [root@qls ~]# grep  -n  '.*'  passwd   | grep -Ew   '^8|^10'
8:halt:x:7:0:halt:/sbin:/sbin/halt
10:operator:x:11:0:operator:/root:/sbin/nologin```### 7. 總結```bash
1. sort   	#排序    將相同的行排序在一起    指定某一列繼續排序   默認以第一列進行排序 選項:-t		#指定分隔符  默認分隔符為空白字符  -k		#指定以哪一列進行排序 -n		#以數值大小進行排序 -r		#倒敘排序 2. uniq		#去重  統計   把相鄰相同的行進行去重   統計重復的次數 選項:-c		#統計重復的次數 3.cut		#取列    選項:-d		#指定分隔符  ,m默認分隔符為tab鍵 -f		#取出指定的列,取出不連續的列使用逗號分割,取出連續的列使用短橫杠進行分割 -c		#取出你指定的字符 取出不連續的列使用逗號分割,取出連續的列使用短橫杠進行分割 取出的每一行4. tr		#替換和刪除的命令   只能單對單的進行替換 選項:-d		#刪除指定的字符 語法:tr   舊的字符    新的字符   <  文件名 5. wc		#統計選項:-l		#統計行數  -w		#統計列數  默認以空白字符為分隔符-c		#統計字節的大小  -L		#統計文件中最長的行的長度  字符的數量6. grep		#過濾  給過濾出來的內容加上顏色 選項:-n		#給過濾出來的內容顯示所在文件的行號 -v		#排除,取反 -i		#過濾的時候,忽略大小寫 -c		#統計過濾出來的內容的行數  -o		#只顯示過濾出來的內容 -w		#精確匹配,之過濾你要過濾的字符串,而不是包含這個字符串的字符串 -r		#遞歸過濾   針對目錄進行操作 -E		#支持擴展正則使用  -A		#顯示過濾出來的內容及向下多少行 -B		#顯示過濾出來的內容及向上多少行 -C		#顯示過濾出來的內容向上向下各多少行^		#以什么為開頭$		#以什么為結尾 |		#或者   擴展正則 .		#除換行符以外的任意一個字符 *		#匹配前面的字符出現0次或者0次以上 .*		#所有  包括空行 ```

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/188976.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息