N32-第二周-小羅

1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。


(1)目錄與路徑

相對路徑與絕對路徑

絕對路徑:路徑的寫法【一定由根目錄 / 寫起】

/usr/share/doc 這個目錄。

相對路徑:路徑的寫法【不是由 / 寫起】

由 /usr/share/doc 要到 /usr/share/man 底下時,可以寫成: 【cd ../man】這就是相對路徑的寫法。相對路徑意指相對于當前的工作目錄


(2) cat命令

cat是linux的基本文本輸出命令,通常用于查看文件內容。

語法

cat [OPTION]... [FILE]...

參數(shù)

-n 或? --number:由1開始對所有輸出的行數(shù)編號。

-b 或 --number-nonblank:和-n相似,只不過對于空白行不編號。

-s 或 --squeeze-blank:當遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行。

-v 或 --show-nonprinting:使用^和M-符號,除了LFD和TAB之外。

-E或--show-ends:在每行結束處顯示$。

-T或--show-tabs:將TAB字符顯示為^|。

-e:等價于-vE。

-A,--show-all:等價于-vET。

-t:等價于"-vT"選項。

cat主要功能

1、一次顯示文件的所有內容 cat filename

2、從磁盤創(chuàng)建一個新文件cat >filename(只能創(chuàng)建新文件不能編輯已有文件)

3、將幾個文件合并為一個文件cat? file1? file2? > file

實例


cat file


cat -n file


cat -b file


cat -E file


cat兩個文件合并成一個文件.png


(3)?cd (切換目錄)

示例:


cd



(4)?pwd(顯示當前所在的目錄)

參數(shù):

-P ?:顯示出確實的路徑,而非使用鏈接 (link) 路徑。(P是大寫)

示例:


pwd


(5)mkdir (建立新目錄)

[root@yangxu ~]# mkdir [-mp] 目錄名稱

參數(shù):

-m :配置文件目錄的權限!我們可以自己設定自己想要的權限,而不需要使用umask定義的默認權限

-p :幫助你直接將所需要的目錄遞歸建立起來!

范例:


建立一名為 test 的新目錄



mkdir: 無法創(chuàng)建目錄"test1/test2/test3/test4": 沒有那個文件或目錄??


加了這個 -p 的參數(shù),可以自行幫我們建立多層目錄!


-m 來強制設定屬性,否則系統(tǒng)會使用默認屬性


(6) rmdir (刪除"空"目錄)

? ? ? ? ? ?rmdir [-p] 目錄名稱

? ? ? ? ?-p :連同上層『空的』目錄也一起刪除


rmdir: 刪除 "test1" 失敗: 目錄非空


利用 -p 這個參數(shù),立刻就可以將 test1/test2/test3/test4 一次刪除~

注:不過要注意的是,這個 rmdir 僅能【刪除空的目錄】!


(7)?ls (查看文件和目錄)

? ? ? ? ? ls [-aAdfFhilRS] 目錄名稱

? ? ? ? ??ls [–color={none,auto,always}] 目錄名稱

? ? ? ? ? ls [–full-time] 目錄名稱

參數(shù):

-a ?:全部的文件,連同隱藏文件( 開頭為 . 的目錄) 一起列出來~

-A ?:全部的文件,連同隱藏文件,但不包括 . 與 .. 這兩個目錄,一起列出來~

-d ?:僅列出目錄本身,而不是列出目錄內的文件數(shù)據(jù)

-f ?:直接列出結果,而不進行排序 (ls 預設會以文件名排序!)

-F ?:根據(jù)文件、目錄等信息,給予附加數(shù)據(jù)結構,例如:

? ? ? *:代表可執(zhí)行文件; /:代表目錄; =:代表 socket 檔案; |:代表 FIFO 文件;

-h ?:列出文件的打小(例如GB、KB等等)

-i ?:列出 inode 位置,而非列出文件屬性;

-l ?:長數(shù)據(jù)串行出,包含文件的屬性等等數(shù)據(jù);

-n ?:列出 UID 與 GID 而非使用者與群組的名稱 (UID與GID會在賬號管理提到!)

-r ?:將排序結果反向輸出,例如:原本文件名由小到大,反向則為由大到?。?/p>

-R ?:連同子目錄內容一起列出來;

-S ?:以文件容量大小排序!

-t ?:依時間排序

–color=never ?:不要依據(jù)文件特性給予顏色顯示;

–color=always :顯示顏色

–color=auto ? :讓系統(tǒng)自行依據(jù)設定來判斷是否給予顏色

–full-time ? ?:以完整時間模式 (包含年、月、日、時、分) 輸出

