1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。 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 4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。 5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果? 6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。 7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。 8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。 9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。 10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。 11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。 12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
ls,cat,more,less, tail, head;cp,mv,rm
ls: list 列出目標目錄中所有的子目錄和文件
ls [選項] [目錄名]
-a, --all: 顯示所有文件,包括隱藏文件;A的不包括(. ..) -l: 長格式 -h, --human-readable:單位換算k,m -d: 顯示目錄自身的相關屬性;通常要與-l一起使用; -r, --reverse: 逆序顯示 -R, --recursive: 遞歸
cat 文件查看命令
cat [OPTION]… [FILE]…鏈接文件并顯示出來
-E: 顯示行結束符$ -n: 對顯示出的每一行進行編號
more,文本查看
more [OPTIONS…] FILE…
-d: 顯示翻頁及退出提示
less 和man的用法差不多
less [OPTIONS…] FILE…
tail 和head用法差不多
tail [OPTION]… [FILE]…
-c #: 指定獲取后#字節 -n #: 指定獲取后#行 -#: -f: 跟蹤顯示文件新追加的內容;
head,獲取文件頭的用法,比如非常大日志文件
head [OPTION]… [FILE]…
-c #: 指定獲取前#字節 -n #: 指定獲取前#行
cp 復制命令
cp [OPTION]… [-T] SOURCE DEST 元到目標
cp [OPTION]… SOURCE… DIRECTORY 復制
cp [OPTION]… -t DIRECTORY SOURCE…
-i:交互式 -r, -R: 遞歸復制目錄及內部的所有內容; -a: 歸檔,相當于-dR --preserv=all,做備份的,文件保留成原來的樣子 例如:ls -l /etc 看這個文件 system-release ->centos- release ,普通cp /etc/system-release /tmp/,再看文件大小不一樣,也沒有指向原來的文件有 指向所以沒有保存原來的樣子 -d:--no-dereference --preserv=links cp --no-dereference /etc/system-release /tmp/sys.release ,ls -l /tmp看這個文件也有指向,文件大小也一樣,但是是錯誤鏈接,因為不是絕對路徑 --preserv[=ATTR_LIST] 保留你所指定的屬性 mode: 權限 ownership: 屬主屬組 timestamp: 時間戳 links鏈接屬性 xattr擴展屬性 context 連接上下文 a ll 所有原屬性 -p: --preserv=mode,ownership,timestamp -v: --verbose -f: --force
mv: move,移動文件
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
-i: 交互式 -f: 強制
rm: remove,刪除
rm [OPTION]… FILE..
-i: 交互式 -f: 強制刪除 -r: 遞歸
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
bash返回值
成功:0 失敗:1-255 使用echo $! 查看
例如:
[root@test1 ~]# ls /tmp/1 /tmp/1 [root@test1 ~]# echo $? 0 [root@test1 ~]# ls /tmp/11 ls: cannot access /tmp/11: No such file or directory [root@test1 ~]# echo $? 2 [root@test1 ~]#
命令行展開
~: 展開為用戶的主目錄
~USERNAME:展開為指定用戶的主目錄
{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑,
/tmp/{a,b} = /tmp/a, /tmp/b
3、請使用命令行展開功能來完成以下練習
(1)、創建/tmp 目錄下的:a_c,a_d,b_c,b_d
[root@test1 ~]# mkdir /tmp/{a,b}_{c,d} [root@test1 ~]# ll /tmp total 48 drwxr-xr-x 2 root root 4096 Jun 13 07:17 a_c drwxr-xr-x 2 root root 4096 Jun 13 07:17 a_d drwxr-xr-x 2 root root 4096 Jun 13 07:17 b_c drwxr-xr-x 2 root root 4096 Jun 13 07:17 b_d
(2)、創建/tmp/mylinux目錄下的:
[root@test1 ~]# mkdir -p /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#}} [root@test1 ~]# tree /tmp/mylinux /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# 24 directories, 0 files [root@test1 ~]#
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
[root@test1 ~]# stat 1.c 用stat查看源數據 File: `1.c' Size: 319 Blocks: 8 IO Block: 4096 regular file Device: 802h/2050d Inode: 533990 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-05-15 15:03:22.000000000 +0800 Modify: 2016-02-24 15:21:51.000000000 +0800 Change: 2016-05-15 15:03:22.494563429 +0800 [root@test1 ~]#
三個時間戳:
access time:訪問時間,簡寫為atime,讀取文件內容
modify time: 修改時間, mtime,改變文件內容(數據)
change time: 改變時間, ctime,元數據發生改變
touch命令:可以手動修改前兩個時間戳
touch [OPTION]… FILE…
-a: only atime
-m: only mtime
-t STAMP:
[[CC]YY]MMDDhhmm[.ss]
-c: 如果文件不存,則不予創建
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
定義一個命令別名
alias NAME='VALUE'
定義別名NAME,其相當于執行命令VALUE;
注意:在命令行中定義的別名,僅對當前shell進程有效;如果想永久
有效,要定義在配置文件中;
僅對當前用戶:~/.bashrc
對所有用戶有效:/etc/bashrc
Note: 編輯配置給出的新配置不會立即生效;
bash進程重新讀取配置文件:
source /path/to/config_file
. /path/to/config_file
撤消別名:unalias
unalias [-a] name [name …]
Note: 如果別名同原命令的名稱,則如果要執行原命令,可使用"\COMMAND";
例如:
[root@test1 ~]# alias 顯示所有別名 alias cdnet='cd /etc/sysconfig/network-scripts/' alias cp='cp -i' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [root@test1 ~]# alias cdnet='cd /etc/sysconfig/network-scripts/' [root@test1 ~]# cdnet [root@test1 network-scripts]#
如何在命令中引用另一個命令的執行結果
| 使用管道命令可以引用另一個命令
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
ls l*[0-9]*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
ls [0-9]*[^0-9]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
ls [^a-z][^A-Z]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch tfile-"$(date +%F-%H-%M-%S)"
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
cp -r /etc/p*[^0-9] /tmp/mytest1/
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
cp -r /etc/*.d /tmp/mytest1/
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
cp -r /etc/[l,m,n]*.conf /tmp/mytest3/
原創文章,作者:zhutoyearn,如若轉載,請注明出處:http://www.www58058.com/18776
寫的很棒,只是一篇文章的排版不太一樣那?在看一下10題,可能有一點小瑕疵,在仔細看一下,加油