重定向和管道的應用與用戶、組的創建及更改
一.輸入、輸出重定向與tr指令的應用
程序的數據流有三種,分爲標準輸入,標準輸出和錯誤輸出。其中的文件描述符fd(file descripter)分別使用0,1,2表示。數據流的輸入輸出依靠於鼠標鍵盤和顯示器這些終端設備連接。但是當我們想要將這些數據流導向(或被導向)指定的文件或設備時,就需要重定向的概念了。
1.輸入重定向
輸入重定向的符號爲:< 將符號後面的設備或文件導入前面的命令中。
舉例:~]#cat < /etc/issue 此命令表示顯示/etc/issue的文件內容
2.輸出重定向
輸出重定向的符號位:> 將符號前面的命令輸出導入後面的設備或文件中,其中如果被導入的文件內存在內容,> 默認覆蓋原內容。如果不想將原內容覆蓋,使用 >> 符號(表示追加輸出特性)即可。當輸出流爲錯誤輸出流時,如果想將其重定向至指定文件時,需要使用2>或2>>纔可以。如果想要合併正常輸出流與錯誤輸出流,CentOS6和以前的版本使用2>&1,用法如下:
COMMAND >(>>) /path/to/somefiles 2>&1
而CentOS7可以使用&>(>>)的形式,用法如下:
COMMAND &> /path/to/somefiles
3.tr指令的相關使用方法
tr:translate or delete characters 轉換或刪除字符命令。
使用格式:tr [option]... SET1 [SET2] 把輸入的數據當中的字符,凡是在SET1定義範圍內出現的,
統統對未轉換爲SET2出現的字符,用法如下:
tr [a-z] [A-Z] < /etc/issue /etc/issue內容小寫字母全部變爲大寫字母。
其最常見選項的用法爲-d,表示刪除字符:tr -d SET1 < /path/from/simefile. 當我們更改字符時,tr命令常常與glob通配符一起使用,用以達到更方便的用途。
舉例:~]#tr -d [[:digit:]] < /etc/issue >/testdir/file1 表示刪除/etc/issue內的所有數字字符,將新內容重定向輸出至新文件/testdir/file1中,如果/testdir目錄下不存在名爲file1的文件,就新創建一個。
tr命令的選項具有多種形式,具體使用方式可以參考man tr在幫助手冊中查詢。
二.管道的使用以及其靈活性
當系統執行一個命令得出結果顯示在終端設備上後,用戶如果需要這個結果輸出並再次使用就會顯得非常麻煩。爲了解決這一問題,系統定義管道的概念:連接程序,實現將前一個命令的輸出直接向至後一個程序當輸入,符號用 | 來表示。
舉例:~]#echo “dafeigezuishuai”| tr [a-z] [A-Z] 的輸出結果爲:DAFEIGEZUISHUAI
三.用戶、組的創建、修改以及刪除命令
linux系統衆所周知是一個可以多用戶操作的系統,爲了更好的管理文件的使用權限,系統定義了文件的屬主以及屬組的概念。當用戶使用 ll(ls -l的別名) 指令時,能夠顯示目錄下文件的詳細信息,其中顯示了文件的類型,權限,以及屬主和屬組,大小,創建日期以及名稱。其用戶與所屬組的信息都記錄在/etc/passwd下,使用cat或tail可以快速查看。
1.用戶添加、修改與刪除
用戶的創建、修改與刪除的命令分別爲:useradd、usermod、userdel.其命令格式都爲如下:
useradd [option]... USERNAME
usermod [option]... USERNAME
userdel [option]... USERNAME
其中選項有多種,下面列出常用選項:
-u:指定(更改)UID;
-g:指定(更改)基本組(此組必須存在)
-c:指定(更改)註釋信息
-d:指定(更改)家目錄
-s:指定(更改)用戶的默認shell
-G:指定(更改)用戶所屬的附加組
useradd -r :創建系統用戶
usermod -l :修改用戶名 eg:usermod -l mcgeewang mcgee表示將mcgee用戶名改爲mcgeewang,前提時mcgee用戶一定要存在
usermod -o:忽略重複信息修改
userdel -r :刪除用戶時一併刪除其家目錄
2.組的添加修改以及用戶的歸納
組的創建以及修改刪除與用戶基本相同,其命令爲:groupadd、groupmod、groupdel.其中注意的是修改組名稱選項爲-n而非-l:
groupmod -n newname oldname
查看組所包含的用戶信息配置文件位置在/etc/group中,其顯示格式爲:
admins:123:1003:natasha,harry 表示admins組包含natasha,harry兩個組,組密碼爲123,GID爲1003