–time={atime,ctime} :輸出 access 時間或 改變權限屬性時間 (ctime)?

舉例:


ls -a


ls -i


ls -lh

(8) cp (復制命令)

? ? ? ? ? ? ? ? ? ? ??cp [-adfilprsu] 源文件(source) 目的文件(destination)

? ? ? ? ? ? ? ? ? ? ??cp [options] source1 source2 source3 …. directory

參數(shù):

-a ?:相當于 -pdr 的意思;

-d ?:若來源文件為鏈接文件的屬性(link file),則復制鏈接文件屬性而非檔案本身;

-f ?:為強制 (force) 的意思,若有重復或其他疑問時,不會詢問使用者,而強制復制;

-i ?:若目的文件(destination)已經(jīng)存在時,在覆蓋時會先詢問是否真的動作!

-l ?:進行硬式連結 (hard link) 的連結文件建立,而非復制文件本身;

-p ?:連同文件的屬性一起復制過去,而非使用默認屬性;

-r ?:遞歸持續(xù)復制,用于目錄的復制行為;

-s ?:復制成為符號鏈接文件 (symbolic link),亦即『快捷方式』文件;

-u ?:若 destination 比 source 舊才更新 destination?

舉例:



目標目錄不存在直接報錯



不加-r參數(shù)報錯


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 原有pam目錄不存在,加上-r參數(shù),復制源目錄,目標目錄同時創(chuàng)建并復制進去


這2個文件權限為644,而且fstab文件屬主和屬組都為hadoop


不加-a選項,fstab文件復制后,屬主和屬組都變?yōu)閠est2目錄的屬主和屬組


使用-a選項后,文件屬主和屬組還有權限保持原樣


(9) rm (刪除文件或目錄)

? ? ? ? ?rm [-fir] 文件或目錄

參數(shù):

-f ?:就是 force 的意思,強制移除;

-i ?:互動模式,在刪除前會詢問使用者是否動作

-r ?:遞歸刪除!最常用在目錄的刪除了

舉例



(10)?mv (移動文件與目錄、文件重命名)

? ? ? ? ? ? mv [-fiu] source destination

? ? ? ? ? ??mv [options] source1 source2 source3 …. directory

參數(shù):

-f ?:force 強制的意思,強制直接移動而不詢問;

-i ?:若目標文件 (destination) 已經(jīng)存在時,就會詢問是否覆蓋!

-u ?:若目標文件已經(jīng)存在,且 source 比較新,才會更新 (update)

舉例:



(11) tac (反向顯示)

舉例


tac是將cat反寫,所以它的功能就與cat相反


(12)?nl (顯示時添加行號)

? ? ? ? ? ? ?nl [-bnw] 文件

參數(shù):

-b ?:指定行號指定的方式,主要有兩種:

? ? ? -b a :表示不論是否為空行,也同樣列出行號;

? ? ? -b t :如果有空行,空的那一行不要列出行號;

-n ?:列出行號表示的方法,主要有三種:

? ? ? -n ln :行號在屏幕的最左方顯示;

? ? ? -n rn :行號在自己字段的最右方顯示,且不加 0 ;

? ? ? -n rz :行號在自己字段的最右方顯示,且加 0 ;

-w ?:行號字段的占用的位數(shù)。

舉例



-b a :表示不論是否為空行,也同樣列出行號;


(13)?head (取出前幾行)

? ? ? ? ? ? ?head [-n number] 文件

參數(shù):

-n ?:后面接數(shù)字,代表顯示幾行的意思

舉例


默認顯示前面十行


顯示前 20 行


(14)?tail (取出后面幾行)

? ? ? ? ? ? tail [-n number] 文件

參數(shù):

-n ?:后面接數(shù)字,代表顯示幾行的意思

舉例:


默認顯示最后的十行


顯示最后的 20 行


2、bash的工作特性之命令執(zhí)行狀態(tài)返回值和命令行展開所涉及的內容及其示例演示。


1. 命令執(zhí)行狀態(tài)返回值

作為演示,我們鍵入一條命令 source /etc/profile,回車。

鍵入的命令到底有沒有執(zhí)行成功呢?我們輸入 echo $? 來查看該命令執(zhí)行狀態(tài)的返回值。返回值為 0,表示成功執(zhí)行。


我們再鍵入一條命令:source /etc,回車,然后再用 echo $? 查看。返回值為 1,表示該命令出錯。


我們最后鍵入 mann ls,回車,然后用 echo $? 查看。返回值為 127,不為 0,同樣表示該命令出錯。


2.命令行命令展開:

~:展開為用戶的主目錄

