歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

DAY5:linux文件系統(3)+重定向和管道+用戶組及權限管理(1)

7月29號,馬哥linux學習第五天,學習內容主要:

一、索引節點

二、硬鏈接與軟鏈接

三、重定向和管道

四、用戶和用戶組

一、索引節點(index node)一個節點 (索引節點)是在一個表項,包含有關文件的信息 ( 元數據 ),包括:

文件類型,權限,UID,GID

鏈接數(指向這個文件名路徑名稱個數)

該文件的大小和不同的時間戳

指向磁盤上文件的數據塊指針

有關文件的其他數據

一個目錄是目錄下的文件名和文件inode號之間的映射

CP命令和inode:

分配一個空閒的inode號,在inode表中生成新條目 在目錄中創建一個目錄項,將名稱與 inode編號關聯 拷貝數據生成新的文件

cp -f /etc/issue/ f1 將/etc/issue/刪除再創建f1文件

rm命令和inode:

鏈接數遞減,從而釋放的inode號可以被重用

把數據塊放在空閒列表中

刪除目錄項 (數據實際上不會馬上被刪除,但當另一個文件使用數據塊時將被覆蓋)

mv命令和inode:

目標和源在相同的文件系統:用新的文件名創建對應新的目錄項 刪除舊目錄條目對應的舊的文件名 不影響inode表(除時間戳)或磁盤上的數據位置:沒有 數據被移動!

目標和源在一個不同的文件系統: mv相當於cp和rm

二、硬鏈接與軟鏈接硬鏈接

語法: ln filename [linkname ]

創建硬鏈接會增加額外的記錄項以引用文件;對應於同一文件系統上一個物理文件;每個目錄引用相同的inode號;創建時鏈接數遞增;刪除文件時: rm命令遞減計數的鏈接;文件要存在,至少有一個鏈接數當鏈接數為零時,該文件被刪除;不能跨越驅動器或分區,不能給目錄創硬鏈接。

軟鏈接

語法:ln -s filename [linkname]

一個符號鏈接指向另一個文件;ls - l的 顯示鏈接的名稱和引用的文件;一個符號鏈接的內容是它引用文件的名稱;可以對目錄進行;可以跨分區;指向的是另一個文件的路徑,其大小為指向的路徑字符串的長度;不增加或減少目標文件inode的引用計數。

三、重定向標准輸入與輸出:

Linux給程序提供三種I/O設備:

標准輸入(STDIN)-0 默認接受來自鍵盤的輸入

標准輸出(STDOUT)-1 默認輸出到終端窗口

標准錯誤(STDERR)-2 默認輸出到終端窗口

I/O重定向:改變默認位置

STDOUT和STDERR可以被重定向到文件: 命令 操作符號 文件名

支持的操作符號包括:

> 把STDOUT重定向到文件(set -C: 禁止將內容覆蓋已有文件,但可追加 強制覆蓋:>| set +C: 解除禁止)

2> 把STDERR重定向到文件

&> 把所有輸出重定向到文件

( > 文件內容會被覆蓋 >> 原有內容基礎上,追加內容)

標准輸出和錯誤輸出各自定向至不同位置:

COMMAND > /path/to/file.out 2> /path/to/error.out

合並標准輸出和錯誤輸出為同一個數據流進行重定向:

(1)&>:覆蓋重定向 &>>:追加重定向

(2)COMMAND > /path/to/file.out 2> &1 (&1表示同標准正確輸出目錄)

COMMAND >> /path/to/file.out 2> &1

多行重定向:cat <<EOF cat > file <<EOF

():合並多個程序的STDOUT ( cal 2007 ; cal 2008 ) > all.txt

tr命令:轉換和刪除字符

tr [OPTION]... SET1 [SET2]

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

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

-s或―squeeze-repeats:把連續重復的字符以單獨一個字符 表示

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

tr [a-z] [A-Z] 將小寫轉化為大寫(輸入時不能直接回刪,可使用Ctrl+Backspace回刪)

管道

