linux初步

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

文件管理命令

文件管理有哪些命令:ls, cd, pwd, mkdir, rmdir, cp, rm, mv, touch, cat, more, less, head, tail等,下面我們就來詳細的說一下(只說常用的,不是命令全部)

(1). ls 命令

1
2
3
4
5
6
7
8
9
10
11
12
-a :全部的文件,連同隱藏檔( 開頭為 . 的文件) 一起列出來 (常用)

-A :全部的文件,連同隱藏檔,但不包括 . 與 .. 這兩個目錄

-d :僅列出目錄本身,而不是列出目錄內的文件數據 (常用)

-f :直接列出結果,而不進行排序  (ls 默認會以檔名排序!)

-h :將文件容量以人類較易讀的方式(例如 GB, KB 等等)列出來 (常用)

-i :列出 inode 號碼,inode 的意義下一章將會介紹 (常用)

-l :長數據串列出,包含文件的屬性與權限等等數據 (常用)

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

-r :將排序結果反向輸出,例如:原本檔名由小到大,反向則為由大到小

-R :連同子目錄內容一起列出來,等于該目錄下的所有文件都會顯示出來 (常說的遞歸)

-S :以文件容量大小排序,而不是用檔名排序

 -t :依時間排序,而不是用檔名

(2) cd 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cd [相對路徑或絕對路徑]

# 最重要的就是目錄的絕對路徑與相對路徑,還有一些特殊目錄的符號羅!

[root@www ~]# cd ~test
# 代表去到 vbird 這個使用者的家目錄,亦即 /home/test

[root@www vbird]# cd ~
# 表示回到自己的家目錄,亦即是 /root 這個目錄

[root@www ~]# cd
# 沒有加上任何路徑,也還是代表回到自己家目錄的意思喔

[root@www ~]# cd ..
# 表示去到目前的上一級目錄,亦即是 /root 的上一級目錄的意思

[root@www /]# cd -
 # 表示回到剛剛的那個目錄,也就是 /root 羅~

 [root@www ~]# cd /var/spool/mail
# 這個就是絕對路徑的寫法!直接指定要去的完整路徑名稱

 [root@www mail]# cd ../mqueue
# 這個是相對路徑的寫法,我們由/var/spool/mail 去到/var/spool/mqueue 就這樣寫


(3). pwd 命令

1
2
3
4
5
6
7
pwd [-P] 選項與參數:   
 -P :顯示出確實的路徑,而非使用鏈接 (link) 路徑。    

例:pwd    
cd /var/mail

pwd –P
/var/spool/mail
pwdpwd –P 顯示的路徑不同,大家清楚了吧!


(4). mkdir 命令

1
2
3
4
5
6
mkdir [-mp] 目錄名稱 選項與參數:

-m :配置文件的權限喔!直接配置,不需要看默認權限 (umask)

-p :幫助你直接將所需要的目錄(包含上一級目錄)遞回創建起來!

例:
mkdir -p test1/test2/test3/test4 (一起創建)
mkdir -m 744 test2


(5). rmdir 命令

1
2
3
4
rmdir [-p] 目錄名稱 選項與參數:

 -p :連同上一級“空的”目錄也一起刪除

例:

rmdir -p test1/test2/test3/test4 (全部刪除)


(6). rm 命令

1
2
3
4
5
rm [-fir] 文件或目錄 選項與參數:

 -f :就是 force 的意思,忽略不存在的文件,不會出現警告信息

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

-r :遞回刪除?。∽畛S迷谀夸浀膭h除了(這是非常危險的選項)

我們一般常組合使用,rm –rf (刪除全部文件或目錄,大家得小心使用,因為刪除了就無法恢復了)


(7). mv 命令

1
2
3
4
5
mv [-fiu] source destination 選項與參數:

-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋

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

-u :若目標文件已經存在,且 source 比較新,才會升級 (update)

我們一般還可以用mv 命令進行重命名(例: mv test test.bak  )

(8). touch 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
touch [-acdmt] 文件 選項與參數:

-a :僅修訂 access time

-c :僅修改文件的時間,若該文件不存在則不創建新文件

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

-m :僅修改 mtime

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

補充:
我們在 ls 這個命令的介紹時(ls –l),有提到每個文件在linux底下都會記錄許多的時間參數, 其實是有三個主要的變動時間,那么三個時間的意義是什么呢?我在這里補充一下
modification time (mtime):      

當該文件的“內容數據”變更時,就會升級這個時間!內容數據指的是文件的內容,而不是文件的屬性或權限喔
status time (ctime):      

當該文件的“狀態 (status)”改變時,就會升級這個時間,舉例來說,像是權限與屬性被更改了,都會升級這個時間啊。
access time (atime):      

當“該文件的內容被取用”時,就會升級這個讀取時間 (access)。舉例來說,我們使用 cat 去讀取 /etc/man.config , 就會升級該文件的 atime 了
大家懂了吧!


(9). cat 命令

