~~~
# day04@[toc]
### 1. 文件管理概述```bash創建 復制 移動 刪除 查看 編輯 壓縮
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文件目錄
包含整個文件名稱及文件的位置,這樣的定位稱之為路徑 路徑就是對于文件的定位的一種方式 每個目錄下都有一個點和兩個點,都表示什么意思 . #表示的是當前所在的目錄 .. #當前目錄的上一級目錄 [root@qls usr]# ./local/ #當前目錄下的local目錄 == /usr/local[root@qls usr]# ../ #當前目錄的上一級目錄 / 根 ./ #表示當前的目錄 . #表示當前的目錄../ #從當前目錄的上一級目錄開始 .. #上一級目錄 什么是絕對路徑 什么又是相對路徑絕對路徑: 凡是以根開始的路徑就是絕對路徑 或者以~開頭的路徑也是絕對路徑 ~ === /root ~ == /home/xxx/usr/local/ #絕對路徑 相對路徑: 不是以根為開頭的路徑就是相對路徑 相對路徑是針對當前目錄而言的 ./local/local/
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次以上 .* #所有 包括空行 ```
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态