1~14主要是linux基礎命令(略)、根文件系統、文件管理命令、用戶及權限、用戶管理命令
1.bash特性講解
定義:在計算機科學中,Shell俗稱殼(用來區別於核),是指“爲使用者提供操作界面”的軟件(命令解析器)。它類似於DOS下的command.com和後來的cmd.exe。它接收用戶命令,然後調用相應的應用程序。
#1.1bash
//在shell中可以繼續打開shell,稱爲子shell,用exit退出。父子shell間無繼承關係,在父shell運行的在子無效,反之也無效。
1.2#Csh
//shell可嵌套可交互,比如在在csh裏亦可執行ksh,本質上只是每層shell都覺得自己僅僅運行了命令。Bash支持的項:
1.3shell的變量功能:
變量簡單說就是讓某一個特定字符串代表不固定的內容。
設置變量(變量名的規則:用“=”連接;等號兩邊不能有空格符;只能使用數字和字母,且不能用數字開頭;):
myname=hibiscus
取消變量:unset 變量名稱
優點:
命令與文件補全功能
命令別名設置功能
命令記憶功能
通配符等等
1.4shell中的通配符
bash中常用的通配符有”*“,”?“,”[]“
*表示匹配任意一個或多個字符
?表示匹配任意單一字符
[]匹配任何包含在方括號內的單字符
shell中的引用:在bash中有很多特殊字符,這些特殊字符就具有特殊含義。引用就是通知shell將這些特殊字符當作普通字符來處理。
轉義字符“\”:如果將\放到特殊字符前面,shell就忽略這些特殊字符的原有含義,把它們當作普通字符對待。
單引號:如果將字符串放到一對單引號之間,那麼字符串中所有字符的特殊含義被忽略。
ll -d 1'*'
雙引號:雙引號的引用與單引號基本相同,包含在雙引號內的大部分特殊字符可以當作普通字符處理,但是仍然有一些特殊字符保留自己的特殊含義,比如”$“和“\”以及“ ` ”
2.命令行編輯:
2.1光標跳轉:
Ctrl+a:跳到命令行首
Ctrl+d輸入已結束。在shell下相當於exit
Ctrl+c鍵盤中斷請求,終止當前的命令
Ctrl+e:跳到命令行尾
Ctrl+u:刪除光標至命令行首的內容
Ctrl+k:刪除光標至命令行尾的內容
Ctrl+左右箭頭:圖形界面下可跳到前一個單詞前
Ctrl+l:clear,清屏
ctrl+s ctrl+q 暫停/恢復屏幕輸出
Esc 鬆開 再. :和!$一個作用
Alt和.同時:和!$一個作用,不支持遠程使用
2.2文本操作
文本編輯:vim
命令模式:按esc回到命令模式
yy 複製當前行
2+yy 複製當前行和下一行
p粘貼
dd 刪除當前行
2dd刪除當前行和下一行
dw按單詞刪除
u 撤銷當前操作
w,b 按單詞移動光標
gg 跳轉到文檔首部行首
G 跳轉到文檔尾部行首
/字符串 查找字符串
插入模式:
i 在光標前插入=I
a 在光標後插入
A 在光標所在行末尾插入
s 刪除光標所在位置字符並插入
S 刪除光標所在行並插入
o 在光標所在行下一行插入
O 在光標所在行上一行插入
末行模式:
:wq 保存退出
:q!強制退出,不保存
:wq!強制保存退出
:set nu 顯示行號
:set nonu 取消顯示行號
:3,5 d 刪除第3-5行
:r 文件名 讀出文件的內容到當前文件中
:%s/字符串2/字符串3 用字符串3替換字符串2
:%s/字符串2/字符串3/g 用字符串3替換字符串2,全局修改
:w 文件名1 另存爲文件名1
文本查看命令:
cat連接並顯示文件內容到標準輸出
cat -n 顯示文件內容並顯示行號
逆序顯示文件:tac
從頭開始逐行查看文件內容:more(在沒有翻到最後一屏時支持向後翻)
支持前後翻查看文件內容:less(man手冊查看命令用法默認用less打開)
默認查看文件前10行:head
指定查看前n行:head -n
默認查看文件後10行:tail
指定查看後n行:tail -n
文本切割顯示:
cut -d 指定分隔符 -f 指定第幾列(被切割文件
指定分隔符的時候空格需要用引號‘’引起來)
文本排序顯示:
排序顯示(默認根據字符在ASCII碼中的升序排序):sort 文件名
按照數字大小排序:sort -n 文件名
排序並去掉重複的:sort -u 文件名
逆序排序:sort -r 文件名
按照用戶uid數字大小排序顯示:
sort -t 指定分隔符 -k 指定第幾列 -n /etc/passwd
-f 排序時忽略字符大小寫
去掉重複的行,重複的行必須相鄰:uniq 文件名
-d 只顯示重複的行
-D 顯示所有重複的行
-c 顯示重複行重複的次數
文本統計:wc——word count
顯示文件行數、單詞數、字節數和文件名:wc 文件名
###在UTF-8編碼格式裏面,顯示時一個字符佔一個字節,一箇中文字佔用3個字節
只顯示單詞數:wc -w 文件名
只顯示字節數:wc -c 文件名
只顯示行數:wc -l 文件名
只顯示字符數:wc -m 文件名
顯示最長的一行的字符數:wc -L 文件名
管道符:管道符左邊命令的輸出作爲管道符右邊命令的輸入。
tee命令:在輸出到文件的同時輸出到屏幕,既想把輸出保存到文件中,又想在屏幕上看到輸出內容。
文本過濾:grep可以根據指定的字符串,對文件的每一行進行搜索,如果找到了這個字符串,就輸出該行的內容
查找文件裏有字符h的字符串:grep h 文件名
如果要明確搜索子目錄:grep -r h ./*
忽略子目錄:grep -d skip h ./*
匹配整個單詞:grep -w 單詞 文件名
匹配以q開始的行:grep ^[q] 文件名
匹配以q結束的行:grep q$ 文件名
匹配以數字開頭的行:grep ^[0-9] 文件名
匹配以q或者f開頭的行:grep ^[qf] 文件名
文件搜索:
查找文件路徑:
find 路徑 -name 文件名:find / -name passwd
3.Linux系統
-rw-------. 1 root root 1792 Aug 21 20:57 anaconda-ks.cfg
依次表示:
-文件類型 rw-所屬用戶的權限 —所屬組的權限 —其他用戶的權限 .acl 1硬鏈接次數 root所屬者 root所屬組 1792文件大小 文件的最後一次修改時間 文件
3.1 文件
3.1.1文件類型:
-普通文件
d 目錄文件
c 字符設備文件
b 塊設備文件
-p 管道文件,進程間的通信
s 套接字文件,用於網絡上的通信。可以啓動一個程序來監聽客戶端的要求,客戶端可以通過套接字來進行數據通信
l 鏈接文件
硬鏈接
- ln 原文件 新文件
軟鏈接 - ln -s 原文件 鏈接文件
3.1.2文件操作
創建文件:
文件命名規則:
(1)不能使用/來當文件名,/是用來做根的,也是用來做路徑分隔符
(2)文件名不能超過255個字符
(3)區分大小寫
創建普通文件:touch
touch {文件1,文件2,文件3} 創建多個文件
刪除普通文件:rm
-f 強制刪除
創建目錄:mkdir
mkdir -p 目錄1/目錄2/目錄3 遞歸創建多個目錄
-v 顯示創建目錄的詳細信息
刪除目錄:rm -r
-f 強制刪除
複製文件:cp
複製普通文件:
cp 文件1 目錄1 將文件1複製到目錄1
cp 文件1 目錄1/文件2 將文件1複製到目錄1並重命名
複製目錄文件:cp -r
移動文件:mv
mv 文件1 文件2 將文件1重命名爲文件2
mv 文件1 目錄1 將文件1移動到目錄1下
mv 文件1 目錄1/文件2 將文件1移動到目錄1並重命名
文件的壓縮和解壓:
gzip 文件 壓縮文件
gzip -c 原文件 > 原文件.gz 保留原文件並壓縮
gzip -d 文件.gz 解壓文件
gzip -cd 文件.gz > 文件 保留原文件並解壓
gunzip 文件.gz 解壓文件
zcat 文件.gz 查看壓縮文件內容
bzip2 文件 壓縮文件
bzip2 -c 原文件 > 原文件.bz2 保留原文件並壓縮
bzip2 -d 文件.bz2 解壓文件
bzip2 -cd 文件.bz2 > 文件 保留原文件並解壓
bunzip2 文件.bz2 解壓文件
bzcat 文件.bz2 查看壓縮文件內容
tar:打包即歸檔文件,[主選項+輔選項]
主選項:
c create,創建一個歸檔文件
x 從歸檔文件中提取文件出來
t 列出歸檔文件中的文件
輔選項:
z,以gzip的格式壓縮或解壓
j,以bzip2的格式壓縮或解壓
v,顯示打包過程的信息
C,將文件解壓到指定目錄
f 輸出結果到文件,必須寫該選項
兩種壓縮方式:zcvf jcvf
解壓:xvf
3.2權限
用戶:擁有哪些權限
用戶組:權限的集合,方便指派權限
權限:可以進行什麼操作:R,w,x:可讀可寫可執行
一般文件不設置執行權限,目錄要有,沒有x權限用戶就無法進入該目錄。
特殊權限:
強制位suid,set UID,使進程的屬主屬於程序文件本身u+s
強制位sgid,set gid,使進程的屬組爲程序文件本身;在目錄下創建的文件的屬組爲該目錄的屬組g+s
冒險位:只有該用戶可以刪除自己在該目錄下創建的文件,其他人無法刪除(root除外)o+t
umask查看權限掩碼:0022
4,suid;2,sgid;1,冒險位
普通文件本身的權限:666 rw-rw-rw-
目錄文件本身的權限:777 rwxrwxrwx
將二進制權限的有無轉化爲八進制。爲什麼用八進制,因爲三位一讀,便於快速賦權限。(便於記憶,可視r w x分別等值4 2 1)
u 所屬者
g 所屬組
o其他人
chmod u/g/o =/+/- 修改文件的權限所屬者,所屬組和其他人的權限
chmod 000/777/755/644....
修改文件的權限所屬者,所屬組和其他人的權限
chown 所屬者:所屬組 修改文件的所屬用戶和所屬組
chown 所屬者.所屬組 修改文件的所屬用戶和所屬組
chgrp 所屬組 修改文件的所屬組
用戶
3.3 目錄
/ 根目錄,通常不在這裏存儲文件
/bin 可執行文件,ls,cd
/sbin 可執行文件
/boot 開機啓動的文件,包括linux內核以及開機菜單與開機所需配置文件等
/dev 設備文件,任何設備與接口設備都是以文件形式存在與這個目錄的
/root root用戶的主目錄
/home 普通用戶的主目錄
/mnt 掛載點目錄
光盤必須和/下的某個目錄節點建立聯繫才能使用。
把光盤和指定的掛載點目錄建立聯繫的過程叫做掛載。
mount /dev/sr0 /mnt
/media 媒體目錄,也是掛載點目錄
/opt 可選目錄。存放第三方軟件包和數據文件
/var 可變目錄,用以存放經常變化的文件,如日誌文件
/etc 配置文件
/lib 系統的函數庫
/proc 該目錄是一個虛擬文件系統,它放置的數據都在內存當中
/run 系統運行時所需文件
/usr 放置的數據爲可分享的與不可變動的,unix操作系統軟件資源所放置的目錄,而不是用戶數據
/srv service的縮寫,是一些網絡服務啓動之後,這些服務所需要取用的數據目錄
/tmp 讓一般用戶或者是正在執行的程序暫時放置文件的地方
/sys 這個目錄其實跟/proc非常類似,也是一個虛擬的文件系統,主要是記錄與內核相關的信息
3.4acl
acl 訪問控制列表
setfacl -m u/g:用戶名/組名:rwx 文件名
getfacl 文件名
setfacl -b 文件名