~USERNAME:展開為指定用戶的主目錄

{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑

/tmp{a,b} - /tmp/a. /tmp/b

/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi


3、請使用命令行展開功能來完成以下練習:


? (1)、創(chuàng)建/tmp目錄下的:a_c, a_d, b_c, b_d

? ? ? ? ? ?mkdir -p {a,b}_{c,d}


? (2)、創(chuàng)建/tmp/mylinux目錄下的:

mylinux/

? ? ├── bin

? ? ├── boot

? ? │?? └── grub

? ? ├── dev

? ? ├── etc

? ? │?? ├── rc.d

? ? │?? │?? └── init.d

? ? │?? └── sysconfig

? ? │??? ? └── network-scripts

? ? ├── lib

? ? │?? └── modules

? ? ├── lib64

? ? ├── proc

? ? ├── sbin

? ? ├── sys

? ? ├── tmp

? ? ├── usr

? ? │?? └── local

? ? │??? ? ├── bin

? ? │??? ? └── sbin

? ? └── var

? ? ? ? ├── lock

? ? ? ? ├── log

? ? ? ? └── run

?mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-? ? ? ? ? ? ? ?scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}



4、文件的元數(shù)據(jù)信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。



1)文件的元數(shù)據(jù)信息及查看

文件的數(shù)據(jù)分兩種:一種元數(shù)據(jù),既屬性數(shù)據(jù);一種就是數(shù)據(jù)本身;可使用stat命令查看文件的元數(shù)據(jù):

可以使用stat命令查看元數(shù)據(jù);

舉例:


其中:

file:文件名;

size:文件大小

block:文件占了多少個數(shù)據(jù)塊

IO Block:文件所占數(shù)據(jù)塊的塊大小

Device:硬件,既說明該文件在硬盤的那個柱面

Inode:節(jié)點號

links:鏈接

Access(第一個):權限

Uid:該文件所屬的屬主

Gid:該文件所屬的屬組

context:安全上下文

Access(第二個):文件上一次的訪問時間

Modify:文件上一次修改的時間

Change:文件上一次屬性更改的時間

2)修改文件的時間戳信息:

?可以使用touch命令更改文件的時間戳:

?touch [-acdmt] 文件

選項與參數(shù):

-a ?:僅修訂 access time;

-c ?:僅修改文件的時間,若該文件不存在則不創(chuàng)建新文件;

-d ?:后面可以接欲修訂的日期而不用目前的日期,也可以使用 –date="日期或時間"

-m ?: 僅修改 mtime ;

-t ?: 后面可以接欲修訂的時間而不用目前的時間,格式為[YYMMDDhhmm]

舉例:

查看目前時間點

然后我們使用touch命令看下效果;

3個時間點都已經(jīng)改變;


5、如何定義一個命令的別名,如何在命令中引用另一個命令的執(zhí)行結果?


定義別名:alias

語法:# alias name='command line'

alias的作用僅在該次登入的操作,即輸入一次alias后,這個修改只在當前的Shell生效。如果重新開啟一個Shell,或者重新登錄,則這些alias將無法使用。

alias永久化的方法:

<1>.若要每次登入就自動生效別名,則把別名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc

<2>.若要讓每一位用戶都生效別名,則把別名加在/etc/bashrc最后面,然后# source /etc/bashrc

示例:

添加別名




重新再打開個shell,可以看見之前創(chuàng)立的別名已經(jīng)沒有;



可以編輯.bashrc文件,在里面添加別名,這個添加后對當前用戶有效;切換用戶后,就無效;


編輯/etc/bashrc


在文件末尾添加別名,對全局用戶有效;

刪除別名:



顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現(xiàn)一位數(shù)字(可以有其它字符)的文件或目錄。



? ? ? ? ? ??



顯示/etc目錄下,以任意一個數(shù)字開頭,且以非數(shù)字結尾的文件或目錄。




顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。




在/tmp目錄下創(chuàng)建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。




復制/etc目錄下所有以p開頭,以非數(shù)字結尾的文件或目錄到/tmp/mytest1目錄中。




復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。




復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。



?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,598評論 9 468
  • 系統(tǒng)管理與維護命令 date date(選項)(參數(shù)) | 選項 | 說明 | | :-------- | ...
    蓓蓓的萬能男友閱讀 4,169評論 0 5
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,187評論 2 33
  • 1.Linux上的文件管理類命令,其常用的使用方法及其相關示例演示 文件與目錄的管理上,不外乎顯示屬性、 拷貝、刪...
    whamai閱讀 329評論 0 0
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,696評論 0 5

友情鏈接更多精彩內容