day5總結筆記

本文內容:

索引節點

硬鏈接與軟鏈接

重定向

用戶組

useradd命令


索引節點:

索引節點包含了一個表,包含了有關文件的元數據,包含:

    文件類型,權限,UID,GID 鏈接數(指向這個文件名路徑名稱個數) 

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

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

有關文件的其他數據。

索引節點與數據是分開存放的。

 

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

 

rm 命令:鏈接數遞減,從而釋放的inode號可以被重用,把數據塊放在空閑列表中 刪除目錄項 數據實際上不會馬上被刪除,但當另一個文件使用數據塊 時將被覆蓋。

 

 mv命令:如果mv命令的目標和源在相同的文件系統,作為mv 命令 用新的文件名創建對應新的目錄項 刪除舊目錄條目對應的舊的文件名 不影響inode表(除時間戳)或磁盤上的數據位置,此時沒有數據被移動!所以速度很快,如果目標和源在一個不同的文件系統, mv相當于cp和rm。

 

硬鏈接:一個文件的一個或多個文件名,本質上是一個文件。

特點:創建硬鏈接會增加額外的記錄項以引用文件 v 

      對應于同一文件系統上一個物理文件 v 

      每個目錄引用相同的inode號。

      創建時鏈接數遞增,刪除文件時,rm命令遞減計數的鏈接

      文件要存在,至少有一個鏈接數,當鏈接數為零時,該文件被刪除

   v 不能跨越驅動器或分區

語法: ln filename [linkname]

t1.png

可以看出,f1和f2實際上是一個文件。

 

 

 

軟鏈接:軟鏈接文件有類似于Windows的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。

t2.png

 

I/O:輸入與輸出

程序:指令+數據 讀入數據:Input 輸出數據:Output 

打開的文件都有一個fd: file descriptor (文件描述符) v

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

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

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

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

STDOUT和STDERR可以被重定向到文件: 

命令 操作符號 文件名

t3.png

 支持的操作符號包括: 

> 把STDOUT重定向到文件 

2> 把STDERR重定向到文件 

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

 

標準輸入重定向:

多行重定向:cat <<E >f1

>

>

>E

 

單行重定向:

cat >f1

xxx

yyy

mail重定向:又稱就地文本

mail -s hi wang <<eof

>aa

>bb

>cc

>eof

 

tr命令:轉換或者刪除字符串

tr [options] str1 str2

eg:

tr a-z A-Z

tr a-z A-Z </etc/issue

選項:

-c:取補集。

-d:刪除字符,不做轉換。

-s:把連續的重復的字符用一個字符顯示。

-t:str1 str2 刪除第一字符集較第二字符集多出的部分。

 

練習:

1、將/etc/issue文件中的內容轉換為大寫后保存至/tmp/issue.out文件中

t4.png

 

2、將當前系統登錄用戶的信息轉換為大寫后保存至/tmp/who.out文件中 v 

t5.png

 

3、一個linux用戶給root發郵件,要求郵件標題為”help”,郵件正文如下: Hello, I am 用戶名,the system version is here,please help me to  check it ,thanks! 操作系統版本信息 

t6.png

 

 

4、將/root/下文件列表,顯示成一行,并文件名之間用空格隔開。

t7.png

5、file1文件的內容為:”1 2 3 4 5 6 7 8 9 10” 計算出所有數字的總和

 t8.png

 

6、刪除Windows文本文件中的'^M'字符 

 

7、處理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4”,只保留其中的數字 和空格

t9.png

 

 

管道(使用符號“|”表示)用來連接命令 命令1 | 命令2 | 命令3 | … ?                                  將命令1的STDOUT發送給命令2的STDIN,命令2的 STDOUT發送到命令3的 STDIN ,STDERR默認不能通過管道轉發,可利用2>&1 或 |& 實現。 ? 

最后一個命令會在當前shell進程的子shell進程中執行用來組合多種工具的功能。

eg:ls  | tr 'a-z' 'A-Z'。

 

tee:可以繼續標準輸出。同時寫進文件中。

 

set -C:禁用覆蓋功能。

set +C:取消禁用。

 

/dev/null:垃圾桶,不占空間。

用戶,組和權限

linux用戶:Uername/UID

管理員:root uid為0

一般用戶:1-65535

系統用戶:1-499 對守護進程獲取資源進行權限分配。(不需要登錄)

登錄用戶:500+

 

組:Groupname/GID

管理員組:root,0

普通組:

系統組:1-499

用戶組:500+

 