1
2
3
4
5
6
7
cat [-AbEnTv] 選項與參數:

-A :相當于-vET 的整合選項,可列出一些特殊字符而不是空白而已

-b :列出行號,僅針對非空白行做行號顯示,空白行不標行號

-E :將結尾的斷行字節 $ 顯示出來

-n :列印出行號,連同空白行也會有行號,與 -b 的選項不同 (常用)

-T :將 [tab] 按鍵以 ^I 顯示出來

-v :列出一些看不出來的特殊字符

(10). more 命令

1
2
3
4
5
6
7
8
more (一頁一頁翻動查看)

常用的快捷鍵:


空白鍵 (space):代表向下翻一行

Enter     :代表向下翻一行

/字串     :代表在這個顯示的內容當中,向下搜尋字串這個關鍵字

:f            :立刻顯示出檔名以及目前顯示的行數

q            :代表立刻離開 more ,不再顯示該文件內容

b 或 Ctrl+b :代表往回翻頁,不過這動作只對文件有用


(11). less 命令

1
2
3
4
5
6
7
8
9
10
11
less (一頁一頁翻動)
lessmore區別: 在 more 的時候,我們并沒有辦法向前面翻, 只能往后面看,但若使用了 less 時,就可以使用 [pageup] [pagedown] 等按鍵的功能來往前往后翻看文件
常用的快捷鍵:

空白鍵    :向下翻動一頁

[pagedown]:向下翻動一頁

[pageup]  :向上翻動一頁

/字串     :向下搜尋字串的功能

?字串     :向上搜尋字串的功能

n         :重復前一個搜尋 (與 / 或 ? 有關!)

N        :反向的重復前一個搜尋 (與 / 或 ? 有關!)

q         :離開 less 這個程序


(12). head 命令 (取出前面幾行)

1
2
3

head [-n number] 文件 選項與參數:

-n :后面接數字,代表顯示幾行的意思
(默認是前10行)

(13). tail 命令 (取出后面幾行)

1
2
3
4

tail [-n number] 文件 選項與參數:

-n :后面接數字,代表顯示幾行的意思  (默認后10行)

-f :表示持續查看后面所接的文件,要等到按下Ctrl+c才會結束tail的查看
tail –f 非常有用,當我們看某些經常更新的日志時,例: tail -f /var/log/maillog


(14). file 命令 (查看文件類型)

1
2
3
4

例:

file ~/.bashrc --------ASCII 的純文字檔

file /usr/bin/passwd ------------可執行文件

file /var/lib/mlocate/mlocate.db  --------------- data 文件


總結 :

經過上面的總結,基本上把文件的管理的命令總結了下,包括目錄操作的相關命令(如cd, pwdm, mkdir, rmdir, ls)目錄與文件的復制、刪除、移動命令(cp, rm, mv)文件的新建與查看命令(touch, cat, more, less, head, tail),還有查看 文件類型有命令(file),上面命令很,多了就不容易記憶,大家只有多多練習才能記住,嘿嘿。好了今天的話題,就說到這,我們下一次得說一下,linux 文件權限管理的相關命令!



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

1. 命令執行狀態返回值

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

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

linux初步

2016-09-24_14-09-51.jpg

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

linux初步

2016-09-24_14-10-37.jpg

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

linux初步

2016-09-24_14-11-21.jpg

2.命令行命令展開:

