"第一階段 快捷鍵 1" "第二階段 文件和目錄操作命令 1" "1.1 date / useradd 1" "1.2 echo 調用變數 2" "1.3 whoami 查看用戶名 2" "1.4 tab命令補全 2" "1.5 history 歷史命令 2" "1.6 alias 別名 3" "1 ...
1.9 mkdir:創建目錄make directory 5
第一部分 快捷鍵
ctrl+a | 將游標跳轉至行首 |
---|---|
ctrl + e | 將游標跳轉至行末 |
Ctrl + w | 以空格為單位,將當前游標位置之前的內容刪除 |
.ctrl +u | 將當前游標位置之前的內容全部刪除 |
ctrl + l | 清屏 |
ctrl + c | 終止當前命令 |
ctrl + d | 退出,斷開當前連接(exit,logout) |
ctrl + z | 掛起,放後臺執行 |
ctrl + r | 搜索歷史命令 |
ctrl+s | 鎖屏 |
Ctrl+q | 解鎖 |
Ctrl+左右 | 按照單詞跳轉游標 |
esc + . | 瞬間顯示出上一條命令,最後的內容,以空格分隔 |
Ctrl+y | 將粘貼板上的內容粘貼出來,配合u,k,w使用 |
第二部分文件和目錄操作命令
1.1 date / useradd
date | 獲取當前時間 |
---|---|
useradd | 創建用戶 |
例如:
命令方式: [root@gong ~]# date #獲取當前時間
2019年 06月 14日 星期五 15:47 CST
[root@gong ~]# useradd gjy
\#增加用戶名
1.2 echo 調用變數
echo | 在bash shell中調用變數$ |
---|---|
查看當前命令解釋符
[root@gong ~]# echo $ps1
[\u@\h \w]\$
echo:在bash shell中調用變數 $
1.3 whoami 查看用戶名
whoami | 查看用戶名 |
---|---|
查看當前用戶(whoamai:查看當前登錄的用戶)
[root@centos7 ~]# whoamai
root
root:超級系統用戶名,也是當前系統的用戶
root之外的都是普通用戶
1.4 tab命令補全
tab | 命令補全,選項補全,參數補全 |
---|---|
例如:、 [root@centos7 ~]# ifc
\#按下tab鍵會自動補全,若按一下tab沒反應,就需要按兩下tab鍵,列出所有if開頭的命令
ifcfg ifcconfig
[root@centos7 ~]# ifconfig
[root@centos7 ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0 #網路配置名稱
1.5 history 歷史命令
history | 列出歷史命令。 |
---|---|
-w | 把歷史文件寫入文件 |
-c | 清空命令歷史記錄,不會清空文件 |
-d | 指定一條記錄刪除 |
-w | 保存歷史命令 |
!! | 執行上一條命令 |
!n | 執行歷史命令中的第n條命令 |
例如:
查看歷史記錄:
[root@gong ~]# history
清空歷史記錄
[root@gong ~]# history -c
\#指定一條歷史記錄刪除
[root@gong ~]# history -d 23
\#保存歷史命令
[root@gong ~]# history -w
\#執行上一條命令
[root@gong ~]# !!
\#執行上一條ls相關命令
[root@gong ~]# !ls
\#執行歷史命令中的第23條命令
[root@gong ~]# !23
1.6 alias 別名
alias | 創建命令別名 alias 別名=“命令” |
---|---|
unalias | 取消文件別名 unlias 別名 |
例如:定義臨時別名,查看網路是否可以通,ping 百度,只對當前shell 生效
[root@gong ~]# alias tong="ping baidu.com" #需用雙引號,單引號輸出的結果是引號內的字元串
PING baidu.com (123.125.114.144) 56(84) bytes of data.
64 bytes from 123.125.114.144: icmp_seq=1 ttl=128 time=44.2 ms
64 bytes from 123.125.114.144: icmp_seq=2 ttl=128 time=47.5 ms
64 bytes from 123.125.114.144: icmp_seq=3 ttl=128 time=46.3 ms
......
查看所有定義的別名
[root@gong ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias tong='ping baidu.com'
......
取消別名
[root@gong ~]# unalias oldboy
[root@gong ~]# oldboy
-bash: tong: command not found
永久生效
[root@gong ~]# vim /etc/bashrc
alias oldboy="ping baidu.com"
1.7 ls獲取命令幫助help
Ls常見選項 | 全拼list,功能是列出目錄的內容及其內容屬性信息。 |
---|---|
-l | 以長格式方式顯示文件或目錄的詳細內容 |
-a | 查看目錄下的所有文件,包括隱藏文件 |
-d | 只顯示目錄名,而不顯示目錄裡面的內容 |
-F | 給不同類型的文件加上不同的標記 |
-r | 倒敘 |
-t | 按照文件或目錄的修改時間進行排序 |
-i | 顯示文件的inode 號碼 |
-h | 以人類可讀的方式 |
獲取ls命令的幫助
[root@gong ~]# ls --help
用法:ls[選項]...[文件]...
[root@gong ~]# man ls
1.8 cd:切換目錄change directory
cd | 切換至當前用戶家目錄 |
---|---|
cd - | 切換上次所在目錄 |
cd ~ | 切換至當前用戶家目錄 |
cd . | 代表當前目錄,一般在拷貝、移動情況下使用 |
cd .. | 切換至當前目錄的上級目錄 |
1.9 mkdir:創建目錄make directory
-m | 創建目錄時,指定許可權(很少用,幾乎不用) |
---|---|
-p | 如果目錄已存在則不會報錯,遞歸創建 |
-v | 列印出創建過程信息 |
\#創建目錄
[root@gong ~]# mkdir dir1
\#創建目錄並給許可權
[root@gong ~]# mkdir -m777 dir2
\#遞歸創建目錄
[root@gong ~]# mkdir -p dir3/dir4/dir5
\#創建目錄並顯示信息
[root@gong ~]# mkdir -pv dir4/dir5/dir6
備註:rwx為7,read 讀,write寫,exec執行
最高許可權為777,目錄一般許可權為755,文件一般許可權為644
例如:
條命令建出以下的目錄:
/home/zls
/home/abc
/home/abc/1
/home/abc/2
/home/abc/3
/home/abc/1/zls
/home/abc/2/zls
/home/abc/3/zls
/usr/local/abc
/data
/backup
/backup/abc
/abc
/abc/test
/abc/test/1
...
/abc/test/10
解答:
[root@gong ~]# mkdir /{home/{zls,abc/{1..3}/zls},usr/local/abc,data,backup/abc,abc/test/{1..10}} -pv
2.0 touch創建文件
Touch
語法:touch[選項]... 文件名...
創建文件,如果文件存在,不會覆蓋內容,但是會修改創建時間
Linux中,一切皆文件
示例1:
[root@gong ~]# touch file
[root@gong ~]# touch file1 file2
[root@gong ~]# touch /home/zls/file3 file4
[root@gong ~]# touch file{5,6,7}
[root@gong ~]# touch file{10..100}
示例2:
[root@gong ~]# touch abc
[root@gong ~]# touch /oldboy/abc
Touch:cannot touch ‘/oldboy/abc’:no such file or directory
**註意:**
1.創建文件,必須要創建在一個存在的目錄中
2.和創建目錄不同的是,創建相同的文件不會報錯
3.創建相同的文件,源文件內容不會被覆蓋
4.在Linux當中一切皆文件
2.1 tree 樹狀顯示目錄文件結構
-l | 指定層級(level) |
---|---|
-d | 只查看目錄 |
如果沒有安裝,則需要先安裝:yum -y install tree
起始目錄為 .
[root@gong ~]# tree 當前目錄的tree結構
[root@gong ~]# tree / /目錄下的所有文件,目錄
[root@gong ~]# tree /home /home下的文件,目錄
[root@gong ~]# tree -L 1 / /目錄下的一級目錄,開頭不是 . ,是指定的層級
[root@gong ~]# tree -L -d 2 /usr/local 只查看/usr/local的二級目錄,不看文件
2.2複製命令cp
cp | 複製 |
---|---|
-r | 遞歸拷貝,拷貝目錄,連裡面的東西一併拷貝 |
-p | 保持源文件的屬性 |
-a | 拷貝目錄並保持屬性,和-rp一樣 (用的最多 |
-rp | 遞歸拷貝並保持源文件的屬性 |
-v | 顯示覆制的過程 |
-t | 交換目標和源文件的位置(意義不大) |
語法:
cp [OPTION]... 源文件 目標
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
[root@oldboyedu ~]# cp oldboy /usr/
cp: omitting directory ‘oldboy’
複製文件的過程:
[root@oldboyedu ~]# cp -v 123 456 789 /opt/
‘123’ -> ‘/opt/123’
‘456’ -> ‘/opt/456’
‘789’ -> ‘/opt/789’
cp可以修改名字,指定的目錄不存在,也可以拷貝,但拷貝即改名
[root@gong ~]# cp /etc/sysconfig/network-scripts/{ifcfg-eth0,eth00}
把網卡配置還是配置到這個路徑下,改名 eth00
[root@gong ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0{,.bak}
把網卡配置還是配置到這個路徑下,改名ifcfg-eth0.bak(加尾碼)
備註:{,.bak}=ifcfg-eth0,ifcfg-eth0.bak
2.3 移動命令mv
mv:移動 move (系統預設操作,alias可以查看,mv=mv-i)
語法:
mv [OPTION]... 源文件 目標
註意:
\#系統預設操作,alias可以查看,mv=mv-i,執行命令時系統會自動詢問要不要移動
\mv 就不會詢問
絕對路徑執行命令:就是執行命令本身,不經過alias
命令前面加上轉義符 \,也是執行命令本身,不經過alias
和cp一樣
示例:
[root@gong ~]# mv file1 test1 #如果test1目錄存在,file1直接放進
[root@gong ~]# touch file1 #創建文件file1
[root@gong ~]# echo 123>file 1 #輸入123到file1文件中
[root@gong ~]# cat file1 #查看file1文件內容
[root@gong ~]# touch 1.txt #創建1.txt文件
[root@gong ~]# mv 1.txt /opt/ #文件可以直接移動
[root@gong ~]# mkdir oldboy #在當前目錄下創建目錄
[root@gong ~]# mv oldboy/ /opt/ #移動當前目錄下的oldboy目錄到/opt/目錄下
總結:
1.如果目標是一個目錄,就會把文件放入目錄
2.文件,就會被覆蓋
2.4 刪除rm
rm 刪除remove
語法:
-i | 交互,再刪除前需要確認 |
---|---|
-r | 遞歸刪除 |
-f | 強制刪除(force) |
-v | 顯示刪除的過程 |
rm +文件 | 直接可以刪除 |
rm+目錄 | 不能直接刪除,需加參數 rm -r |
刪文件就最好不加-f, Linux中沒有回收站,都是永久刪除
最好給rm設置一個別名,禁止使用,再確認一下
禁止使用alias=rm - fr/
要想刪除 加\
[root@gong ~]# \rm -fr #前面加\即可直接刪除,不會詢問
[root@gong ~]# rm - fr ./* #是刪除/目錄下的目錄,文件
[root@gong ~]# rm - fr ./ * #中間有空格的話,也是會誤操作,直接刪/了
備註:
echo 'alias rm="echo '禁止使用rm'"' >> /etc/bashrc
source /etc/bashrc
再執行rm -fr /...
就會出現禁止使用
2.5 cat查看文件內容
cat:查看文件內容,會將文件的所有內容顯示到屏幕
用法: cat[選項]...[文件]
-n | 查看內容並顯示行號 |
---|---|
-A | 顯示文件的結束符和tab鍵,,一行結束和空行都加$, $代表某一行的結束,包含-T -E-V |
-E | 顯示文件的結束符 |
-T | 顯示文件的tab鍵(^T) |
-b | 查看內容並顯示行號,空行不顯 |
> | 標準輸出重定向,將目標文件的內容清空,再將輸出結果追加到目標文件 |
>> | 標準輸出追加重定向,將輸出結果追加到目標文件的結尾,不會覆蓋 |
示例:
[root@gong ~]# echo file1 >>123
[root@gong ~]# cat 123
file1
[root@gong ~]# cat 456
file2
[root@gong ~]# cat 123 456
file1
file2
[root@gong ~]# cat >> zls.txt << eof #eof=end of
eof #eof也可以換成jieshu或者其他,但必須首尾一致
[root@gong ~]# cat zls.txt #能獲取到zls.txt的內容
瞭解:tac zls.txt
把內容反過來了,按行為單位,倒著顯示內容
2.6 查看命令more和less**
more分頁顯示文件內容
空格或f | 向下翻頁 |
---|---|
b | 向上翻頁 |
/ | 搜索關鍵字 |
= | 顯示當前游標所在行 |
q | 退出 |
-N(數字) | 每頁顯示幾行 |
+N(數字) | 從第幾行開始顯示 |
顯示完文件內容,會自動退出。
[root@oldboyedu ~]# more /etc/services
不可以操作,回車是下行,空格是翻頁
按q退出
less
[root@oldboyedu ~]# less /etc/services
/ + 關鍵字 | 會高亮顯示 |
---|---|
空格或f | 向下翻頁 |
b | 向上翻頁 |
q | 退出 |
n | 向下搜索 |
- N | 向上搜索(shift + n) ,給顯示出來的內容加上行號 |
顯示完文件,不會自動退出,按q退出後,會縮迴文件內容
2.7 查看文件前n行 head
用法:
Head + 文件名
-n: 顯示前n行,n為數字,n後面加數字
預設為前10行
[root@oldboyedu ~]# head /etc/services #預設為前10行
[root@oldboyedu ~]# head -n 20 /etc/services # Head -n 20 #查看前20行
[root@oldboyedu ~]# head -20 /etc/services #Head -20 #查看前20行
2.8查看尾部tail
用法:
tail+文件名
預設顯示後10行
-f : 追蹤文件末尾,相當於tailf
Tailf=tail -f 是一個單獨的命令,追蹤日誌
-F :實時查看文件內容的更新,當文件不存在時,會一直的嘗試
-n : 顯示前n行,n為數字,n後面加數字
(n也可以不寫,作用一樣)
[root@centos7 ~]# tail -1 /etc/services #顯示出/etc/servicces的最後一行
matahari 49000/tcp # Matahari Broker
2.9 grep awk sed三劍客
grep | 過濾關鍵字 |
---|---|
-n | 顯示行號 |
-o | 只顯示關鍵字,不顯示行號 和其他內容 |
-B | 顯示前n行,n為數字(before) |
-A | 顯示關鍵字的後n行,n為數字(affer) |
-C | 顯示關鍵字的前後n行,n為數字(center)相當於 -B-A ( -B 1 -A1=-C1顯示關鍵字的前後1行) |
-v | 取反 |
-E | 支持多關鍵字,中間用|分隔 grep -E=egrep |
-i | 不區分大小寫,忽略大小寫 |
^ | 以什麼開頭 ‘^root’ |
$ | 以什麼結尾 ‘root\(’ | | ^\) |
^[a-z] | 以a到z開頭的 |
. | 代表字元 |
* | 代表所有 |
| | 管道符,將前面命令輸出的結果交給後個 ,grep A passwd | grep -v ‘^tss’ |
獲取IP地址
[root@oldboyedu ~]# ifconfig #相當於輸入ip a 查詢 ip地址
[root@gong ~]# ifconfig |awk -F '[ :]+' 'NR==2 {print $3}'
[root@oldboyedu ~]# grep '^root' /etc/passwd #以root為開頭
[root@oldboyedu ~]# grep 'bash$' /etc/passwd #以bash為結尾
\#以數字的範圍開頭
[root@oldboyedu ~]# grep -n '^[0-9]' passwd
3.0 find文件查找
[root@oldboyedu ~]# find / -type d -name "oldboy"
/root/oldboy
[root@oldboyedu ~]# find /root -name "*.txt"
/root/oldboy.txt
/root/file4.txt
/root/ip.txt
/root/file.txt
/root/file1.txt
/root/file2.txt
/root/file3.txt
[root@oldboyedu ~]# find /root -type f -name "*.txt"
/root/oldboy.txt
/root/file4.txt
/root/ip.txt
/root/file.txt
/root/file1.txt
/root/file2.txt
/root/file3.txt