1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
目錄管理類命令:
cd:變更目錄
命令格式:cd [DIRECTORY]
pwd:顯示當前目錄的絕對路徑
ls:顯示文件或目錄內容
命令格式:ls [OPTION]… [FILE]…
常用參數:
-a:顯示所有內容(包含以.開頭的隱藏文件)。
-l:以長格式顯示文件夾內容。
-d:只顯示目錄名稱,不顯示目錄下的內容。
-h:以人類易讀的方式顯示文件大?。ㄈ纾?.0K)。
mkdir:創建目錄
命令格式:mkdir [OPTION]…DIRECTORY…
常用參數:
-p:表示目錄存在時不返回錯誤,不存在時,自動創建目錄。
-v:顯示創建過程的詳細信息。
-m MODE:創建目錄時直接指定權限。
rmdir:刪除目錄
命令格式:rmdir [OPTION]… DIRECTORY…
常用參數:
-v:顯示執行過程。
tree:目錄結構查看
常用參數:
-d:只顯示目錄。
-L level:指定顯示的層級數據。
-P pattern:只顯示指定pattern匹配到的路徑。
文件管理類:
cp:復制命令
命令格式:
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
常用參數:
-i:交互式
-r:遞歸復制目錄及內部的所有內容。
-a:歸檔,相當于-dR –preserve=all
–preserve[=ATTR_LIST]
mode:權限
ownership:屬主屬組
timestamp:時間戳
links:符號鏈接
xattr:擴展屬性
context:安全標簽
all:上述所有屬性
-d:表示不跟蹤符號鏈接所指向的源文件–no-dereference –preserve=links
-p:保持原有文件的屬性信息。
-f:強制覆蓋
-v:顯示執行過程
使用方法:
單源復制:cp [OPTION]… [-T] SOURCE DEST
如果DEST不存在:則事先創建此文件,并復制源文件的數據流至DEST中;
如果DEST存在:
如果DEST是非目錄文件:則覆蓋目標文件;
如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流;
多源復制:
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果DEST不存在:錯誤;
如果DEST存在:
如果DEST是非目錄文件:錯誤;
如果DEST是目錄文件:分別復制每個文件至目標目錄中,并保持原名;
mv:移動命令
命令格式:
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用參數:
-i:交互式
-f:強制
rm:刪除命令
命令格式:rm [OPTION]… FILE…
常用參數:
-i:交互式
-f:強制
-r:遞歸
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
命令執行結果狀態用 $? 表示。
0:成功
1 – 255:失敗
命令行展開:
~:展開為當前用戶的主目錄。
~USERNAME:展開為指定用戶的主目錄。
{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑。
示例:
/tmp/{a,b} = /tmp/a,/tmp/b
/tmp/{tom,jerry}/h1 = /tmp/tom/h1,/tmp/jerry/h1
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
[root@devops2 tmp]# touch /tmp/{a_c,a_d,b_c,b_d} [root@devops2 tmp]# ls a_c a_d b_c b_d
(2)、創建/tmp/mylinux目錄下的:
[root@devops2 tmp]# 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@devops2 tmp]# 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
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
文件的元數據包括:文件大小,權限,塊數,塊大小,文件類型,所在磁盤編號,inode,關聯文件數,時間戳信息。
可通過stat命令進行查看:
[root@devops2 tmp]# stat /tmp/mylinux/ File: `/tmp/mylinux/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 1835023 Links: 14 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2017-01-08 16:40:14.764841462 +0800 Modify: 2017-01-08 16:40:10.123180220 +0800 Change: 2017-01-08 16:40:10.123180220 +0800
access time:訪問時間,atime,即:通過cat,more等讀取其內容。
modify time:修改時間,mtime,即:改變文件內容。
change time:改變時間,ctime,即:元數據發生改變。
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
語法:alias new_name = 'old_name option'
[root@devops2 tmp]# alias grep='grep --color=auto' [root@devops2 tmp]# alias|grep grep alias grep='grep --color=auto'
注意:通過命令行定義的命令別名只對當前shell有效,如果想永久有效,需要定義在配置文件中,如:
僅對當前用戶有效:~/.bashrc
對所有用戶有效:/etc/bashrc
然后重新讀取配置文件使別名生效:
source ~/.bashrc 或 source /etc/bashrc
引用其他命令執行結果
$(COMMAND) 或 `COMMAND`
[root@devops2 tmp]# currdir=`pwd` [root@devops2 tmp]# echo $currdir /tmp [root@devops2 tmp]# filelist=$(ls) [root@devops2 tmp]# echo $filelist a_c a_d b_c b_d mylinux
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[root@devops2 var]# ll -d /var/l*[[:digit:]]*[[:lower:]] drwxr-xr-x 2 root root 4096 Jan 8 17:36 /var/l012abc -rw-r--r-- 1 root root 0 Jan 8 17:39 /var/l9def
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@devops2 etc]# ll -d /etc/[[:digit:]]*[^[:digit:]] -rw-r--r-- 1 root root 0 Jan 8 17:45 /etc/1abc drwxr-xr-x 2 root root 4096 Jan 8 17:45 /etc/2def
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
[root@devops2 etc]# ll -d /etc/[^[:alpha:]][[:alpha:]]* -rw-r--r-- 1 root root 0 Jan 8 17:45 /etc/1abc drwxr-xr-x 2 root root 4096 Jan 8 17:45 /etc/2def
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@devops2 tmp]# touch /tmp/file-$(date +%F-%H-%M-%S) [root@devops2 tmp]# ls /tmp/file-2017-01-08-18-03-48 /tmp/file-2017-01-08-18-03-48
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@devops2 tmp]# mkdir /tmp/mytest{1,2,3} [root@devops2 tmp]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1/ [root@devops2 tmp]# ls /tmp/mytest1/ pam.d pcmcia php.ini plymouth portreserve prelink.conf profile.d pango pear php.ini.bak pm postfix prelink.conf.d protocols passwd pear.conf pinforc pm-utils-hd-apm-restore.conf ppp printcap pulse passwd- php.d pki popt.d prelink.cache profile
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@devops2 tmp]# cp -r /etc/*.d /tmp/mytest2/ [root@devops2 tmp]# ls /tmp/mytest2/ bash_completion.d event.d makedev.d prelink.conf.d rc4.d rwtab.d cgconfig.d init.d modprobe.d profile.d rc5.d setuptool.d chkconfig.d latrace.d oddjobd.conf.d rc0.d rc6.d statetab.d cron.d ld.so.conf.d pam.d rc1.d rc.d sudoers.d depmod.d logrotate.d php.d rc2.d request-key.d xinetd.d dracut.conf.d lsb-release.d popt.d rc3.d rsyslog.d yum.repos.d
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@devops2 tmp]# cp /etc/{l,m,n}*.conf /tmp/mytest3 [root@devops2 tmp]# ls /tmp/mytest3/ latrace.conf libaudit.conf logrotate.conf mke2fs.conf nsswitch.conf numad.conf ld.so.conf libuser.conf ltrace.conf nfsmount.conf ntp.conf
原創文章,作者:N26-西安-方老喵,如若轉載,請注明出處:http://www.www58058.com/66098
延續了之前的品質,再接再厲。