命令1 | 命令2 | 命令3 | …

連接程序,實現將前一個命令的輸出直接定向後一個程序當作輸入的數據流

ls | tr 'a-z' 'A-Z'

STDERR默認不能通過管道轉發,可利用2>&1 或 |& 實現

less :一頁一頁地查看輸入: $ ls -l /etc | less

mail: 通過電子郵件發送輸入: $ echo "test email" | mail \ -s "test" [email protected] lpr:把輸入發送給打印機 $ echo "test print" | lpr -P printer_name

tee命令:一次輸入,兩次輸出(標准輸出+文件)

$命令1 | tee 文件名 | 命令2

把命令1的STDOUT保存在文件名中,然後管道輸入給命令2

cat /etc/issue/ | tee /tmp/issue.tee | tr 'a-z' 'A-Z'

使用: 保存不同階段的輸出;復雜管道的故障排除;同時查看和記錄輸出

特殊設備:

/dev/null

要使用狀態結果而不需要執行結果時,執行結果放入 /dev/null

四、用戶及用戶組用戶user

Linux用戶:Username/UID

管理員:root, 0

普通用戶:1-65535

系統用戶:1-499(CENTOS6), 1-999(CENTOS7) 對守護進程獲取資源進行權限分配

登錄用戶:500(CENTOS6)+, 1000(CENTOS7)+

交互式登錄

組group

Linux組:Groupname/GID

管理員組:root, 0

普通組:

系統組:1-499, 1-999

普通組:500+, 1000+

用戶的主要組(主組):

用戶必須屬於一個且只有一個主組 組名同用戶名,且僅包含一個用戶:私有組

用戶的附加組(輔助組):

一個用戶可以屬於零個或多個輔助組

Linux安全上下文

進程(運行中的程序)所能夠訪問資源的權限取決於進程的運行者的身份

密碼的復雜性策略

使用數字、大寫字母、小寫字母及特殊字符中至少3種

足夠長(至少8位)使用隨機密碼

定期更換;不要使用最近曾經使用過的密碼

加密算法

對稱加密:加密和解密使用一個

非對稱加密:加密和解密使用一對密鑰(公鑰、私鑰)

單向加密::哈希算法,只能加密,不能解密,提取數據的特征碼(定長輸出,雪崩效應)

算法類型:md5 sha1 sha224 sha256 sha384 sha512

用戶和組的主要配置文件

/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)

/etc/group:組及其屬性信息

/etc/shadow:用戶密碼及其相關屬性

/etc/gshadow:組密碼及其相關屬性

passwd 文件格式

①login name:登錄用名(wang)

②passwd:密碼 (x)

③UID:用戶身份編號 (1000)

④GID:登錄默認所在組編號 (1000)

⑤GECOS:用戶全名或注釋

⑥home directory:用戶主目錄 (/home/wang)

⑦shell:用戶默認使用shell (/bin/bash)

shadow文件格式

登錄用名

用戶密碼:一般用sha512加密($n$salt$密碼 其中n為加密類型 salt為每次添加的隨機數)

從1970年1月1日起到密碼最近一次被更改的時間

密碼再過幾天可以被變更(0表示隨時可被變更)

密碼再過幾天必須被變更(99999表示永不過期)

密碼過期前幾天系統提醒用戶(默認為一周)

密碼過期幾天後帳號會被鎖定

從1970年1月1日算起,多少天後帳號失效。

group文件格式

群組名稱:就是群組名稱

群組密碼:通常不需要設定,密碼是被記錄在 /etc/gshadow

GID:就是群組的 ID

以當前組為附加組的用戶列表(分隔符為逗號)

gshdow文件格式

群組名稱:就是群組名稱

群組密碼:

組管理員列表:組管理員的列表,更改組密碼和成員

以當前組為附加組的用戶列表:(分隔符為逗號)

本文出自 “笑猴子” 博客,請務必保留此出處http://xiaomonkey.blog.51cto.com/11869371/1833328

Copyright © Linux教程網 All Rights Reserved