主要組:用戶必須屬于一個且只有一個主組

組名同用戶名,且僅包含一個用戶,又叫私有組。

 

用戶的附加組(輔助組)

一個用戶可以屬于0個或多個附加組。

組的信息保存在/etc/group下。

id 用戶:查看用戶,屬組信息。

 

運行中的程序:進程

以進程發起者身份運行:

root:/bin/cat

liuzhuo:/bin/cat

進程所能訪問資源的權限取決于進程的運行者的身份。

 

用戶和組的配置文件:

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

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

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

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

 

passwd文件格式:

login name:登錄用名(wang) v

passwd:密碼 (x) v

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

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

GECOS:用戶全名或注釋 v

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

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

 

 

 

chsh -s+路徑 改shell

linux通過UID來識別是管理員還是普通用戶。只認ID 不認人。

 

shadow文件格式 

登錄用名 v

用戶密碼:一般用sha512加密 v($6)

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

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

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

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

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

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

 

group配置文件:

groups:查看某個用戶屬于哪個用戶組

id +用戶名:查看用戶的信息。

root:x:0:(組的成員) 0為組id。

默認情況下,創建一個文件的所有者和所屬組同名。

bin:::bin,daemon

第一個組名,第二個密碼,第三個放該組的管理員賬戶

newgrp:臨時性切換屬組。

 

vipw=vi /etc/passwd

vigr=vi /etc/group  具有語法檢查功能。

 

pwck:檢查語法

grpck:檢查語法

 

useradd:創建用戶

useradd [options] 用戶名

useradd -u 1234  zhang 指定UID

useradd -g wang li 指定組名或者GID

-o 配合-u 選項,不檢查UID的唯一性 

-c "COMMENT":用戶的注釋信息 -d HOME_DIR: 以指定的路徑(不存在)為家目錄 -s SHELL: 指明用戶的默認shell程序 可用列表在/etc/shells文件中。

對于服務等系統應用,shell可以設置成為/sbin/nologin 同時加-r定義為系統用戶,這樣就不會自動創建家目錄。

 -G GROUP1[,GROUP2,…]:為用戶指明附加組,組必須事先存

-N 不創建私用組做主組,使用users組做主組 

-r: 創建系統用戶 CentOS 6: ID<500,CentOS 7: ID<1000

 

家目錄模板文件夾:/etc/skel

cat /etc/default/useradd 添加用戶的配置文件

useradd -D 顯示useradd配置文件信息。

 

原創文章,作者:liuzhuo,如若轉載,請注明出處:http://www.www58058.com/30503

(0)
liuzhuoliuzhuo
上一篇 2016-08-08
下一篇 2016-08-08

相關推薦

  • 編譯安裝MariaDB源碼包

        因為MySQL的發展趨勢不甚樂觀,MariaDB已替代MySQL被CentOS 7做為默認組件,如果想在CentOS 6中使用最新的MariaDB,則需要我們手動安裝,其安裝方式有三種:     1、RPM包安裝     2、二進制…

    Linux干貨 2015-06-08
  • PHP通過Thrift操作Hbase

    HBase是一個開源的NoSQL產品,它是實現了Google BigTable論文的一個開源產品,和Hadoop和HDFS一起,可用來存儲和處理海量column family的數據。官方網址是:http://hbase.apache.org 一 、HBase訪問接口 1.  Native Java API,最常規和高效的訪問方式,適合Hadoop …

    Linux干貨 2015-05-18
  • Linux網絡管理

                          Linux網絡管理   本章內容: 網絡概念 OSI七層模型 網絡設備 TCP/IP IP地址 配置網絡 實現網絡組 測試網絡 網絡工具   網絡用戶應用程序: WEB瀏覽器(…

    系統運維 2016-09-12
  • 20本最好的Linux免費書籍

    前些天Neo推薦了一個網站有《超過100本的linux免費書籍》,這里,我也向大家推薦20本最好的Linux免費書籍,當然,也是英文版的。 1. Ubuntu Pocket Guide and Reference 一本介紹關于Ubuntu 8.04和8.10的使用書。 Website www.ubuntupocketguide.com Author Keir…

    Linux干貨 2015-04-01
  • Shell 變量類型及用法

    一、      什么是變量          變量源于數學,在計算機語言中能儲存計算機結果或能表示值的抽象概念,變量可以由變量名訪問,在指令語言中,變量通常是可變的。Linux是一個多用戶的操作系統。每個用戶登錄系統后,都會有一個…

    Linux干貨 2016-08-12
欧美性久久久久