三、 正常指令
基本介紹
[root@localhost ~]#
~:表示目前操作位置在使用者家目錄
#:表示超級使用者登入,普通使用者登入時顯示為“$”
ll -i (顯示結果)
130574 drwxr-xr-x. 2 root root 4.0K 6月 6 12:17 123
inode号 權限級别 引用數 所有者 所屬組 大小 時間 檔案名
引用計數:
對于檔案:表示檔案硬連結數
對于目錄:目錄下一級子目錄的個數
指令選項:用于調整指令功能
參數:是指令操作的對象,若省略,則代表預設。
目錄指令
cd 切換目錄 i顯示inode h常用機關 a顯示所有 d目前目錄
pwd 顯示目前所在目錄的路徑
mkdir 建立目錄
rmdir 删除目錄
rm 删除目錄和檔案 -r遞歸 -f強制
tree 顯示目錄樹 -L 指定層數,-d 指定目錄 如:tree -L 2 -d /
檔案操作
1) touch 建立或修改時間
2) rm -rf 删除
-r 遞歸,删除目錄
-f 強制删除
3) cat 檢視内容,所有
-n 列出行号
4) more 分屏顯示
空格向下翻頁,b向上翻頁,q退出
5) less 分行顯示
6) head [] 顯示檔案頭 預設顯示前10行
-n 20 檔案名 顯示前20行
7) tail -n 行數 檔案名 顯示檔案尾 預設顯示前10行
-f 監聽檔案尾
檔案目錄指令
rm 删除檔案或目錄
cp [] 源檔案 目标位置 複制
-r 複制目錄
-p 帶屬性複制
-d 連結複制
-a相當于-rpd
mv 剪貼或改名
shell 指令解釋器
内部指令:shell自帶,沒有明确的可執行檔案
外部指令:type檢視,後期開發,有執行檔案
連結檔案(難點)
建立連結時一定要使用絕對路徑
ln (link)
ln -s 實際檔案 軟連接配接檔案
ln -s /root/12 /tmp/ (軟連結)
ln /root/12 /tmp/ (硬連結)
注意:删除軟連接配接 rm -rf abc/ 有“/”會把源檔案删除,是以rm -rf abc 則删除軟連接配接檔案 abc
硬連結:
源檔案和硬連結檔案擁有相同的inode号和blook塊,可以看成是同一個檔案。
修改任意一個檔案,另一個内容改變,删除任意一個,另一個正常使用。
除非兩個都删除,才不能通路。
不能誇分區(防止inode号重複)
不能連結目錄。(目錄下檔案可能太多)
特征不夠明顯,很難判斷兩個是硬連結,不推薦使用。
軟連結:
軟連結有自己獨立的inode和blook,但blook不記錄實際資料,隻寫入源檔案名和inode号
軟連結大小不随源檔案大小改變而改變
軟連接配接是最大權限,但通路受源檔案權限限制
修改任意一個,另一個也改變
删除軟連結,源檔案無影響,删除源檔案,軟連結無效
軟連結可以誇分區,可以連結目錄
軟連結特征特征明顯,推薦使用。
常用快捷鍵
Tab 自動補全
ctrl+l 清屏
ctrl+u 從光标删除到行首
ctrl+k 從光标删除到行尾
ctrl+y 在粘貼回來
ctrl+a 光标移到行頭
ctrl+e 光标移到行尾
ctrl+s 暫停螢幕
ctrl+q 解除暫停螢幕
ctrl+c 強制終止
ctrl+z 放入背景
注:以“.”開頭的檔案,代表隐藏檔案(系統檔案,不要亂動)
alias 檢視系統别名(别名優先級高于指令)
/root/.bashrc 環境變量設定檔案
ps aux 檢視任務管理器
kill 殺死程序
操作時先看一下在那個目錄,盡量使用絕對路徑
設定中文字型:LANG=zh_CN.UTF-8
權限
-rw-r--r--.
drwxr-xr-x.
第1位表示檔案類型
其中 - 普通檔案
d 目錄檔案
l 連結檔案
b 裝置塊檔案
c 字元裝置檔案
s 套接字
p 管道
第2.3.4 位表示 u(所有者)rwx(讀寫執行) 權限
第5.6.7 位表示 g(所屬組)rwx(讀寫執行) 權限
第8.9.10位表示 o(其他人)rwx(讀寫執行) 權限
r 4 w 2 x 1
最後一位點(.)代表檔案受selinux保護
chome(權限修改)
常用權限 644 标準檔案權限
755 檔案:執行權限
目錄:标準權限
777 最大權限
使用者在自己的所屬組裡,所有者權限生效;在其他所屬組裡,所屬組權限生效。
chown 修改所有者
chgrn 修改所屬組
-R 參數 對目錄及其内所有檔案都設定權限(遞歸設定)
chown u:g 或chown u.g (同時修改所有者和所屬組)
chown :g 修改所屬組
權限的意義(隻限制普通使用者)
對檔案:r:讀取内容 cat more head tail
w:編輯 vi echo
x:可執行
注:對上級目錄有權限,才能操作檔案資料(檔案本身權限受上級目錄的權限管理)
對目錄:r:可以查詢目錄下檔案名 ls
w:修改目錄結構 删除、建立、更名、複制、剪貼
x:可以進入目錄
最大權限: 檔案x最大
目錄w最大
對于目錄426權限沒有意義,隻能是057,0最小權限,5标準權限,7最大權限
建立的檔案初始權限為666(umask為0000時)
建立的目錄初始權限為777(umask為0000時)
umask (系統通過umask保證預設權限)/etc/profile
超級使用者:0022
普通使用者:0022或0002
建立檔案及目錄的全選計算
UID > 199 umask 002
UID <= 199 umask 022
rwx rwx rwx 777 目錄預設權限
--- -w- -w- 022 umask
----------------------
rwx r-x r-x 755 實際權限
rw- rw- rw- 666 檔案預設權限
--- -w- -w- 022 umask
----------------------
rw- r-- r-- 644 實際權限
rwx rwx rwx 777 目錄預設權限
--- -w- rwx 027 umask
----------------------
rwx r-x --- 750 實際權限
rw- rw- rw- 666 檔案預設權限
--- -w- rwx 027 umask
----------------------
rw- r-- --- 640 實際權限
幫助檔案
--help 檢視指令的常見選項
man 檢視幫助檔案
man 5 passwd 檢視passwd檔案的幫助
man 1 passwd 檢視passwd指令的幫助
man -f whatis 檢視指令的幫助級别
man幫助級别
1 - 檢視指令的幫助
2 - 檢視可被核心調用的函數的幫助
3 - 檢視函數和函數庫的幫助
4 - 檢視特殊檔案的幫助(主要是/dev目錄下檔案)
5 - 檢視配置檔案幫助
6 - 檢視遊戲幫助
7 - 檢視其他雜項幫助
8 - 檢視系統管理者可用指令幫助
9 - 檢視和核心相關檔案的幫助
info 最詳細的幫助檔案(u進上層,n下一節,p上一節,q退出)
基本查找指令
which 查找指令的指令,能看到相關别名
whereis 查找指令的指令,看到幫助文檔的位置
locate 按照檔案名在特定資料庫查找
updatedb 強制更新資料庫 /var/lib/mlocate/mlocate.db 資料庫檔案
vim /etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes" 開啟搜尋限制
PRUNEFS = 不被搜尋的檔案系統
PRUNENAMES = 不被搜尋的檔案類型
PRUNEPATHS = 不被搜尋的路徑
find 搜尋指令(在系統中搜尋符合條件的檔案名。使用通配符完全比對)
通配符 * 任意内容
? 任意一個内容
[] 中括号内任意一個内容,[abc][0-9][A-Z][A-Za-z]
[^] 取反,除了[]内的内容
grep 查找字元串(在檔案中搜尋符合條件的字元串。正規表達式包含比對)
表達式 * 前一個字元重複任意多次
? 前一個字元重複0次或一次(需要egrep指令)
[] 中括号内任意一個内容
^ 限制行首
$ 限制行尾
注:
/etc/profile(umask環境變量配置檔案)
/var/lib/mlocate/mlocate.db(locate指令搜尋的背景資料庫)
/etc/updatedb.conf(定義locate指令的配置檔案)
最大權限有安全風險,要小心賦予。
info(更詳細的幫助檔案)
find查找指令
find 位置 -name 檔案名
-mtime 修改時間(modify)
-atime 按通路時間(access)
-ctime 狀态修改時間,即權限等(天)+4 查找4天前的,-4查找4天内的,4查找第四天當天
find / -ctime -4
-uid 數字(按ID查找)
-gid 數字(按組ID查找)
-user 使用者名(按屬主使用者名查找)
-group 組名(按屬組名查找檔案)
-nouser 查找沒有屬主的檔案
-name 按檔案名查找
-size 按大小,+50k:大于50k,-50k:小于50k,50k:等于50k
-type 按檔案類型查找,f:普通、d目錄、i:連結
find /etc/ -name rpm -type d 查找/etc下rpm目錄
-perm 444 按權限查找)
+444 隻要有一個大于4即可
-444 全小于4即可
-inum 節點數 (按i節點查找)
-iname (按檔案名查找,不區分大小寫)
在查找的結果中直接以指令操作
find /tmp/ -mtime +10 -exec rm -rf {} ;(類似于管道符号)
-ok(使用時會詢問使用者是否)
邏輯連接配接符:
-a (and 邏輯與)
-o (or 邏輯或)
例:find /etc -size +1k -a -size -10k
在etc目錄下查找大于1k并且小于10k的檔案
grep -i "root" /etc/passwd (按字元串root查找,i是忽略大小寫)
-i (忽略大小寫)
-v (反向選擇,邏輯非的意思)
-o (統計關鍵詞有多少行)
|管道符
cat install.log | grep lib (在顯示檔案操作中,grep搜尋含有lib的行)
第一次的結果會因管道符以文本流形式做為參數傳給指令2
find /etc/ -name "passwd" |xargs ls -l (在/etc目錄中查找passwd檔案,并以長格式顯示)
第一次的結果會因管道符以任務流形式做為參數傳給指令2
| 隻接收正确輸出文本流 |& 接收正确和錯誤輸出的文本流
|xargs 隻接收任務流
netstat 檢視系統網絡狀态
-t 檢視tcp協定端口
-u 檢視udp
-l 監聽
-n 以ip和端口号顯示
壓縮和解壓縮
1) zip壓縮
zip -r test.zip /test 壓縮(-r是壓縮目錄)
unzip test.zip 解壓縮
2) gz壓縮,不會打包,不保留源檔案
gzip 源檔案 壓縮
gzip -r 原目錄 (隻對目錄内檔案單獨壓縮)
gzip -c 源檔案 > 壓縮包 保留源檔案壓縮
gunzip壓縮包 解壓縮
gzip -d 壓縮包 解壓縮
3) bz2 不能壓縮目錄
bzip2 源檔案 (壓縮,-k保留源檔案)
bzip2 -d 壓縮包 (解壓,-k保留壓縮包)
bunzip2 壓縮包 (解壓,-k保留壓縮包)
4) tar打包,不壓縮
tar -cvf 打包名 源檔案 (打包)
tar -xvf 檔案包名 (解包,-c打包,-x解包,-v顯示過程,-f指定打封包件名)
5) 同時壓縮打包
gz tar -zcvf 壓縮名 源檔案 (壓縮,-z,識别.gz格式)
tar -zxvf 壓縮包名 (解壓)
bz2 tar -jcvf壓縮名 源檔案 (壓縮,-j,識别bz2格式)
tar -jxvf 壓縮包名 (解壓)
6) 檢視不解包 tar -ztvf (gz格式,-t,隻檢視,不解壓)
tar -jtvf (bz2格式)
7) 指定壓縮位置
tar -jxvf root.tar.bz2 -C /tmp/
8) 指定檔案到指定位置解壓
tar -xzv -C /tmp -f a.tar.gz 檔案名(寫用t檢視時顯示的有路徑路徑檔案名)
9) 壓縮指定路徑下的檔案到目前目錄
tar -zcv -C /usr/local/src/ -f 123.tar.gz 123.txt
10) tar通用解壓
tar -xf[v] 檔案名 (解壓)-v顯示過程
常用網絡指令
w 查詢目前登入伺服器的所有使用者
18:15:08 up 15 min, 1 user, load average: 0.00, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.10.10.1 18:15 0.00s 0.00s 0.00s w
開機時間 登入時間 登入使用者數 平均負載 1分鐘前 5分鐘前 15分鐘前
使用者名 登陸中端 來源ip 登陸持續時間 使用者閑置時間 所有程序占用CPU時間 正在進行的操作
who 查詢登入使用者
last 列出登入系統相關資訊
lastlog 顯示所有賬戶最後一次登入時間
write 給線上使用者寫消息 (ctrl+d 儲存發送 weith root tty1)
wall 對所有線上使用者說話
mail 郵件 mail 收信,h 列出标題,q 退出
ping 網絡測試(-c指定次數,-s 指定大小 <-s 65536 死亡之ping>)
ifconfig 查詢本機ip
ifconfig eth0 10.10.10.11 netmask 255.255.255.0 臨時配IP
eth0:0 第一塊網卡的第一模拟網卡
netstat 檢視網絡狀态 -an -tuln
telnet ip端口 測試端口是否正常連結
ctrl+]---> quit 退出
netstat tlun (檢視本機所有監聽端口)
-t tcp -u udp -l 監聽 -n 以ip和端口号顯示
關機重新開機
關機
# sync 同步資料,強制把記憶體資料儲存到硬碟
1) shutdown -h 無特殊情況使用
2) init 0 調用核心關機程式,不儲存資料
3) halt 同上
4) poweroff 相當于直接斷電
重新開機
shutdown -r now
reboot 會關閉服務
init 6 相當于強制重新開機
netstat -an | grep ESTABLTSHED | wc-l
檢視端口并查找ESTABLTSHED關鍵字,然後計數
注:沒有所有者的檔案(隻有以下兩種是正常的)
1) 外來檔案(優盤、CD光牒、硬碟、windows下的檔案)
2) 核心産生的檔案(/proc /sys)
/var/log/wtmp 系統登入資訊
/var/run/utmp 系統登入資訊
/var/spool/mail/root 郵件儲存位置
不建議定時重新開機(風險大)
挂載
/etc/fstab 自動挂載配置檔案,設定開機自動挂載
裝置不可設定開機自動挂載
使用UUID對于系統來說其唯一性會更好
mount -a 測自動挂載檔案(準确度不高,不建議使用)
裝置檔案名
CD光牒: redhat 5以前:/dev/hdc
redhat 6以後:/dev/sr0
U盤:和硬碟一樣,需查詢,用 fdisk -l
CD光牒挂載:mount -t iso9600 /dev/sr0 /mnt/cdrom(-t是指定檔案系統,可不寫)
解除安裝:umount /dev/sr0 或 umount /mnt/cdrom
彈出光驅:eject
U盤挂載: mount -t vfat /dev/sdb1 /mnt/usb(vfat=FAT32,fat=FAT16)
mount -o iocharset=utf8 /dev/sdb1 /mnt/usb/(指定中文編碼UTF-8挂載U盤)
解除安裝: umount /dev/sbb1 或 umount /mnt/usb/
鏡像檔案挂載: mount -t iso9660 -o loop 鏡像檔案(*.iso) 挂載點
更改挂載類型: mount -o remount,exec 裝置名/挂載點(remount針對已挂載的)
mount -o remount,rw / 重新将根挂載為讀寫
mount #檢視所有已挂載的裝置資訊
mount -t fs 裝置名(絕對路徑) 挂載點 (fs代表檔案系統)
Linux不識别NTFS檔案系統,隻識别FAT32及以下
終端界面識别中文:
① 安裝中文編碼和中文字型
② 終端要能識别中文
驅動
Linux驅動在核心裡自動加載,無需手工安裝,特殊的需要手工安裝
1) 常用驅動直接放入核心,(必備硬體驅動)
2) 不太常用,絕大多數驅動,以子產品方式放入硬碟 /lib/modules/2.6.32-642.el6.x86_64/kernel
3) 以子產品方式儲存在硬碟的驅動,系統認為不常用,預設不安裝,若要安裝需重新編譯核心并加載(NTFS則如此)
4) Linux徹底不識别的驅動需要手工安裝,(需要廠商提供硬體驅動)
注:
目前系統字型庫 echo $LANG
修改目前系統字型庫 LANG=zh_CN.UTF-8 中文
LANG=en_US 英文
ls -l 樣式改變
在Linux中使用ll或者ls -l指令過程中,日期的顯示總是顯示英文日期,覺的很不爽,那麼怎麼設定顯示的格式是按照我們定義的呢?
1、臨時更改顯示樣式,當回話結束後恢複原來的樣式
export TIME_STYLE='+%Y-%m-%d %H:%M:%S' # 直接在指令中執行即可
2、永久改變顯示樣式,更改後的效果會儲存下來
修改/etc/profile檔案,在檔案内容末尾加入
export TIME_STYLE='+%Y-%m-%d %H:%M:%S'
執行如下指令,使你修改後的/etc/profile檔案配置内容生效
source /etc/profile
3、使用ls -l --time-style=full選項
4、檢視測試
[root@localhost opt]# ll
-rw-r--r-- 1 root root 204018162 2019-05-21 09:26:16 mongodb-3.2.3.tgz
-rw-r--r-- 1 root root 194869554 2019-05-21 09:26:17 zookeeper-3.4.8.tgz