1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
-
cat, tac
-
more
more [OPTIONS…] FILE…
-d: 顯示翻頁及退出提示
-
less
less [OPTIONS…] FILE…
-
head
head [OPTION]… [FILE]…
-c #: 指定獲取前#字節
-n #: 指定獲取前#行
-#:
-
tail
tail [OPTION]… [FILE]…
-c #: 指定獲取后#字節
-n #: 指定獲取后#行
-#:
-f: 跟蹤顯示文件新追加的內容;
more:
[root@CentOS6 tmp]# more test.txt 111 222 dd
less:
111 222 ddd test.txt (END)
head和tail:
[root@CentOS6 tmp]# cat test.txt 111 222 ddd [root@CentOS6 tmp]# head -2 test.txt |tail -1 222
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
-
執行狀態返回值:
$?:保存最近一條命令執行狀態結果;
0:成功
1-255:失敗
[root@CentOS6 tmp]# ls fstab inittab l l1d l23f lABd magedu.com mageedu mageedu.com passwd.out system-release test test.out vimtest who.out [root@CentOS6 tmp]# echo $? 0 [root@CentOS6 ~]# lsls /etc -bash: lsls: command not found [root@CentOS6 ~]# echo $? 127
-
命令行展開:
~: 展開為用戶的主目錄
~USERNAME:展開為指定用戶的主目錄
{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑
[root@CentOS6 ~]# ls ~ anaconda-ks.cfg bin install.log install.log.syslog [root@CentOS6 ~]# pwd /root [root@CentOS6 ~]# cd ~santi [root@CentOS6 santi]# pwd /home/santi [root@CentOS6 santi]# cd [root@CentOS6 ~]# mkdir -pv ~/test/{bin,sbin/{test1,test2}} mkdir: 已創建目錄 "/root/test" mkdir: 已創建目錄 "/root/test/bin" mkdir: 已創建目錄 "/root/test/sbin" mkdir: 已創建目錄 "/root/test/sbin/test1" mkdir: 已創建目錄 "/root/test/sbin/test2"
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
[root@CentOS6 ~]# mkdir /tmp/{a,b}_{c,d} [root@CentOS6 ~]# ls /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
[root@CentOS6 tmp]# mkdir -pv /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/{local,log,run}}mkdir: 已創建目錄 "/tmp/mylinux" mkdir: 已創建目錄 "/tmp/mylinux/bin" mkdir: 已創建目錄 "/tmp/mylinux/boot" mkdir: 已創建目錄 "/tmp/mylinux/boot/grub" mkdir: 已創建目錄 "/tmp/mylinux/dev" mkdir: 已創建目錄 "/tmp/mylinux/etc" mkdir: 已創建目錄 "/tmp/mylinux/etc/rc.d" mkdir: 已創建目錄 "/tmp/mylinux/etc/rc.d/init.d" mkdir: 已創建目錄 "/tmp/mylinux/etc/sysconfig" mkdir: 已創建目錄 "/tmp/mylinux/etc/sysconfig/network-scripts" mkdir: 已創建目錄 "/tmp/mylinux/lib" mkdir: 已創建目錄 "/tmp/mylinux/lib/modules" mkdir: 已創建目錄 "/tmp/mylinux/lib64" mkdir: 已創建目錄 "/tmp/mylinux/proc" mkdir: 已創建目錄 "/tmp/mylinux/sbin" mkdir: 已創建目錄 "/tmp/mylinux/sys" mkdir: 已創建目錄 "/tmp/mylinux/tmp" mkdir: 已創建目錄 "/tmp/mylinux/usr" mkdir: 已創建目錄 "/tmp/mylinux/usr/local" mkdir: 已創建目錄 "/tmp/mylinux/usr/local/bin" mkdir: 已創建目錄 "/tmp/mylinux/usr/local/sbin" mkdir: 已創建目錄 "/tmp/mylinux/var" mkdir: 已創建目錄 "/tmp/mylinux/var/local" mkdir: 已創建目錄 "/tmp/mylinux/var/log" mkdir: 已創建目錄 "/tmp/mylinux/var/run" [root@CentOS6 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 ├── local ├── log └── run
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
-
元數據信息包含:
File:文件名
Size:文件大小 Blocks:占據的磁盤塊 IO Block:I/O塊讀取大小
Device:所在設備 Inode:占據的Inode號 Links:連接數
Access:文件權限 Uid:屬主 Gid:屬組
Access:最近訪問時間
Modify:文件內容最近修改時間
Change:元數據最近修改時間,如果修改了元數據,該時間戳會自動變化
-
查看:stat命令
[root@CentOS6 tmp]# stat fstab File: "fstab" Size: 783 Blocks: 8 IO Block: 4096 普通文件 Device: fd00h/64768d Inode: 2093137 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-17 13:28:48.349008446 +0800 Modify: 2016-07-17 13:28:48.349008446 +0800 Change: 2016-07-17 13:28:48.349008446 +0800
-
修改:touch命令
touch:
-
語法:
-
touch [OPTION]… FILE…
-
-a: only atime
-
-m: only mtime
-
-t STAMP:
[[CC]YY]MMDDhhmm[.ss]
-
-c: 如果文件不存,則不予創建
[root@CentOS6 tmp]# stat fstab File: "fstab" Size: 783 Blocks: 8 IO Block: 4096 普通文件 Device: fd00h/64768d Inode: 2093137 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-17 13:28:48.349008446 +0800 Modify: 2016-07-17 13:28:48.349008446 +0800 Change: 2016-07-17 13:28:48.349008446 +0800 [root@CentOS6 tmp]# touch -a fstab [root@CentOS6 tmp]# stat fstab File: "fstab" Size: 783 Blocks: 8 IO Block: 4096 普通文件 Device: fd00h/64768d Inode: 2093137 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-17 13:41:17.421007929 +0800 Modify: 2016-07-17 13:28:48.349008446 +0800 Change: 2016-07-17 13:41:17.421007929 +0800 [root@CentOS6 tmp]# touch -m fstab [root@CentOS6 tmp]# stat fstab File: "fstab" Size: 783 Blocks: 8 IO Block: 4096 普通文件 Device: fd00h/64768d Inode: 2093137 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-17 13:41:17.421007929 +0800 Modify: 2016-07-17 13:41:29.734007208 +0800 Change: 2016-07-17 13:41:29.734007208 +0800
###Change因為元數據修改所以自動變化。
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
-
別名:alias命令
-
查看:
[root@CentOS6 tmp]# alias alias cp='cp -i' 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@CentOS6 tmp]# alias grep='grep --color=auto' [root@CentOS6 tmp]# alias alias cp='cp -i' alias grep='grep --color=auto'
###以上定義只存在于當前bash進程,切換進程或者關閉進程就失效,如果想永久定義別名,需要在配置文件中定義。
-
命令引用:
name=`COMMAND`, name=$(COMMAND)
[root@CentOS6 tmp]# name=`hostname` [root@CentOS6 tmp]# echo $name CentOS6 [root@CentOS6 tmp]# name2=$(hostname) [root@CentOS6 tmp]# echo $name2 CentOS6
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[root@CentOS6 ~]# ls /var/1*[0-9]*[a-z] ls: 無法訪問/var/1*[0-9]*[a-z]: 沒有那個文件或目錄 [root@CentOS6 ~]# ls /var/1*[[:digit]]*[[:lower:]] ls: 無法訪問/var/1*[[:digit]]*[[:lower:]]: 沒有那個文件或目錄
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@CentOS6 ~]# ls /etc/[0-9]*[^[:digit:]] ls: 無法訪問/etc/[0-9]*[^[:digit:]]: 沒有那個文件或目錄
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
[root@CentOS6 ~]# ls /etc/[^[:alpha:]][[:alpha:]]* ls: 無法訪問/etc/[^[:alpha:]][[:alpha:]]*: 沒有那個文件或目錄
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@CentOS6 ~]# mkdir /tmp/tfile-`date +%F-%H-%M-%S` [root@CentOS6 ~]# ls /mtp fstab mylinux tfile-2016-07-17-14-07-23
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@CentOS6 mytest1]# cp -a /etc/p*[^0-9] . [root@CentOS6 mytest1]# ls pam.d passwd- pinforc pm popt.d ppp prelink.conf.d profile.d purple pango pbm2ppa.conf pki pm-utils-hd-apm-restore.conf portreserve prelink.cache printcap protocols passwd pcmcia plymouth pnm2ppa.conf postfix prelink.conf profile pulse
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@CentOS6 tmp]# cp -a /etc/*.d mytest2/ [root@CentOS6 tmp]# ls mytest2/ ant.d cron.d event.d logrotate.d oddjobd.conf.d profile.d rc3.d rc.d sane.d sysctl.d bash_completion.d depmod.d init.d lsb-release.d pam.d rc0.d rc4.d request-key.d setuptool.d xinetd.d cgconfig.d dnsmasq.d latrace.d makedev.d popt.d rc1.d rc5.d rsyslog.d statetab.d yum.repos.d chkconfig.d dracut.conf.d ld.so.conf.d modprobe.d prelink.conf.d rc2.d rc6.d rwtab.d sudoers.d
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@CentOS6 tmp]# cp -a /etc/[1mn]*.conf mytest3/ [root@CentOS6 tmp]# ls mytest3/ mke2fs.conf mtools.conf nfsmount.conf nsswitch.conf ntp.conf
原創文章,作者:sandiegoit,如若轉載,請注明出處:http://www.www58058.com/24544
寫的很好,排版也很漂亮,加油