linux 第二課
一、命令列基礎
- 命令格式
基本用法
命令字 [選項] … [引數1] [引數2]…
[ ] 表示裡面的內容可有可無
在執行一個命令的時候,命令字必須存在,選項和引數可有可無
命令字 選項 引數之間必須有空格
各元件解析
選項:用來調控執行方式
單個字元一般用-
單詞一般用--
eg:
# ls -l
# ls --help*
引數:命令的操作物件,如文件的存放路徑、使用者名稱等
2.命令列編輯技巧
tab鍵
功能:命令或者路徑的補齊,如果輸入的內容唯一標識某一個命令或者路徑,tab一次會自動補齊。如果不唯一則tab2次顯示出以輸入內容開頭的所有的命令或者路徑
拍錯
3.快捷鍵
Ctrl + l:清空整個螢幕
Ctrl + c:廢棄當前編輯的命令列
Esc+.:貼上上一個命令的引數
二、瀏覽目錄和檔案
1.ls命令
格式:ls [選項]... [目錄或檔案路徑]
常用命令選項
-A:包括名稱以 . 開頭的隱藏文件
-l:以長格式顯示
-h:必須和-l配合用,提供易讀的容量單位(K、M等)
-d:顯示目錄的屬性
eg:
# ls /root
# ls -l /root
# ls -A /root
# ls -lh /root*
補充:
絕對路徑:以/開頭的路徑
相對路徑:不以/開頭的路徑
萬用字元 * 和 ?
- 匹配任意0-多個字元
?匹配任意單個字元
eg:
# ls /dev/tty
# ls /dev/tty?
# ls /dev/tty??
2.cat命令
檢視檔案的內容
# cat /etc/resolv.conf //檢視DNS地址
三、建立目錄和檔案
1.mkdir命令
建立目錄
-p 遞迴建立目錄
eg:
[[email protected] /]# cd /opt/
[[email protected] opt]# ls
[[email protected] opt]# mkdir ntd1711
[[email protected] opt]# ls
[[email protected]t opt]# mkdir ntd1712
[[email protected] opt]# ls
[[email protected]
[[email protected] opt]# mkdir -p ntd1801/group1/huangsir
[[email protected] opt]# ls
[[email protected] opt]# ls ntd1801/
[[email protected] opt]# ls ntd1801/group1/
[[email protected] opt]# ls -R ntd1801/
問答題
a.請問下面命令建立了幾個目錄?
b.這幾個目錄分別建立在什麼位置?
*# mkdir -p ntd1802/ group2 /xushuai
2.touch命令
建立檔案
touch 檔名…
eg:
# cd /vod/movie/cartoon
# mkdir -p /vod/movie/cartoon
# cd /vod/movie/cartoon/
# touch Mulan.mp4 NeZhaNaoHai.mp4
*# ls -lh .mp4
四、複製,移動,刪除*
1.cp命令
格式:cp [選項]... 原檔案… 目標路徑
常用命令選項
-r:遞迴,複製目錄時必須有此選項
-p:保持原檔案的許可權、修改時間等屬性不變
eg:
[[email protected] ~]# ls -ld /backup
[[email protected] ~]# mkdir /backup
[[email protected] ~]# ls -ld /backup
[[email protected] ~]# cp -r /boot/grub2 /etc/host.conf /backup/
[[email protected] ~]# ls -ld /backup/
[[email protected] ~]# cp /boot/ /backup/
[[email protected] ~]# ls -ld /backup/
[[email protected] ~]# cp -r /boot/ /backup/
[[email protected] ~]# ls -ld /backup/*
2.rm刪除
格式:rm [選項]... 檔案或目錄…
常用命令選項
-r、-f:遞迴刪除(含目錄)、強制刪除
eg:
[[email protected] ~]# ls -ld /backup/
[[email protected] ~]# rm /backup/host.conf
[[email protected] ~]# rm -f /backup/grub2/
[[email protected] ~]# rm -rf /backup/grub2/
[[email protected] ~]# rm -rf /backup/boot/
[[email protected] ~]# ls -ld /backup/
3.mv移動或者重新命名
格式:mv [選項]... 原檔案… 目標路徑
eg:
[[email protected] ~]# ls -l /vod/movie/cartoon/Mulan.mp4
[[email protected] ~]# mv /vod/movie/cartoon/Mulan.mp4 /backup/
[[email protected] ~]# ls -l /backup/
[[email protected] ~]# mv /backup/Mulan.mp4 /backup/HuaMulan.mp4
[[email protected] ~]# ls -l /backup/
四、Vim文字編輯器
- 三種模式
命令模式:檔案開啟後的預設模式,只能檢視檔案內容不能修改
輸入模式:可以編輯和修改
末行模式:儲存退出 - 切換
命令模式 --> 輸入模式 按i鍵
命令模式 --> 末行模式 按:鍵
輸入模式和末行模式 --> 命令模式 按Esc鍵
備註:輸入模式和末行模式不能直接切換,需要經過命令模式 - vim filename
如果filename存在則開啟這個檔案
如果filename不存在則新建這個檔案
實驗
- 在 /root/ 目錄下新建檔案 hello.sh
1)錄入內容“Hello World !!!”
2)儲存後使用 cat 命令確認檔案內容 - 修改系統檔案 /etc/hosts
1)在末尾增加一行內容“127.0.0.1 www.baidu.com”
2)使用 ping 命令測試到 www.baidu.com 的連通性,觀察結果
# ls /root/hello.sh
# vim /root/hello.sh
按i鍵
輸入 Hello World!!!
按esc鍵
按:
wq!
# ls /root/hello.sh
# cat /root/hello.sh
4.命令模式操作
游標行內調整
^ = Home鍵 移動游標到行首
$ = End鍵 移動游標到行尾
游標行間的調整
gg 跳轉到檔案的第一行
G 跳轉到檔案的最後一行
複製,貼上,刪除
yy 複製當前行
#yy 複製當前往下#行
p 當前游標下貼上
delete 刪除當前游標所在的單個字元
dd 刪除(剪下)當前行
#dd 刪除(剪下)當前游標往下到#行
查詢
/world 當前游標往下查詢world
n 下一個
eg:
[[email protected] ~]# rm -rf /tmp/*
[[email protected] ~]# mkdir /tmp/test01
[[email protected] ~]# cp /etc/mail.rc /tmp/test01/
[[email protected] ~]# ls /tmp/test01/mail.rc
[[email protected] ~]# vim /tmp/test01/mail.rc
5.末行模式操作
:w 儲存
:q 退出
:wq 儲存並退出
:wq! 強制儲存並退出
:w /root/xxx.file 把當前檔案另存為/root/xxx.file
:r /root/xxx.file 把/root/xxx.file檔案載入到當前檔案中
6.查詢替換
:s/old/new 替換當前行第一個old為new
:s/old/new/g 替換當前行所有的old為new
:n,m s/old/new/g 替換第n-m行所有的old為new
:% s/old/new/g 替換檔案內所有的old為new
u 撤銷
eg:
[[email protected] test01]# ls /etc/passwd /tmp/test01/passwd
[[email protected] test01]# cp /etc/passwd /tmp/test01/
[[email protected] test01]# ls /etc/passwd /tmp/test01/passwd
[[email protected] test01]# vim /tmp/test01/passwd
在末行模式輸入
/root
:s/root/feige
u
:s/root/feige/g
u
:1,10s/root/feige/g
u
:%s/root/feige/g
u
:q!
顯示和關閉行號
:set nu|nonu
五、管理使用者和組
1.使用者管理
a.使用者分類
超級使用者:管理員賬戶root uid為0
系統使用者:系統服務產生 uid範圍 1 ~ 999
普通使用者:管理員自己建立的賬戶,uid範圍 1000 ~ 60000
b.建立使用者
# id 賬戶名 驗證系統是否存在這個賬戶
# useradd 賬戶名 建立賬戶
c.設定密碼
#passwd 賬戶 設定密碼
d.修改賬戶資訊
#usermod
-l 新賬戶 舊賬戶 修改登入名字
e.刪除賬戶
#userdel 賬戶 刪除賬戶
-r 連同家目錄一起刪除
總結:
當預設建立一個普通使用者的時候,會在/home下建立一個同名的資料夾。
這個資料夾就是建立使用者的家目錄
eg:
[[email protected] ~]# id nvshen
[[email protected] ~]# useradd nvshen
[[email protected] ~]# id nvshen
[[email protected] ~]# passwd nvshen
[[email protected] ~]# id miaodt
[[email protected] ~]# id nvshen
[[email protected] ~]# usermod -l miaodt nvshen
[[email protected] ~]# id miaodt
[[email protected] ~]# id nvshen
[[email protected] ~]# usermod -l nvshen miaodt
[[email protected] ~]# id miaodt
[[email protected] ~]# id nvshen
[[email protected] ~]# userdel nvshen
實驗:
1.新建名為 nvshen 的使用者賬號,將密碼設定為 1234567
測試以使用者 nvshen 遠端登入到本機系統
2.將此使用者的家目錄遷移到 /opt/nvshen 目錄
重新以使用者 nvshen 遠端登入本機系統,確認當前 pwd 工作目錄位置
3.徹底刪除名為 nvshen 的使用者賬號
檢查其ID資訊,檢視提示結果。檢查其家目錄是否可用
[[email protected] ~]# id nvshen
[[email protected] ~]# useradd nvshen
[[email protected] ~]# id nvshen
[[email protected] ~]# passwd nvshen
[[email protected] ~]# ssh [email protected]
[[email protected] ~]$ pwd
[[email protected] ~]$ whoami
[[email protected] ~]$ exit
[[email protected] ~]# ls -ld /opt/nvshen
[[email protected] ~]# ls -ld /home/nvshen/
[[email protected] ~]# usermod -d /opt/nvshen nvshen
[[email protected] ~]# ls -ld /opt/nvshen
[[email protected] ~]# mv /home/nvshen/ /opt/
[[email protected] ~]# ls -ld /opt/nvshen
[[email protected] ~]# ssh [email protected]
[[email protected] ~]$ pwd
[[email protected] ~]$ exit
[[email protected] ~]# id nvshen
[[email protected] ~]# ls -ld /opt/nvshen/
[[email protected] ~]# userdel nvshen
[[email protected] ~]# id nvshen
[[email protected] ~]# ls -ld /opt/nvshen/
2.組管理
a.建立組
#groupadd 組名
-g gid 建立組的時候指定gid
b.給組新增刪除成員(使用者)
#gpasswd
-a:新增指定使用者為組成員
-d:從組內刪除指定的成員使用者
c.刪除組
#groupdel
eg:
[[email protected] ~]# id nvshen
[[email protected] ~]# useradd nvshen
[[email protected] ~]# id nvshen
[[email protected] ~]# groupadd -g 600 stugrp
[[email protected] ~]# gpasswd -a nvshen stugrp
[[email protected] ~]# id nvshen
[[email protected] ~]# groupdel stugrp
[[email protected] ~]# id nvshen