幾個常用命令、inode及第二周作業

一、cd命令

1、功能

用來進行不同目錄間的切換,屬于內部命令。

2、語法

cd  [-L|-P]  [dir]

-L : 如果要切換到的目錄是一個符號鏈接,就直接切換到符號鏈接名表示的目錄(默認)。

-P : 如果要切換到的目錄是一個符號鏈接,直接接切換到符號鏈接指向的目標目錄。

3、用法說明

cd cd ~ :進入當前用戶的主目錄(“~ ”表示主目錄)。

cd – : 進入此目錄之前所在的目錄。

cd .. :返回上級目錄(“..”表示上級目錄,“.”表示當前目錄)

4、補充

相關的環境變量

$PWD:保存了當前目錄路徑  $OLDPWD:保存了上一次所在的目錄路徑

二、ls命令

1、功能

列出當前目錄(文件)或指定目錄(文件)的信息,是一個別名。

2、語法

ls  [OPTION]…  [FILE]…

-a:顯示所有文件,包括隱藏文件(以“.”開頭的文件 )

-A:顯示所有文件,包括隱藏文件但“ . .. ”兩個文件除外

-l:以長格式顯示文件信息(包括屬性和權限等)

-h:以便于理解的數據大小單位顯示(k\m\g\t…

-t:以文件的最后修改時間(ctime)排序顯示

-F:顯示文件類型(/ :表示目錄 ;* :表示可以執行文件 ;= :表示socket文件 |:表示FIFO文件)

-d:僅列出目錄本身,而不是列出目錄內的文件數據(要列出目錄下的內容可以在目錄后加 * 號)

-i:列出文件的inode

-r:將文件由小到大排列輸出

-R:連同子目錄的內容一起列出,即遞歸顯示

-m:以逗號分隔文件

-1(數字1):將文件顯示成豎列(一行只輸出一個文件)

3、示例

顯示主目錄下的所有內容,包括屬性權限等

[root@localhost ~]# ls -al ~

total 232

dr-xr-x—. 25 root root  4096 Jul 29 08:23 .

-rw-r–r–.  1 root root   100 Sep 23  2004 .cshrc

drwxr-xr-x.  2 root root  4096 Jul 20 17:51 .abrt

drwxr-xr-x.  2 root root  4096 Jul 20 17:51 Desktop

以逗號分隔文件

[root@localhost yum]# ls -m

pluginconf.d, protected.d, vars, version-groups.conf

三、stat命令

1、功能

用于顯示文件的狀態信息

2、語法

stat  [OPTION]…  FILE…

-L:顯示硬鏈接的數據

-f:顯示文件系統狀態而非文件狀態

-t:以簡潔的方式顯示信息

3、示例

顯示CentOS 7 的/bin目錄的信息

blob.png 

四、touch命令

1、功能

用于改變文件的時間戳和創建空白文件

2、語法

 touch [OPTION]… FILE…

-a:僅修改訪問時間(atime

-c:僅修改文件的時間,若文件不存在不創建任何文件

-m:僅修改變動時間mtime

-d:用指定的時間代替當前時間

-t:用指定時間[[CC]YY]MMDDhhmm[.ss]的格式代替當前時間

3、示例

創建空白文件test.txt

[root@localhost ~]# touch test.txt

test.txt文件改為3天前

[root@localhost ~]# touch -d 3 day ago test.txt  

五、cp命令

1、功能

復制文件和目錄

2、語法

 cp [OPTION]… [-T] SOURCE DEST

 cp [OPTION]… SOURCE… DIRECTORY

 cp [OPTION]… -t DIRECTORY SOURCE…

-a:用于備份,相當于 -dR –preserve=all

-d:若原文件為鏈接文件,則復制鏈接文件的屬性而非文件本身

-f:若文件已經存在但無法打開,則刪除后再嘗試創建并復制

-i:覆蓋已有文件之前先詢問用戶

-l:對源文件創建硬鏈接,而非復制文件

-p:保留源文件的屬性,等同于–preserve=mode,ownership,timestamps

-r,-R:遞歸復制

-s:復制成為符號鏈接(symbolic link

-v:顯示復制的詳細信息

-u:源文件比目標文件新才會執行復制操作

3、說明

blob.png 

4、示例

root身份將主目錄下的.bashrc文件復制到/tmp下,并重命名為bashrc

cp /root/.bashrc /tmp/bashrc

備份/var/log/wtmp文件到主目錄下,并保持其所有屬性不變

cp /var/log/wtmp ~

六、mv命令

1、功能

移動或重命名文件,當文件在同目錄下使用mv命令時即為重命名文件

2、語法

 mv [OPTION]… [-T] SOURCE DEST

 mv [OPTION]… SOURCE… DIRECTORY

 mv [OPTION]… -t DIRECTORY SOURCE…

-i:若文件已存在,詢問是否覆蓋

-f:若文件已存在,不詢問,直接強制覆蓋

-u:文件存在,且源文件(source)比較新,才會更新

3、示例

將文件test.txt命名為text

[root@localhost ~]# mv test.txt text

將文件text移動到/etc目錄下

[root@localhost ~]# mv text /etc

七、rm命令

1、功能

刪除文件或目錄

2、語法

rm [OPTION]… FILE…

-f:強制刪除

-i:操作前詢問是否刪除

-r:遞歸刪除

3、示例

強制刪除/test目錄

rm -rf /test

八、file命令

1、功能

查看文件的文件類型

2、語法

file [options] <filename>…

-b:列出文件辨識結果,不顯示文件名稱

-c:詳細顯示指令執行過程,便于排錯或分析程序執行

-f:列出文件中文件名的文件類型

-F:使用指定的分隔符號輸出文件名,默認分隔符為“:”

-L:顯示軟連接所指向文件的類型

-z:嘗試解讀壓縮文件的內容

-v:顯示版本信息

3、示例

[root@localhost ~]# file /bin

/bin: directory

[root@localhost ~]# file -b /bin

directory

九、tree命令

1、功能

以樹狀圖結構列出目錄的內容,包括子目錄的內容

2、語法

tree [options] <filename>…

-d:只顯示目錄

-L:指定顯示的層級數目

-P:只顯示符合指定樣式的文件和目錄名稱

-s:列出文件和目錄大小

十、 mkdir命令

1、功能

創建新目錄

2、語法

 mkdir [OPTION]… DIRECTORY…

-p:連同父目錄一起創建,遞歸創建

-m:創建目錄的同時設置目錄的權限

-v:顯示詳細信息

3、示例

在主目錄下創建目錄test/test1/test2,并設定權限位700

blob.png 

十一、rmdir命令

1、功能

刪除空目錄

2、語法

rmdir [OPTION]… DIRECTORY…

-p:連同空的父目錄一起刪除

-v:顯示命令執行的詳細過程

3、示例

刪除目錄test/test1/test2

[root@localhost ~]# rmdir -p test/test1/test2/

十二、alias命令

1.功能

創建命令的別名,可以簡化工作中常用命令的輸入。用戶必須使用單引號將原來的命令引起來,防止特殊字符導致錯誤。可以用unalias命令刪除別名

2、語法

alias [-p] [name[=value] … ]

-p:打印已經設置的命令別名(默認)

3、示例

創建一個命令別名

alias lm=ls -al | more(輸入lm則會分頁顯示)

刪除別名lm

unalias lm

4、補充

(a)在命令行中定義的別名,僅對當前shell有效,如要永久生效,需要定義在配置文件中:~/.bashrc (此文件定義的只對當前用戶有效);/etc/bashrc(對所有用戶有效)。編輯的配置不會立即生效需要shell重新讀配置文件: . ~/.bashrc

(b)別名同原命令同名,若要執行原命令,可使用以下3種方法:“\COMMAND” ;COMMAND ;/PATH/COMMAND(絕對路徑)

十三、索引節點inode

1、什么是inode

操作系統(Operating System)的文件數據除了文件的實際內容外,還包含了很多的文件屬性。通常文件系統會把這些實際的內容存放在date block中,而文件屬性存放在inode(索引節點)中。inode就是一個記錄文件屬性以及文件實際數據存放在那幾個block的容器。

2、inode的內容

文件的訪問權限;

文件的屬主和屬組;

inode編號;

文件的大??;

文件的時間戳(ctime/atime/mtime);

文件真正內容的所存放數據塊指向;

等等其他相關屬性。

文件的inode內容可以使用“stat”命令查看:如下圖

blob.png 

3、inode的大小

inode的數量和大小一般在文件系統格式化時已經固定了。每個inode節點大小一般是128字節或256字節,每個文件都僅會占用一個inode,因此文件系統能創建文件數量跟inode數量有關。date block的大小通常分為1k、2k、4k三種,因此一個文件數據大小要是小于數據塊,那么就會造成磁盤的浪費。

使用命令“df -i”可以查看文件系統的inode使用情況:如下圖

blob.png 

4、inode號碼與directory

每個文件都有一個inode號碼,組成了inode表,操作系統讀取文件是需要找到其inode號,并分析inode所記錄的權限與用戶是否符合,只有符合了才會實際讀取date block里的內容。

directory也是一種文件,其內容包括兩部分:directory下文件(子目錄)的文件名和該文件名對應的inode號碼。假如根的字母目錄A下有一個文件B,那么讀取B文件內容的系統操作如下,系統從inode表中找到目錄Ainode號(假如1000),打開A目錄文件,并讀取文件Binode號(假如20000),然后回到inode表找到與文件B對應的inode號(20000),再通過找到的inode號(20000)來讀取其所指向的date block內容。

使用命令“ls -i”可以查看文件的inode號,如下圖

blob.png 

5、inode的結構

我們知道inode的大小只有128byte256byte,而inode的記錄一個date block號就要占用4byte,如果一個400MB的文件,數據塊大小為4KB,那么至少有10萬條block號碼的記錄,inode哪有這么大的空間記錄信息?因此系統會將inode記錄block號碼的區域定義為12個直接塊指針,一個間接塊指針,一個雙重間接塊指針,一個三重間接塊指針記錄區。如下圖

blob.png 

十四、ln命令

1、功能

用來為文件創件連接,連接類型分為硬連接和符號連接兩種,默認的連接類型是硬連接。如果要創建符號連接必須使用"-s"選項。

2、語法

ln [OPTION]… TARGET LINK_NAME

-s:創建軟連接(符號鏈接)

-f:強行建立文件或目錄的鏈接

3、示例

/root/install.log文件創建硬鏈接

[root@localhost ~]# ln /root/install.log /etc

/root目錄創建軟連接

[root@localhost ~]# ln -s /root /etc/root1

4、硬鏈接特性

硬鏈接不能跨文件系統;

目錄不能創建硬鏈接;

硬鏈接會影響文件的鏈接數(ls -l 查看);

源文件刪除了,其硬鏈接不受影響;

源文件和硬鏈接文件的inode號相同,hard link只是在某個目錄下新建一條文件名鏈接到某inode號碼的關聯記錄而已。

5、軟連接特性

軟連接可以跨文件系統;

目錄可以創建軟連接;

軟連接不影響文件鏈接數

源文件刪除了,軟鏈就會失效;

symbolic link創建的文件為一個獨立的新文件,因此會占用掉inodeblock,即軟連接是一個獨立的文件。

十五、作業

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

        tr '[a-z]' '[A-Z]' < /etc/issue > /tmp/issue.out

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

        w | tr '[a-z]' '[A-Z]' > /tmp/who.out


3、一個linux用戶給root發郵件,要求郵件標題為”help”,郵件正文如下:

Hello, I am 用戶名,the system version is here,pleasehelp me to check it ,thanks!

操作系統版本信息

    echo -e "Hello, I am `echo $USER`,the system version is here,pleasehelp me to check it ,thanks! \n`cat     /etc/centos-release`" | mail -s "help" root


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

        ls -m | tr "," " "  


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

        echo "1 2 3 4 5 6 7 8 9 10" > file

        echo $(tr ' ' '+' <file) | bc


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

  先上傳一個Windows文本Windows.txt

        cat Windows.txt | tr -d "\r" > new_file

7、處理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的數字和空格

        echo xt.,l 1 jr#!$mn2 c*/fe3 uz4 | tr -c -d '[:digit:][:space:]'


8、將PATH變量每個目錄顯示在獨立的一行

        echo $PATH | tr ':' '\n'

9、刪除指定文件的空行

        grep -v '^$' file > file.new

 

10、將文件中每個單詞(字母)顯示在獨立的一行,并無空行

    單詞

            [root@localhost ~]# cat touch.txt

            hello linux ni hao linux pao

            [root@localhost ~]# cat touch.txt | tr " " "\n"

    字母

    [root@localhost ~]# cat touch.txt | tr -d ' ' | grep -oP "."

 

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

(0)
paopao
上一篇 2016-08-02
下一篇 2016-08-02

相關推薦

  • Linux文件系統:從inode理解軟鏈接與硬鏈接

    什么是inode? 在Linux磁盤存儲文件系統中,我們以塊劃分磁盤為兩部分:超級塊(superblock)和數據塊(data block);同時劃分單文件為用戶數據(user data)和元數據(meta data)兩個部分。 用戶數據記錄的是文件的真實內容。比如你的血液、骨骼和各器官等等。 元數據這是附加于文件的屬性信息。比如身高、體重、血型和年齡等等?!?/p>

    Linux干貨 2016-08-07
  • Linux用戶和組命令

                        groupadd命令用戶和工作組管理 groupadd命令用于創建一個新的工作組,新工作組的信息將被添加到系統文件中。-g:指定新建工作組的id;  -r:創建系統工作組,系統工作組的組ID小于500; -K:…

    2016-02-09
  • 用戶和組

    3A安全介紹 資源分派: Authentication:認證 Authorization:授權 Accouting|Audition:審計 安全上下文 Linux安全上下文 運行中的程序:進程 (process) 以進程發起者的身份運行: root: /bin/cat mage: /bin/cat 進程所能夠訪問資源的權限取決于進程的運行者的身份 用戶use…

    Linux干貨 2016-08-08
  • Linux 網絡屬性管理

    在介紹Linux網路屬性管理之前,我還要介紹下以太網(Enternet) 以太網的工作原理 以太網才用帶沖突檢測的載波偵聽多路訪問(CSMA/CD)機制。以太網中節點都可以看到在網絡中發送的所有信息,因此,我們說以太網是一種廣播網絡。 以太網的工作過程如下: 當以太網中的一臺主機要傳輸數據時,它將按如下步驟進行: 1.監聽信道上是否有信號在傳輸。如果有的話,…

    Linux干貨 2016-03-20
  • linxu通配符

    通配符 globbing globbing:文件名通配(整體文件名匹配,而非部分) 匹配模式:元字符 *:匹配任意長度的任意字符 ab*:ab開頭的單詞 *ab*:包含ab的單詞 *ab:ab結尾的單詞 *a*b*:包含a、b的單詞 ?:匹配任意單個字符 ab?:ab開頭的三個字符的單詞 ??ab:ab結尾四個字符的單詞 a?b:a開頭、b結尾三個字符的單詞…

    Linux干貨 2018-03-11
  • N22-第六周博客作業

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp # vim /tmp/rc.sysinit …

    Linux干貨 2016-09-26
欧美性久久久久