2018-08-13

linux第二周作業(yè)

  1. Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關(guān)示例演示。
    常用的工具:cp,mv,rm

復(fù)制命令:cp

兩種使用風(fēng)格:cp [OPTION]...[-T]SOURCE DEST

                        cp[OPTION]...SOURCE ...DIRECTORY

簡(jiǎn)要講:

cp SRC...DEST

1.如果SRC是文件的:

(1)如果目標(biāo)不存在:新建DEST,并將SRC中的內(nèi)容填充至DEST中;

(2)如果目標(biāo)存在:

如果目標(biāo)是文件,則將源文件內(nèi)容覆蓋到目標(biāo)文件當(dāng)中,(可以使用-i來(lái)提醒用戶是否覆蓋)

如果目標(biāo)是目錄,則在該目錄下創(chuàng)建一個(gè)與源文件同名的目標(biāo)文件,并將源文件內(nèi)容復(fù)制過(guò)去。

  1. 如果SRC是目錄:則必須使用-r選項(xiàng)

(1)如果DEST存在,則其必須是目錄,否則報(bào)錯(cuò);先在DEST下創(chuàng)建與SRC同名的目錄,并將SRC中所有內(nèi)容復(fù)制過(guò)去,

(2)如果DEST不存在,則先創(chuàng)建DEST目錄,并將SRC所有內(nèi)容復(fù)制到DEST中。

常用選項(xiàng):

-i:交互式

-r:遞歸復(fù)制目標(biāo)目錄及目錄下所有內(nèi)容

-a:歸檔,相當(dāng)于-dR --preserve=all

-p:保持源文件的屬性信息

-f:強(qiáng)制覆蓋

-v:顯示過(guò)程

移動(dòng)命令mv:同樣也有三種使用格式

(1)如果SRC是單個(gè)文件,且DEST不存在,則相當(dāng)于剪切功能,如果SRC是單個(gè)文件,且DEST存在,則目標(biāo)文件內(nèi)容被源文件覆蓋,且源文件消失;

(2)如果SRC是多個(gè)文件,如果DEST不存在,則創(chuàng)建一個(gè)目錄,并將多個(gè)源文件復(fù)制到目錄下;如果存在,則該目標(biāo)必須為目錄,且移動(dòng)過(guò)去的文件不會(huì)覆蓋目標(biāo)目錄已存在的文件

(3)如果SRC是個(gè)目錄,且DEST不存在,則創(chuàng)建目標(biāo)目錄,且將SRC剪切到目標(biāo)目錄。如果SRC是個(gè)目錄,且DEST存在,則在DEST下創(chuàng)建一個(gè)與SRC同名的目錄,并剪切過(guò)去。

常用選項(xiàng):

-i:交互式

-f:強(qiáng)制

-刪除命令:rm

rm [OPTION]...FILE...

常用選項(xiàng):

-i:交互式

-f:強(qiáng)制

-r:遞歸

常用選項(xiàng)組合:rm -rf

  1. bash的工作特性之命令執(zhí)行狀態(tài)返回值和命令行展開所涉及的內(nèi)容及其示例演示。
    2.1 命令的執(zhí)行結(jié)果狀態(tài)
    成功:

失?。?/p>

bash使用特殊變量?保存最近一條命令的執(zhí)行狀態(tài)結(jié)果:echo?

0:成功

1-255:失敗

同樣程序執(zhí)行結(jié)果也有兩類:

程序的返回值:程序的功能定義

程序的執(zhí)行狀態(tài)結(jié)果:程序執(zhí)行完成后的狀態(tài)

2.2 命令行展開
~:展開為用戶的主目錄

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

{}:可承載一個(gè)以逗號(hào)分隔的列表,并將其展開為多個(gè)路徑

如:

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

/tmp/{jack,mary,tom}/x=/tmp/jack/x,/tmp/mary/x,/tmp/tom/x
  1. 請(qǐng)使用命令行展開功能來(lái)完成以下練習(xí):
    (1)、創(chuàng)建/tmp目錄下的:a_c, a_d, b_c, b_d

    touch /tmp/{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 -p -v /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/{log,run}}
  1. 文件的元數(shù)據(jù)信息有哪些,分別表示什么含義,如何查看?如何修改文件的時(shí)間戳信息。
    文件的元數(shù)據(jù)信息有文件名、文件的大小屬性、以及被訪問(wèn)時(shí)間、修改及改動(dòng)時(shí)間等,就像人的身高屬性等;

Linux文件系統(tǒng)特性:

4.1 文件名嚴(yán)格區(qū)分大小寫;

4.1 文件名長(zhǎng)度不能超過(guò)255;

4.3 文件名命名能使用除/外其他所有的字符;

4.4 所有以.開頭的文件都為隱藏文件;

查看文件時(shí)間戳:stat 文件路徑

狀態(tài)信息有三個(gè)時(shí)間戳:

access time:訪問(wèn)時(shí)間,atime 即:通過(guò)cat,more等讀取其內(nèi)容

modify time:修改時(shí)間,mtime 即:改變文件內(nèi)容

change time:改變時(shí)間,ctime 即:元數(shù)據(jù)發(fā)生變化

可通過(guò)touch[OPTION]...FILE...

-a:修改atime

-m:修改mtime

-t[[CC]YY]MMDDhhmm[.ss]:修改指定時(shí)間戳為某時(shí)間

  1. 如何定義一個(gè)命令的別名,如何在命令中引用另一個(gè)命令的執(zhí)行結(jié)果?
    通過(guò)alias命令實(shí)現(xiàn),

(1)當(dāng)alias不帶任何選項(xiàng)表示顯示所有已定義別名;

(2)定義別名:

alias new_name='old_name'

注意:通過(guò)命令行定義別名只對(duì)當(dāng)前shell進(jìn)程有效,要想長(zhǎng)久有效必須定義在配置文件中;

僅對(duì)當(dāng)前用戶有效:~/.bashrc

對(duì)所有用戶有效:/etc/bashrc

bash進(jìn)程重新讀取配置文件:

source /path/to/config_file或者./path/to/config_file

撤銷別名用unalias new_name,

unalias -a 表示撤銷所有命令別名

如何

通過(guò)管道引用另一個(gè)命令的執(zhí)行結(jié)果

COMMAND1 | COMMAND2 |COMMAND3,最后一個(gè)命令會(huì)在當(dāng)前shell進(jìn)程的子進(jìn)程中執(zhí)行

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

    ls /var/l[0-9][a-z]

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

    ls -d /etc/[0-9]*[^0-9]

  3. 顯示/etc目錄下,以非字母開頭,后面跟了一個(gè)字母以及其它任意長(zhǎng)度任意字符的文件或目錄。

    ls -d /etc/[^a-z][a-z]*

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

    touch /tmp/tfile-2018-07-14-23-04-23

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

mkdir /tmp/mytest1

cp  -ri /etc/p*[^0-9] /tmp/mytest1
  1. 復(fù)制/etc目錄下所有以.d結(jié)尾的文件或目錄至/tmp/mytest2目錄中。
mkdir /tmp/test2

cp -ri /etc/*.d /tmp/mytest2
  1. 復(fù)制/etc/目錄下所有以l或m或n開頭,以.conf結(jié)尾的文件至/tmp/mytest3目錄中。
mkdir /tmp/mytest3

cp /etc/{l,m,n}*.conf /tmp/mytest3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容