1、Linux上的文件管理類命令,其常用的使用方法及其相關示例演示。
ls:list(查看文件)
命令格式:
ls [OPTION]... [FILE]...
選項:
-a, --all: 顯示所有文件,包括隱藏文件; -l: 長格式 -h, --human-readable:單位換算 -d: 顯示目錄自身的相關屬性;通常要與-l一起使用; -r, --reverse: 逆序顯示 -R, --recursive: 遞歸
示例:
[root@localhost ~]# ls /home/jobs/ 123.txt Documents grep.txt ignoredups Music Pictures scripts test_dsa_1024.pub Desktop Downloads id_rsa_2048.pub index.html perl5 Public Templates Videos
cp:copy(復制文件)
命令格式:
cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... cp SRC DEST SRC是文件: 如果目標不存在:新建DEST,并將SRC中內容填充至DEST中; 如果目錄存在: 如果DEST是文件:將SRC中的內容覆蓋至DEST中; 此時建議為cp命令使用-i選項; 如果DEST是目錄:在DEST下新建與原文件同名的文件,并將SRC中內容填充至新文件中; cp SRC... DEST SRC...:多個文件 DEST必須存在,且為目錄,其它情形均會出錯; cp SRC DEST SRC是目錄: 此時使用選項:-r 如果DEST不存在:則創建指定目錄,復制SRC目錄中所有文件至DEST中; 如果DEST存在: 如果DEST是文件:報錯 如果DEST是目錄:
選項:
-i:交互式 -r, -R: 遞歸復制目錄及內部的所有內容; -a: 歸檔,相當于-dR --preserv=all -d:--no-dereference --preserv=links --preserv[=ATTR_LIST] mode:權限 ownership:屬主屬組 timestamp:時間戳 links:鏈接 xattr:屬性 context:內容 all:全部 -p: --preserv=mode,ownership,timestamp -v: --verbose:顯示已經完成的 -f: --force:強行
示例:
[root@localhost ~]# cp -r /etc /tmp/abc [root@localhost ~]# ls /tmp/abc/ abrt dracut.conf.d kderc opt securetty adjtime drirc kdump.conf os-release security...
mv:move(移動文件)
命令格式:
mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE...
選項:
-i: 交互式 -f: 強制 -v: 顯示已經完成的
示例:
[root@localhost ~]# mv /tmp/abc /home/jobs/ [root@localhost ~]# ls /home/jobs/abc/ abrt dracut.conf.d kderc opt securetty adjtime drirc kdump.conf os-release security...
rm:remove(刪除文件)
命令格式:
rm [OPTION]... FILE...
選項:
-i: 交互式 -f: 強制刪除 -r: 遞歸
示例:
[root@localhost ~]# rm -rf /home/jobs/abc [root@localhost ~]# ls /home/jobs/ 123.txt Documents grep.txt ignoredups Music Pictures scripts test_dsa_1024.pub Desktop Downloads id_rsa_2048.pub index.html perl5 Public Templates Videos
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
bash使用特殊變量$?保存最近一條命令的執行狀態結果,0表示成功,1-255表示失敗
示例:
成功示例: [root@localhost ~]# ls /home/jobs/ 123.txt Documents grep.txt ignoredups Music Pictures scripts test_dsa_1024.pub Desktop Downloads id_rsa_2048.pub index.html perl5 Public Templates Videos [root@localhost ~]# echo $? 0 ----------->成功 失敗示例: [root@localhost ~]# cat /abc/ss.txt cat: /abc/ss.txt: No such file or directory [root@localhost ~]# echo $? 1 ----------->失敗
命令行展開:
~: 展開為用戶的主目錄 ~USERNAME:展開為指定用戶的主目錄 {}:可承載一個以逗號分隔的列表,并將其展開為多個路徑
示例:
[root@localhost ~]# mkdir /tmp/{a,b,c} -------->執行過程相當于mkdir /tmp/a;mkdir /tmp/b;mkdir /tmp/c [root@localhost ~]# tree /tmp /tmp ├── a ├── b ├── c
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
mkdir {a,b}_{c,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
[root@localhost ~]# 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@localhost tmp]# tree 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、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
查看文件元數據信息:
命令格式:
stat [OPTION]... FILE...
示例:
[root@localhost ~]# stat /tmp/pass/ File: ‘/tmp/pass/’ ---->文件路徑 Size: 6 Blocks: 0 IO Block: 4096 directory ---->文件大小、塊、IO塊、目錄 Device: fd00h/64768d Inode: 203927352 Links: 2 ---->驅動、節點、鏈接 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) ---->訪問權限、UID、GID Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-06-22 15:13:16.331862500 +0800 ---->access time:訪問時間,簡寫為atime,讀取文件內容 Modify: 2016-06-22 15:13:16.331862500 +0800 ---->modify time:修改時間,簡寫為mtime,改變文件內容(數據) Change: 2016-06-22 15:13:16.331862500 +0800 ---->change time:改變時間,簡寫為ctime,元數據發生改變 Birth: -
修改文件時間戳信息:
命令格式:
touch [OPTION]... FILE...
選項:
-a: only atime:只修改訪問時間 -m: only mtime:只修改修改時間 -t STAMP:[[CC]YY]MMDDhhmm[.ss]:使用[[CC]YY]MMDDhhmm[.ss]替換全部時間 -c: 如果文件不存,則不予創建
示例:
[root@localhost ~]# stat /tmp/pass/ File: ‘/tmp/pass/’ Size: 6 Blocks: 0 IO Block: 4096 directory Device: fd00h/64768d Inode: 203927352 Links: 2 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-06-22 15:13:16.331862500 +0800 ---->修改訪問時間之前 Modify: 2016-06-22 15:13:16.331862500 +0800 Change: 2016-06-22 15:13:16.331862500 +0800 Birth: - [root@localhost ~]# touch -a /tmp/pass/ ---->修改訪問時間 [root@localhost ~]# stat /tmp/pass/ File: ‘/tmp/pass/’ Size: 6 Blocks: 0 IO Block: 4096 directory Device: fd00h/64768d Inode: 203927352 Links: 2 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-06-22 15:28:51.060845953 +0800 ---->修改訪問時間之后 Modify: 2016-06-22 15:13:16.331862500 +0800 Change: 2016-06-22 15:28:51.060845953 +0800 Birth: -
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
定義別名alias
命令格式:
alias [alias-name[=string] ...]
示例:
[root@localhost ~]# alias cdnet='cd /etc/sysconfig/network-scripts/' [root@localhost ~]# cdnet [root@localhost network-scripts]# pwd /etc/sysconfig/network-scripts
撤銷別名使用unalias
引用另一個命令的執行結果:管道、變量、“
“管道”示例:
[root@localhost ~]# cat /etc/passwd | grep root root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin dockerroot:x:983:978:Docker User:/var/lib/docker:/sbin/nologin
“變量”示例:
[root@localhost ~]# abc=$(cat /etc/fstab) [root@localhost ~]# echo $abc # # /etc/fstab # Created by anaconda on Fri Mar 11 22:14:07 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=73822afe-bc0 0-431b-8851-0151d8054a67 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 [root@localhost ~]# [root@localhost ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Fri Mar 11 22:14:07 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=73822afe-bc00-431b-8851-0151d8054a67 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0
““”示例:
[root@localhost ~]# echo `uname -r` 3.10.0-327.el7.x86_64
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[root@localhost ~]# ls /var | grep "^[1].*[0-9].*[[:lower:]]" 1ss5ss [root@localhost ~]# ls /var 1ss5ss adm crash empty games kerberos local log named opt run target www account cache db ftp gopher lib lock mail nis preserve spool tmp yp
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@localhost ~]# ls /etc | grep "^[[:digit:]].*[^[:digit:]]\>" 1aa 1ab 1ac 1ad (結果顯示的文件是我自己在/etc目錄下創建的,只是為了驗證正則表達式是否正確)
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
[root@localhost ~]# ls /etc | grep "^[^[:alpha:]][[:alpha:]].*" 1aa 1ab 1ac 1ad (結果顯示的文件是我自己在/etc目錄下創建的,只是為了驗證正則表達式是否正確)
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@localhost ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S) [root@localhost ~]# ls /tmp/ | grep tfile.* tfile-2016-06-22-16-03-58
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/ [root@localhost ~]# ls /tmp/mytest1/ pam.d pbm2ppa.conf pcp.env pear.conf pinforc pm portreserve prelink.conf.d profile.d purple passwd pcp pcp.sh php.d pki pnm2ppa.conf postfix printcap protocols python passwd- pcp.conf pear php.ini plymouth popt.d ppp profile pulse
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2/ [root@localhost ~]# ls /tmp/mytest2 ant.d dnsmasq.d ld.so.conf.d pam.d rc3.d rwtab.d xinetd.d auto.master.d dracut.conf.d libibverbs.d php.d rc4.d sane.d yum.repos.d bash_completion.d exports.d logrotate.d popt.d rc5.d setuptool.d binfmt.d gdbinit.d lsb-release.d prelink.conf.d rc6.d statetab.d cgconfig.d grub.d modprobe.d profile.d rc.d sudoers.d chkconfig.d init.d modules-load.d rc0.d reader.conf.d sysctl.d cron.d ipsec.d my.cnf.d rc1.d request-key.d tmpfiles.d depmod.d latrace.d oddjobd.conf.d rc2.d rsyslog.d usb_modeswitch.d
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@localhost ~]# cp -r /etc/[1,m,n]*.conf /tmp/mytest3 [root@localhost ~]# ls /tmp/mytest3 man_db.conf mke2fs.conf mtools.conf named.conf nfsmount.conf nsswitch.conf ntp.conf numad.conf
原創文章,作者:Anaconda,如若轉載,請注明出處:http://www.www58058.com/19423
寫的很棒,并且有案例作為輔助說明,有沒有嘗試過第10題以數字結尾會不會也復制過去