Linux Shell編程(第一天)____入門

一、基礎入門

理解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)













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章