重定向、使用者組管理知識總結
重定向
1、cd -切換至以前的工作目錄
~+表示當前目錄;~-表示上一次的目錄
2、重定向
標準輸入(STDIN )-0 預設接受來自鍵盤的輸入
標準輸出(STDOUT )-1 預設輸出到終端視窗
標準錯誤(STDERR )-2 預設輸出到終端視窗
> 把STDOUT 重定向到檔案
2> 把STDERR 重定向到檔案
&> 把所有輸出重定向到檔案
( ) :合併多個程式的STDOUT
( cal 2007 ; cal 2008 ) > all.txt
舉例:
標準輸出和錯誤輸出各自定向至不同位置:
COMMAND > /path/to/file.out 2> /path/to/error.out
標準輸出和錯誤輸出定向至相同位置:
COMMAND > /path/to/file.out 2>&1
COMMAND >> /path/to/file.out 2>>&1
3、tr命令
tr – 轉換和刪除字元
vtr [OPTION]... SET1 [SET2]
v 選項:
-c 或——complerment :取字符集的補集
-d 或——delete :刪除所有屬於第一字符集 的字元
-s 或—squeeze-repeats :把連續重複的字元以單獨一個字元表示
-t 或--truncate-set1 :將第一個字符集對應字元轉化為第二字符集對應的字元
在使用tr命令時,可以通過輸入重定向進行檔案的輸入,無需手動進行鍵盤的輸入。例如:
使用“<< 終止詞”命令從鍵盤把多行重導向給STDIN,直到 終止詞 位置的所有文字都發送給STDIN,有時被稱為就地文字(heretext)
例子:$ mail -s "Please Call" [email protected] <<END
> Hi Wang,
>
> Please give me a call when you get in. We may need
> to do some maintenance on server1.
>
> Details when you're on-site,
> Zhang
> END
4、|管道
管道(使用符號“| ”表示)用來連線命令,符合linux的思想,利用許多小程式完成大的複雜的程式。
命令1 | 命令2 | 命令3 | …
(1)將命令1 的STDOUT 傳送給命令2 的STDIN ,命令2的 的
STDOUT 傳送到命令3 的STDIN,以此迴圈下去
(2)STDERR 預設不能通過管道轉發,可利用2>&1 或 或 |& 實現,命令為:ls /error 2&1 | tr “a-z”“A-Z”或者ls /error |& tr “a-z”“A-Z”
(3)最後一個命令會在當前shell 程序的子shell 程序中執行用來,我們執行復雜命令可通過連線多個命令實現。例如: less :一頁一頁地檢視輸入:
$ ls -l /etc | less
mail: : 通過電子郵件傳送輸入:
$ echo "test email" | mail \
-s "test" [email protected]
vlpr :把輸入傳送給印表機
$ echo "test print" | lpr -P printer_name
結合使用tee命令,既可以使用匯入至下一個命令執行,又可以顯示在螢幕上。例如: ls |tee f4|tr “a-z”“A-Z ”
知識點小結:
(1)連結數=檔案“名字數”
(2)cp -f相當於刪除並覆蓋
(3)uname -r顯示核心資訊
(4)兩條命令的重定向需要將兩個命令括起來。
tee echo ls |tee filename
(5)set +C取消鎖定,允許覆蓋
set -C鎖定。禁止將內容覆蓋至原檔案,但可追加強制覆蓋 >|
(6)chsh -s /bin/bash wang 改shell型別
(7)getent passwd 使用者名稱:root:x:0:0:root:/root:/bin/bash
(8)whoami 得到的結果:root
who am i 得到的結果:root pts/0 2016-08-01 08:34 (10.1.44.1)
(9)生成隨機數的命令:openssl rand -base64 22
(10)linux w 命令
詳解功能說明:顯示目前登入系統的使用者資訊。
語法:w [-fhlsuV][使用者名稱稱]
linux w 命令補充說明:執行這項指令可得知目前登入系統的使用者有那些人,以及他們正在執行的程式。單獨執行linux w 命令會顯示所有的使用者,您也可指定使用者名稱稱,僅顯示某位使用者的相關資訊。
linux w 命令引數:
-f 開啟或關閉顯示使用者從何處登入系統。
-h 不顯示各欄位的標題資訊列。
-l 使用詳細格式列表,此為預設值。
-s 使用簡潔格式列表,不顯示使用者登入時間,終端機階段作業和程式所耗費的CPU時間。
-u 忽略執行程式的名稱,以及該程式耗費CPU時間的資訊。
-V 顯示版本資訊。
使用者組管理
一、 使用者
1、UID
Linux 使用者:Username/UID
v 管理員:root, 0
v 普通使用者:1-65535
系統使用者:1-499 (CENTOS6 ), 1-999
對守護程序獲取資源進行許可權分配
登入使用者:500 (CENTOS6 )+, 1000+
互動式登入
2、密碼
/etc/passwd :使用者及其屬性資訊( 名稱、UID 、主組ID 等)
/etc/shadow:使用者密碼及相關屬性
3、使用者管理
(1)useradd使用者建立
useradd [options] LOGIN
-u UID : [UID_MIN, UID_MAX] 定義在/etc/login.defs
-o 配合-u 選項,不檢查UID 的唯一性
-g GID :指明使用者所屬基本組,可為組名,也可以GID
-c "COMMENT" :使用者的註釋資訊
-d HOME_DIR: 以指定的路徑( 不存在) 為家目錄
-s SHELL : 指明使用者的預設shell 程式
可用列表在/etc/shells 檔案中
-G GROUP1[,GROUP2,...] :為使用者指明附加組,組必須事先存
在
-N 不建立私用組做主組,使用users 組做主組
-r: 建立系統使用者 CentOS 6: ID<500 ,CentOS 7: ID<1000
預設值設定:/etc/default/useradd 檔案中
顯示或更改預設設定:
useradd -D
useradd –D -s SHELL
(2)usermod 使用者屬性修改
usermod [OPTION] login
-u UID: 新UID
-g GID: 新基本組
-G GROUP1[,GROUP2,...[,GROUPN]]] :新附加組,原來的附加
組將會被覆蓋;若保留原有,則要同時使用-a 選項,表示append; ;
-s SHELL :新的預設SHELL; ;
-c 'COMMENT' :新的註釋資訊;
-d HOME: 新家目錄不會自動建立,原家目錄中的檔案不會同時移
動至新的家目錄;若要建立新家目錄並移動原家資料,同時使用-m 選項
-l login_name: 新的名字;
-L: lock 指定使用者, 在/etc/shadow 密碼欄的增加 !
-U: unlock 指定使用者,將 將 /etc/shadow 的 密碼欄的 ! 拿掉
-e YYYY-MM-DD: 指明使用者賬號過期日期;
-f INACTIVE: 設定非活動期限;
(3)userdel使用者刪除
userdel [OPTION]... login
-r: 刪除使用者家目錄;
4、使用者組管理
v 群組名稱:就是群組名稱
v 群組密碼:通常不需要設定,密碼是被記錄在/etc/gshadow
v GID的 :就是群組的 ID。不建立更安全
v 以當前組為附加組的使用者列表(
v 組管理員列表:組管理員的列表,更改組密碼和成員
(1)groupadd建立組
groupadd [OPTION]... group_name
-g GID: 指明GID 號;[GID_MIN, GID_MAX]
-r: 建立系統組;
CentOS 6: ID<500
CentOS 7: ID<1000
(2)groupmod使用者組屬性修改
組屬性修改:groupmod
groupmod [OPTION]... group
-n group_name: 新名字
-g GID: 新的GID;
(3)groupdel使用者組刪除
groupdel GROUP
(4)更改和檢視組成員
groupmems [options] [action]
options:
-g, --group groupname 組 更改為指定組 ( 只有root)
Actions:
-a, --add username 指定使用者加入組
-d, --delete username 從組中刪除使用者
-p, --purge 從組中清除所有成員
-l, --list 顯示組成員列表
v groups [OPTION].[USERNAME]... 檢視使用者所屬組列表
轉載於:https://blog.51cto.com/babyhanggege/1832860