1. 程式人生 > 實用技巧 >重定向、使用者組管理知識總結

重定向、使用者組管理知識總結

重定向

1cd -切換至以前的工作目錄

~+表示當前目錄;~-表示上一次的目錄

wKiom1eev4yi1RHwAABNIFC16QM057.png

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

wKioL1eev8PC3RizAAA1X8DxZBw881.png

3、tr命令

tr – 轉換和刪除字元

vtr [OPTION]... SET1 [SET2]

v 選項:

-c 或——complerment :取字符集的補集

-d 或——delete :刪除所有屬於第一字符集 的字元

-s 或—squeeze-repeats :把連續重複的字元以單獨一個字元表示

-t --truncate-set1 :將第一個字符集對應字元轉化為第二字符集對應的字元

在使用tr命令時,可以通過輸入重定向進行檔案的輸入,無需手動進行鍵盤的輸入。例如:

tr a-zA-Z< /etc/issue

使用“<< 終止詞”命令從鍵盤把多行重導向給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,以此迴圈下去

2STDERR 預設不能通過管道轉發,可利用2>&1 或 或 |& 實現,命令為:ls /error 2&1 | tr a-zA-Z或者ls /error |& tr a-zA-Z

wKioL1eewAmgA9s_AAAnKdyP9x4504.png

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-zA-Z

知識點小結:

1)連結數=檔案“名字數”

2cp -f相當於刪除並覆蓋

3uname -r顯示核心資訊

4)兩條命令的重定向需要將兩個命令括起來。

tee echo ls |tee filename

5set +C取消鎖定,允許覆蓋

set -C鎖定。禁止將內容覆蓋至原檔案,但可追加強制覆蓋 >|

6chsh -s /bin/bash wang shell型別

7getent passwd 使用者名稱:root:x:0:0:root:/root:/bin/bash

8whoami 得到的結果:root

who am i 得到的結果:root pts/0 2016-08-01 08:34 (10.1.44.1)

9)生成隨機數的命令:openssl rand -base64 22

10linux w 命令

詳解功能說明:顯示目前登入系統的使用者資訊。

語法:w [-fhlsuV][使用者名稱稱]

linux w 命令補充說明:執行這項指令可得知目前登入系統的使用者有那些人,以及他們正在執行的程式。單獨執行linux w 命令會顯示所有的使用者,您也可指定使用者名稱稱,僅顯示某位使用者的相關資訊。

linux w 命令引數:

-f  開啟或關閉顯示使用者從何處登入系統。

-h  不顯示各欄位的標題資訊列。

-l  使用詳細格式列表,此為預設值。

-s  使用簡潔格式列表,不顯示使用者登入時間,終端機階段作業和程式所耗費的CPU時間。

-u  忽略執行程式的名稱,以及該程式耗費CPU時間的資訊。

-V  顯示版本資訊。

使用者組管理

一、 使用者

1UID

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

2usermod 使用者屬性修改

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