~:展開為用戶的主目錄
~USERNAME:展開為指定用戶的主目錄
{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑
/tmp{a,b} – /tmp/a. /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi



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

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

   (2)、創建/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

(1):[root@localhost tmp]# mkdir {a,b}_{c,d}


blob.png

(2)[root@localhost tmp]# mkdir -p 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}}

blob.png

blob.png



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

元數據定義:
     數據(Metadata),又稱中介數據、中繼數據,為描述 數據的數據(data about data),主要是描述數據屬性(property)的信息,用來支持如指示存儲位置、歷史數據、資源查找、文件記錄等功能。
 可用命令stat查看文件的元數據 stat:
 功能說明:顯示inode內容。
 語  法:stat FILE
-bash-4.1# stat a.c File: a.cSize: 41              Blocks: 8          IO Block: 4096  regular fileDevice: fh/15d  Inode: 1808648     Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2016-11-09 23:38:06.000000000Modify: 2016-11-09 23:38:05.000000000Change: 2016-11-09 23:38:05.000000000
修改文件時間戳信息
命令:touch
   touch命令一般用來修改文件的時間,或者新建一個不存在的文件.
語法如下: 
touch [-acm][-r ref_file(參照文件)|-t time(時間值)] file(文件名)
參數說明:
-a 修改文件 file 的存取時間.
-c 不創建文件 file.
-m 修改文件 file 的修改時間
-r ref_file 將參照文件 ref_file 相應的時間戳記的數值作為指定文件 file 時間戳記的新值.
-t time 使用指定的時間值 time 作為指定文件 file 相應時間戳記的新值.
 例子:
 touch a.txt 更新a.txt的存取和修改時間
-bash-4.1# touch a.txt-bash-4.1# stat a.txt  File: a.txt  Size: 0               Blocks: 0          IO Block: 4096   regular empty fileDevice: fh/15d  Inode: 1847885     Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2016-11-10 00:08:44.000000000Modify: 2016-11-10 00:08:44.000000000Change: 2016-11-10 00:08:44.000000000
touch -c a.txt   不創建文件
-bash-4.1# touch -c b.txt-bash-4.1# lsa.c    a.txt
touch -r b.txt a.txt 更新a.txt的時間戳和b.txt相同
-bash-4.1# stat b.txt   File: b.txt  Size: 0               Blocks: 0          IO Block: 4096   regular empty fileDevice: fh/5d  Inode: 1849094     Links: Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2016-11-10 00:13:02.00000000Modify: 2016-11-10 00:13:02.00000000Change: 2016-11-10 00:13:02.000000000-bash-4.1# stat a.txt   File: a.txt  Size: 0               Blocks: 0          IO Block: 4096   regular empty fileDevice: fh/5d  Inode: 1847885     Links: Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2016-11-10 00:10:29.00000000Modify: 2016-11-10 00:10:29.00000000Change: 2016-11-10 00:10:29.000000000-bash-4.1# touch -r b.txt a.txt -bash-4.1# stat b.txt   File: b.txt  Size: 0               Blocks: 0          IO Block: 4096   regular empty fileDevice: fh/5d  Inode: 1849094     Links: Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2016-11-10 00:13:02.00000000Modify: 2016-11-10 00:13:02.00000000Change: 2016-11-10 00:13:02.000000000
touch -t 162011011134.03 b.txt 設定文件的時間
-bash-4.1# touch -t 201611011134.03 b.txt -bash-4.1# stat b.txt   File: b.txt  Size: 0               Blocks: 0          IO Block: 4096   regular empty fileDevice: fh/5d  Inode: 1849094




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

1.命令別名:alias

    alias:顯示當前shell進程所有可用的命令別名    alias NAME="VALUE":命名別名
    注意:在命令行中定義的別名,僅對當前shell進程有效,如果想永久有效,要定義配置文件
    僅對當前用戶:~/.bashrc
    對所有有效:/etc/bashrc

linux初步

2016-09-24_14-53-29.jpg

2.使用管道符可以飲用另一個命令的執行結果

linux初步




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

blob.png



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

blob.png



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

blob.png



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

blob.png



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

blob.png



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

blob.png



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

blob.png

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

(0)
a279854458a279854458
上一篇 2017-01-22 17:16
下一篇 2017-01-22 21:33

相關推薦

  • iptables/netfilter入門到進階

    iptables從入門到精通 本文主要圍繞以下七點進行闡述:   一、防火墻簡介 二、Iptables簡介 三、Iptables的四張表及五條鏈 四、Iptables的filter應用詳解 五、Iptables的nat應用詳解       一、防火墻簡介: 在網絡中,所謂的防火墻是指一種將內部網絡和公眾訪問網分開的方法…

    Linux干貨 2017-03-15
  • 軟件包管理工具的使用及yum源倉庫的配置

    我們知道CentOS,本質上是RedHat的社區版,其無論是功能還是軟件配置上都與RedHat保持一致,因此CentOs系列的軟件包管理主要的也是rpm和yum工具。 RPM包管理 rpm包管理工具可以說是歷史悠久、名聲斐然了。rpm起初是RedHat公司研發的軟件包管理工具,即RedHat Package Managemer。但由于其性能突出,在開源界得到…

    Linux干貨 2016-11-06
  • find命令、歸檔壓縮工具、xargs、exec、tar、xz、cpio

    find命令、歸檔壓縮工具、xargs、exec、tar、xz、cpio find命令 Linux中的文件查找工具常見的有locate和find以及whereis.他們適用于不同的場合,如whereis只能用于搜索程序的二進制文件、源代碼文件和man手冊等相關文件,find和local能夠查找磁盤上的所有文件(不包括proc和sys目錄下的虛擬文件)。fin…

    Linux干貨 2016-08-18
  • Linux的文件系統和目錄

    Linux的文件系統和目錄 Linux目錄和Windows目錄有著很大的不同,Linux目錄類似一個樹,最頂層是其根目錄,如下圖: 文件系統和目錄:   詳細用法如下 / bin     存放用戶使用的基本命令(可執行程序,二進制文件),它是不能單獨分區的 boot    跟內核…

    2017-03-26
  • 一起學WINS系列(二)安裝、配置

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/159128  此系列第二節:安裝服務端、配置客戶端。          完整的WINS系統…

    Linux干貨 2015-03-25
  • shutil,csv,ini

    序列化和反序列化筆記

    2017-10-29

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-02-17 10:10

    寫的很好,有沒有感覺把圖片放上很丑,注意一下排版的問題,總結的也很到位,加油

欧美性久久久久