馬哥教育網絡班N22期+第2周課程練習
1 linux上的常用文件管理類命令
1.1 常用文件查看命令
MORE命令
-
作用:分屏顯示查看文件內容
-
用法:
more file
-
查看翻頁方式:
-
B鍵向上 一頁
-
空格向下一頁
-
enter鍵一行一行翻閱
-
翻到最后一行自動退出
LESS命令
-
作用:分屏顯示查看文件內容
-
用法:
less file
-
查看方式:less命令與查看man文檔的方式相同
CAT命令
-
用法:
cat [OPTION]... [FILE]...
-
cat命令可接多個文件一起查看
-
常用選項:
-
-n:顯示輸出文本信息的行號
-
-E:顯示行結束符$
TAC命令
-
作用:顯示文本信息
-
使用方法:與cat命令使用方法對應
-
與cat的區別:tac命令將文本的每一行倒序顯示
HEAD命令
-
作用:查看文本文件件前n行
-
用法:
head [OPTION]... [FILE]...
-
-n # | -# :指定查看文件的前#行
-
常用選項:
-
示例:
-
head -n 2 /etc/fstab
#顯示fstab文件前2行 -
heas -2 /etc/fstab
TAIL命令
-
作用:查看文件后n行,默認尾部10行
-
用法
tail [OPTION]... [FILE]...
-
常用選項:
-
-n # | -# :指定查看文件后#行
-
-f:查看文件尾部內容結束后不退出并監視,跟隨顯示新增的行;
-
示例:
-
tail -n 3 /etc/fstab
-
tail -3 /etc/fstab
FILE命令
-
作用:確定文件內容類型(determine file type)
-
用法:
file [FILE]...
-
示例:
-
[root@Red Hat etc]# file /etc/inittab /etc/inittab: ASCII English text
1.2 文件的常用管理類命令
TOUCH命令
-
作用:用來更改時間戳,也可以創建空文件
-
用法:
touch [OPTION]... FILE...
-
常用選項:
-
touch -m -t 0212010303.03 /tmp/a
-
修改a文件的mtime時間為2012-12-01 03:03:03
-
STAMP格式:
[[CC]YY]MMDDhhmm[.ss]
-
-c: 指定的文件路徑不存在時不予創建;
-
-a: 僅修改access time;
-
-m:僅修改modify time;
-
-t STAMP
-
示例:
CP命令
-
功能:文件或目錄復制命令
-
語法格式:
-
cp [OPTION]... SOURCE... DIRECTORY
-
cp [OPTION]... -t DIRECTORY SOURCE...
-
如目標目錄不存在,顯示錯誤信息;
-
如果目標目錄存在:
-
如果DEST是非目錄文件,顯示錯誤信息;
-
如果DEST是目錄文件:分別復制每個文件至目標目錄中,并保持原名;
-
cp [OPTION]... [-T] SOURCE DEST
-
如果目標(DEST)是非目錄文件:則覆蓋目標文件;
-
如果目標(DEST)是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流;
-
則事先創建此文件,并復制源文件的數據流至DEST中;
-
如果目的(DEST)不存在:
-
如果目標存在:
-
單源復制:
-
多源復制:
-
注意:默認情況只復制文件,不復制目錄。
-
默認情況下復制鏈接文件,只會復制鏈接文件本身
-
常用選項:
-
mode:權限
-
ownership:屬主和屬組
-
timestamps: 時間戳
-
context:安全標簽
-
xattr:擴展屬性
-
links:符號鏈接
-
all:上述所有屬性
-
-r | -R ,遞歸復制,可以復制目錄及其目錄中的文件
-
-i,交互式提醒,默認為cp的命令別名
-
-p,保留原文件的屬主,時間戳
-
-a,遞歸保留源文件的所有屬性,用于歸檔備份
-
-d:復制符號鏈接文件本身,而非其指向的源文件;
-
-f:強制覆蓋目標文件;
-
—preserv= :保留源文件特定的屬性信息
MV命令
-
作用:移動并可對文件重命名,默認情況可以移動目錄
-
用法:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE..
-
常用選項:
-
-i:顯示警告信息,默認
-
-f:強制操作force)
RM命令
-
rm命令默認的命令別名:
-
[root@Red Hat ]# type rm rm is aliased to `rm -i'
可使用/rm不使用別名
-
用法:
rm [OPTION]... FILE...
-
常用選項:
-
-f,強行刪除,不提示
-
-r,遞歸刪除目錄
-
-rf,遞歸刪除目錄
注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄,以免重要文件被誤刪;(模擬回收站)
INSTALL命令
-
功能:復制文件并設置屬性
-
用法:
-
install [OPTION]... -d DIRECTORY...
-
install [OPTION]... SOURCE... DIRECTORY
-
install [OPTION]… -t DIRECTORY SOURCE…
-
install [OPTION]... [-T] SOURCE DEST
-
單源復制:
-
多源復制:
-
創建目錄:
注意:僅復制文件并制定屬性和權限,不能復制目錄。
-
常用選項:
-
-m, –mode=MODE:設定目標文件權限,默認為755;
-
-o, –owner=OWNER:設定目標文件屬主;
-
-g, –group=GROUP:設定目標文件屬組;
-
示例:
-
nstall -o jwl -g milieux /etc/fstab /tmp/fsta
2 bash的工作特性之命令執行狀態返回值和命令行展開所涉及內容
2.1 bash工作特性之命令執行的狀態返回值
-
bash的命令執行狀態返回值可用來表示命令執行成功與否:
-
命令執行成功:0
-
命令執行失?。?-255
-
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中
-
因此可以使用
echo $?
查看上一條命令的執行狀態結果注意:命令正常執行時,有的還回有命令返回值。要注意命令返回值與命令執行狀態返回值的區別。
-
示例:
-
# ls &> /dev/null
-
echo $?
-
0
-
# lss &>/dev/null
-
echo $?
-
1
-
命令返回值::
-
[root@Red Hat mytest3]# ls mdadm.conf mtools.conf
-
命令執行的狀態返回值:
3 如何定義一個命令別名
alias命令
作用:設置命令別名
用法:alias CMDALIAS=‘COMMAND [OPTION] [argument]‘
注意:在shell中定義的別名僅在當前shell生命周期中有效,別名的有效范圍僅為當前shell進程。
unalias命令
作用:取消命令別名
用法: unalias CMDALIAS
如需執行命名本身:\CMD
4 如何在命令中引用另一個命令的執行結果
-
用法1:$(command)
-
用法2:反引號`COMMAND`,
-
作用:把命令中某個子命令替換為其執行結果的過程。
-
示例: echo “The current directory is $(pwd)” touch ./file-$(date +%F-%H-%M-%S).txt #創建當前以時間為名稱的文件
5 文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息
STAT命令
-
顯示文件或者文件系統的屬性信息查
-
用法:
stat FILE…
-
其中信息包含了文件屬性的三種時間:時間戳
-
access time:表示我們最后一次訪問(僅僅是訪問,沒有改動)文件的時間
-
modify time:表示我們最后一次修改文件的時間
-
change time:表示我們最后一次對文件屬性改變的時間,包括權限,大小,屬性等等。
-
示例:
-
[root@Red Hat Enterprise Linux etc]# stat /etc/inittab File: `/etc/inittab' Size: 884 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 1175722 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-24 09:32:47.041490112 +0800 Modify: 2016-07-24 18:25:13.351570780 +0800 Change: 2016-07-24 18:25:13.351570780 +0800
6 練習
6.1 使用命令行展開功能來完成以下練習
創建/tmp目錄下的:
a_c
,a_d
,b_c
,b_d
創建/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
示例代碼:
1. mkdir /tmp/{a,b}_{c,d} 2. mkdir -pv /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}}
6.2 顯示/var目錄下,所有以1開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其他字符)的文件或目錄
示例代碼:
ls -d 1*[0-9]*[[:lower:]]
6.3 顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
示例代碼:
ls -d [0-9]*[^0-9] /etc
6.4 顯示/etc目錄下,以非字母開頭,后面跟一個字母以及其它任意長度任意字符的文件或目錄
ls -d [^a-z][a-z]*
6.5 在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
touch tile-$(date +%Y-%m-%d-%H-%M-%S)
6.6 復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
cp -r /etc/p*[^0-9] /tmp/mytest1
6.7 復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
cp -r /etc/*.d /tmp/mytest2
6.8 復制/etc目錄下所有以1或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
cp -r [1mn]*.conf /tmp/mytest3
原創文章,作者:N22-武漢-enfp,如若轉載,請注明出處:http://www.www58058.com/40016
如果能在文件管理類命令說明后添加一些典型的使用樣例就更好了