一、基礎入門
理解shell是多種命令的融合,因此首先學習linux的命令。而命令本身有成千上萬,同時參數也很多,因此學會如何查找
使用命令的方法。
1.查找幫助:
#man <command>
2.多條命令同時執行
#ls -l ; date ;w
利用分號來分割,三條命令會逐一執行
[root@sky home]# ls ;date;w
jbb_spec os_iso sky spec testscrip
2016年 05月 11日 星期三 20:10:40 CST
20:10:40 up 14 min, 2 users, load average: 0.05, 0.08, 0.12
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 :0 19:57 ?xdm? 1:41 0.09s gdm-session-wor
root pts/0 :0 20:09 0.00s 0.05s 0.01s w
3.執行shell腳本
1)#sh test.sh
2)首先賦予執行的權限,再執行
#chmod +x test.sh
#./test.sh
二、用戶管理和常用命令
2.1.1用戶常用管理命令
linux由多用戶組成,不同的用戶的角色通過UID來進行識別,即說明用戶的UID是唯一的。
1)添加用戶useradd
使用中#useradd [options] [username]
#useradd test
執行完該命令後會在/etc/passwd文件中添加一行數據,利用tail -l命令查看信息如下加粗部分則爲新建用戶。[root@sky home]# tail -l /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:985:980::/run/gnome-initial-setup/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin
dovenull:x:984:979:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
sky:x:1000:1000:sky:/home/sky:/bin/bash
<strong>test:x:1001:1001::/home/test:/bin/bash</strong> #新建的test用戶
<strong>#查看加密後的用戶</strong>
[root@sky home]# tail -l /etc/shadow
gdm:!!:16899::::::
gnome-initial-setup:!!:16899::::::
avahi:!!:16899::::::
sshd:!!:16899::::::
dovecot:!!:16899::::::
dovenull:!!:16899::::::
oprofile:!!:16899::::::
tcpdump:!!:16899::::::
sky::16899:0:99999:7:::
test:!!:16932:0:99999:7:::
#查看home目錄下是否新建了
[root@sky home]# ls /home/
jbb_spec os_iso sky spec <strong> test</strong> testscrip
由上查看,可以看到test的UID爲1001
通過/etc/shadow可以看到test的密碼,然而由於我們未設置密碼,因此此處顯示!!
最後,我們通過查看/home目錄發現已經創建成功了test用戶的目錄。
useradd中各個options的用法如下表所示
選項 | 意義 |
-g | 用戶添加時指定的用戶私有組,不添加該-g則自動創建與用戶帳號同名的組 |
-G | 用戶添加附屬組 |
-D | 顯示或更改默認的 useradd 配置 |
-d | 新賬戶的主目錄 |
-m | 創建用戶的主目錄 |
-u UID | 新賬戶的用戶UID |
2)修改賬戶usermod
#usermod [options] [username]
usermod常用的選項如下
選項:
-c, --comment 註釋 GECOS 字段的新值
-d, --home HOME_DIR 用戶的新主目錄
-e, --expiredate EXPIRE_DATE 設定帳戶過期的日期爲 EXPIRE_DATE
-f, --inactive INACTIVE 過期 INACTIVE 天數後,設定密碼爲失效狀態
-g, --gid GROUP 強制使用 GROUP 爲新主組
-G, --groups GROUPS 新的附加組列表 GROUPS
-a, --append GROUP 將用戶追加至上邊 -G 中提到的附加組中,
並不從其它組中刪除此用戶
-h, --help 顯示此幫助信息並推出
-l, --login LOGIN 新的登錄名稱
-L, --lock 鎖定用戶帳號
-m, --move-home 將家目錄內容移至新位置 (僅於 -d 一起使用)
-o, --non-unique 允許使用重複的(非唯一的) UID
-p, --password PASSWORD 將加密過的密碼 (PASSWORD) 設爲新密碼
-R, --root CHROOT_DIR chroot 到的目錄
-s, --shell SHELL 該用戶帳號的新登錄 shell
-u, --uid UID 用戶帳號的新 UID
-U, --unlock 解鎖用戶帳號
-Z, --selinux-user SEUSER 用戶賬戶的新 SELinux 用戶映射
由上述表述中,usermod也可以用來修改密碼,但是不建議這麼做,這麼做的結果就是/etc/shadow爲明文。
一般修改密碼使用passwd
#修改密碼爲123456
[root@sky home]# usermod -p 123456 test
#查看祕密發現其爲明文
[root@sky home]# tail -l /etc/shadow
gdm:!!:16899::::::
gnome-initial-setup:!!:16899::::::
avahi:!!:16899::::::
sshd:!!:16899::::::
dovecot:!!:16899::::::
dovenull:!!:16899::::::
oprofile:!!:16899::::::
tcpdump:!!:16899::::::
sky::16899:0:99999:7:::
<span style="color:#FF0000;"><strong>test:123456:16932:0:99999:7:::
</strong></span>
3)刪除帳號userdeluserdel只有一個選項-r,表示刪除用戶的同時刪除/home/下的用戶目錄
<pre name="code" class="plain">[root@sky home]# userdel test2
<strong>#即使刪除用戶/home下的test2目錄仍然存在</strong>
[root@sky home]# ls
jbb_spec os_iso sky spec test test2 testscrip
[root@sky home]# userdel -r test
<strong>#添加-r選項後則/home/test目錄則一起被刪除</strong>
[root@sky home]# ls
jbb_spec os_iso sky spec test2 testscrip
4)帳號口令管理——passwd
利用passwd [option] [username]來進行添加或修改密碼。
修改密碼一般要求輸入兩次最後則完成
[root@sky home]# passwd test
更改用戶 test 的密碼 。
新的 密碼:
無效的密碼: 密碼未通過字典檢查 - 過於簡單化/系統化
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
2.1.2 用戶組管理常用命令
用戶組和用戶的關係是多對多的。
用戶組的管理命令:groupadd、groupmod、groupdel
由命令可見,其類似於用戶的操作命令分爲添加、修改、刪除。
[root@sky home]# groupadd -g 6666 test2
[root@sky home]# tail -l /etc/group
slocate:x:21:
avahi:x:70:
sshd:x:74:
dovecot:x:97:
dovenull:x:979:
oprofile:x:16:
tcpdump:x:72:
sky:x:1000:
test:x:1001:
<strong>test2:x:6666:</strong>
[root@sky home]# groupadd test3
[root@sky home]# tail -l /etc/group
avahi:x:70:
sshd:x:74:
dovecot:x:97:
dovenull:x:979:
oprofile:x:16:
tcpdump:x:72:
sky:x:1000:
test:x:1001:
test2:x:6666:
<strong>test3:x:6667:</strong>
由上可見,groupadd添加強制UID選項後,則有自己的GID如上test2的6666;而不添加-g選項則結果的UID則爲上一個GID加1,爲6667
同理,groupmod和groupdel相似
2.2 文件和目錄操作
文件查看以及目錄操作爲常用的操作,此處列出常用的命令
1)ls ===list 列出信息,下面列出常用的選項
選項 | 意義 |
-a | 顯示所有項目,包括隱藏文件 |
-A | 比-a少'.'和'..'兩個 |
-c | 按照時間修改時間顯示 |
-dl | 得到目錄本身的詳細信息 |
-l | 詳細信息,常用 |
-m | 文件以逗號區分進行顯示 |
-n | 和-l相似,把用戶和組換成ID |
-t | 按時間修改順序 |
常用的ls -l。顯示詳細信息
2)文件複製——cp
建議使用-i選項來避免原來文件損壞
-a:表示複製時保存源文件的各種屬性
-r:表示複製文件夾
3)文件移動或重命名-mv
4)刪除命令——rm
5)創建目錄——mkdir
#mkdir -p /home/test/test32
-p選項可以創建多層路徑
-m:制定權限
給home目錄777的權限
#mkdir -m 777 /home
6)切換目錄——cd
#切換到上次訪問目錄
#cd -
#切換到上級目錄
#cd ..
7)文件權限問題
7:rwx用二進制表示111即7
rwx:讀、寫、執行權限
#chmod /chown/
8)文件查找
示例:查找當前文件夾下,以ra開頭,權限爲755的文件,主要使用print打印
[root@sky script_test]# find . -name 'ra*' -perm 755 -print
./config/shell/rate.sh
./rate.sh
使用-exec選項可以在找到文件後執行其後面的內容,如下面的cat操作
[root@sky script_test]# find /etc/ -type f -name 'neoky*' -exec cat {} \;
NeoKylin Linux Advanced Server release V7Update2 (Potassium)