1.Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示
目錄管理管理類命令
mkdir
make directories
mkdir [OPTION]... DIRECTORY... 注意:路徑基名作為命令的作用對象時,基名之前的路徑必須要存在; -p:自動按需創建父目錄; -v:--verbose,顯示詳細過程; -m MODE:直接給定權限; [root@localhost ~]# mkdir -pv /tmp/mylinux/etc/sysconfig/network-scripts mkdir: created directory ‘/tmp/mylinux’ mkdir: created directory ‘/tmp/mylinux/etc’ mkdir: created directory ‘/tmp/mylinux/etc/sysconfig’ mkdir: created directory ‘/tmp/mylinux/etc/sysconfig/network-scripts’
rmdir
remove empty directories
rmdir [OPTION]... DIRECTORY... -p:刪除目錄后,如果其父目錄為空,則一并刪除; -v:顯示詳細過程; [root@localhost ~]# rmdir -pv /tmp/mylinux/etc/sysconfig/network-scripts/ rmdir: removing directory, ‘/tmp/mylinux/etc/sysconfig/network-scripts/’ rmdir: removing directory, ‘/tmp/mylinux/etc/sysconfig’ rmdir: removing directory, ‘/tmp/mylinux/etc’ rmdir: removing directory, ‘/tmp/mylinux’ rmdir: removing directory, ‘/tmp’ rmdir: failed to remove directory ‘/tmp’: Directory not empty
文件管理類命令
cp
copy files and directories
單源復制: cp [OPTION]... [-T] SOURCE DEST 如果DEST不存在,則事先創建此文件,并復制源文件的數據流至DEST中; 如果DEST存在: 如果DEST是非目錄文件,則覆蓋目標文件; 如果DEST是目錄文件,則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流; 多源復制: cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... 如果DEST不存在,則發生錯誤; 如果DEST存在: 如果DEST是非目錄文件,則發生錯誤; 如果DEST是目錄文件,則分別復制每個文件至目標目錄中,并保持原名; -i:交互式復制,即在覆蓋之前提醒用戶確認; -f:強制覆蓋目標文件; -r/R:遞歸復制(recursive); -d:復制符號鏈接本身,而非其指向的源文件; --preserve[=ATTR_LIST] mode:權限; ownership:屬主和屬組; timestamps:時間戳; context:安全標簽; links:符號鏈接; xattr:擴展屬性; all:上述所有屬性; -a:-dR --preserve=all,用于實現歸檔(archieve); [root@localhost ~]# cp /etc/hosts /tmp/host [root@localhost ~]# cp -r /var/log/ /tmp/
mv
move (rename) files
mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... -i:交互式(interactive); -f:強制移動(force); [root@localhost ~]# mv /tmp/host /tmp/hosts
rm
remove files or directories
rm [OPTION]... FILE... -i:交互式; -f:強制刪除; -r:遞歸刪除(刪除目錄:rm -rf /PATH/TO/DIR); 注意:危險操作:rm -rf /*; 所有不用的文件建議不要直接刪除,而是先移動至某個專用目錄(模擬回收站); [root@localhost ~]# rm -rf /tmp/log/
文件查看類命令
ls
list directory contents
ls [OPTION]... [FILE]... -a:顯示所有文件,包括隱藏文件; -A:顯示除.和..之外的所有文件; -l:--long,長格式列表,顯示文件的詳細屬性; -h:--human-readable,顯示文件大小換算后的值; -d:查看目錄本身而非其內部的文件列表; -r:逆序顯示(reverse); -R:遞歸顯示(recursive); [root@localhost ~]# ls -l /etc/issue -rw-r--r--. 1 root root 23 Dec 9 2015 /etc/issue 注意:文件屬性信息詳解: -:文件類型 -:常規文件,即f; d:directory,目錄文件; b:block device,塊設備文件,支持以“block”為單位進行隨機訪問; c:character device,字符設備文件,支持以“character”為單位進行線性訪問; major number:主設備號,用于標識設備類型,進而確定要加載的驅動程序; minor number:次設備號,用于標識同一類型中的不同設備; l:symbolic link,符號鏈接文件; p:pipe,命名管道; s:socket,套接字文件; rw-r--r--:文件權限 rw-:文件屬主的權限; r--:文件屬組的權限; r--:其他用戶(非屬主、屬組)的權限;1:使用數字表示文件被硬鏈接的次數; root:文件的屬主; root:文件的屬組; 23:數字表示文件的大小,單位是字節; Dec 9 2015:文件最近一次被修改的時間; /etc/issue:文件名;
file
determine file type
file FILE [root@localhost ~]# file /etc/issue /etc/issue: ASCII text [root@localhost ~]# file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped [root@localhost ~]# file /var/log/wtmp /var/log/wtmp: data 注意:file命令將文件分為以下三類: 文本文件(ASCII):包含可打印字符的文件; 可執行文件(binary):可以在系統運行的文件; 數據文件(data):包含不可打印的二進制字符的文件,但也不可以在系統運行;
cat
concatenate files and print on the standard output
連接并顯示文件
cat [OPTION]... [FILE]... -n:顯示行號; -E:顯示行結束符; [root@localhost ~]# cat -n /etc/passwd 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin 4 adm:x:3:4:adm:/var/adm:/sbin/nologin 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 6 sync:x:5:0:sync:/sbin:/bin/sync 7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 8 halt:x:7:0:halt:/sbin:/sbin/halt ...(此處省略) [root@localhost ~]# cat /etc/issue /etc/fstab \S Kernel \r on an \m # # /etc/fstab # Created by anaconda on Sun Aug 21 23:55:20 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 # UUID=3a80cc61-a45f-433f-992e-21e32ae89bcb / xfs defaults 0 0 UUID=4e2eb638-558e-4c6c-ae13-b0820a99acfe /boot xfs defaults 0 0 UUID=f6900d6b-f21f-4a13-953d-4d969aa0b845 /home xfs defaults 0 0 UUID=57d73846-3f09-4d1f-bfa4-57bace5fedc0 swap swap defaults 0 0
tac
concatenate and print files in reverse
是tac的反向顯示;
tac [OPTION]... [FILE]... [root@localhost ~]# tac /etc/issue Kernel \r on an \m \S
head
output the first part of files
查看文件的前n行,默認為前10行;
head [OPTION]... [FILE]... -#:查看前#行; [root@localhost ~]# head -5 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
tail
output the last part of files
tail [OPTION]... [FILE]... -#:查看后#行; -f:查看文件尾部內容后不退出,跟蹤顯示新增的行(Ctrl+c退出); [root@localhost ~]# tail -f /var/log/messages ...(此處省略) Aug 30 06:01:02 localhost systemd: Starting Session 3 of user root. Aug 30 07:01:01 localhost systemd: Started Session 4 of user root. Aug 30 07:01:01 localhost systemd: Starting Session 4 of user root. (光標停在此處)
more
file perusal filter for crt viewing
文件分屏查看,翻屏至文件尾部后自動退出;
more file
less
opposite of more
more file [root@localhost ~]# less /etc/rc.d/init.d/functions 注意:其具體的上下翻頁、查詢、退出等操作同使用man命令查看手冊的操作;
2.bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其演示
命令執行狀態返回值
bash通過狀態返回值來輸出此結果:
-
成功:0
-
失敗:1-255
注意:命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;
命令正常執行時,有的還會有命令返回值,根據命令及其功能的不同,其結果各不相同;
命令行展開
-
~:自動展開為用戶家目錄,或指定的用戶家目錄;
-
{ }:可承載一個以逗號分割的路徑列表,并能夠將其展開為多個路徑;
3.請使用命令行展開功能來完成以下練習
1).創建/tmp目錄下的:a_c,a_d,b_c,b_d
[root@localhost ~]# mkdir -v /tmp/{a,b}_{c,d} mkdir: created directory ‘/tmp/a_c’ mkdir: created directory ‘/tmp/a_d’ mkdir: created directory ‘/tmp/b_c’ mkdir: created directory ‘/tmp/b_d’
2).創建/tmp/mylinux目錄如下
[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 ~]# 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
4.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間信息
Linux系統的文件由3個部分組成:
-
數據(data):指普通文件中的實際數據;
-
元數據(metadata):指用來描述一個文件特征的系統數據,保存在inode中;
-
目錄項(directory entry):保存文件名;
文件的元數據信息及其含義如下:
Size:文件大??;
Blocks/IO Block:單位塊大小/塊的數量,二者乘積即為文件大??;
Device:設備號;
Access:文件類型與訪問權限;
Uid:文件所有者及其ID;
Gid:文件所屬組及其ID;
Links:文件硬鏈接次數,即文件名指向inode節點的數量;
atime:access time,文件被訪問的時間;
mtime:modify time,文件被修改的時間;
ctime:change time,文件被改變的時間,即inode節點信息被改變的時間;
Birth:文件被創建的時間;
查看文件元數據信息一般使用stat命令,而修改文件的時間信息一般用touch命令;
stat
display file or file system status
stat FILE [root@localhost ~]# stat /etc/issue File: ‘/etc/issue’ Size: 23 Blocks: 8 IO Block: 4096 regular file Device: 802h/2050d Inode: 33595545 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:etc_t:s0 Access: 2016-08-28 04:20:26.763999574 +0800 Modify: 2015-12-09 17:59:15.000000000 +0800 Change: 2016-08-21 23:55:30.405994623 +0800 Birth: -
touch
change file timestamps
touch [OPTION]... FILE... -c:指定的文件路徑不存在時不予創建; -a:僅修改access time; -m:僅修改modify time; -t STAMP:使用[[CC]YY]MMDDhhmm[.ss]格式; [root@localhost ~]# touch /tmp/hello.txt
5.如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果
命令別名的定義與取消分別使用alias和unalias命令;
alias
Define or display aliases
[root@localhost ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' 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@localhost ~]# alias cls='clear' 注意:使用alias命令定義的別名僅對當前shell進程有效;
unalias
Remove each NAME from the list of defined aliases
[root@localhost ~]# unalias cls
引用命令的執行結果有以下兩種形式:
-
$(COMMAND)
-
`COMMAND`
[root@localhost ~]# echo $(pwd)/root [root@localhost ~]# echo `pwd`/root
6.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其他字符)的文件或目錄
[root@localhost ~]# ls -d /var/l*[0-9]*[[:lower:]]
7.顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
[root@localhost ~]# ls -d /etc/[0-9]*[^0-9]
8.顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄
[root@localhost ~]# ls -d /etc/[^a-z][a-z]*
9.在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:/tfile-2016-05-27-09-32-22
[root@localhost ~]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
10.復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
[root@localhost ~]# mkdir /tmp/mytest1 [root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/
11.復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
[root@localhost ~]# mkdir /tmp/mytest2 [root@localhost ~]# cp -r /etc/*.d /tmp/mytest2
12.復制/etc目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
[root@localhost ~]# mkdir /tmp/mytest3 [root@localhost ~]# cp -r /etc/[l,m,n]*.conf /tmp/mytest3
原創文章,作者:dawning,如若轉載,請注明出處:http://www.www58058.com/48745