N25_第二周博客作業:
1、linux上的文件管理命令都有哪些,其常用的使用方法及其相關示例演示。
Linux上常見的文件管理類命令有mkdir、touch、cp、mv、rm、stat。
mkdir:創建新目錄
SYNOPSIS
mkdir [OPTION]… DIRECTORY…
常用:
1、直接建目錄
[root@test setuptmp]# mkdir aa.tmp [root@test setuptmp]# ll 總用量 8 drwxr-xr-x. 2 root root 6 12月 9 15:45 aa.tmp
2、創建多級目錄
[root@test setuptmp]# mkdir /tmp/aa/aa/aa/aa/ -pv mkdir: 已創建目錄 "/tmp/aa" mkdir: 已創建目錄 "/tmp/aa/aa" mkdir: 已創建目錄 "/tmp/aa/aa/aa" mkdir: 已創建目錄 "/tmp/aa/aa/aa/aa/" [root@test setuptmp]#
touch:創建文件及修改時間戳
SYNOPSIS
touch [OPTION]… FILE…
常用:文件存在就改時間戳,文件不存在就創建文件。
[root@test setuptmp]# ll -rw-r--r--. 1 root root 237 12月 8 23:02 id_rsa.pub [root@test setuptmp]# touch id_rsa.pub [root@test setuptmp]# ll -rw-r--r--. 1 root root 237 12月 9 15:51 id_rsa.pub [root@test setuptmp]# touch aaa [root@test setuptmp]# ll -rw-r--r--. 1 root root 0 12月 9 15:51 aaa -rw-r--r--. 1 root root 237 12月 9 15:51 id_rsa.pub
cp:拷貝文件
SYNOPSIS
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
常用:
復制單個文件到一個目錄中
[root@test setuptmp]# ll aa.tmp/ 總用量 0 [root@test setuptmp]# cp aaa aa.tmp/ [root@test setuptmp]# ll aa.tmp/ 總用量 0 -rw-r--r--. 1 root root 0 12月 9 15:57 aaa
復制多個文件到一個目錄中
[root@test setuptmp]# cp fstab id_rsa.pub aa.tmp/ [root@test setuptmp]# ll aa.tmp/ 總用量 8 -rw-r--r--. 1 root root 0 12月 9 15:57 aaa -rw-r--r--. 1 root root 617 12月 9 15:58 fstab -rw-r--r--. 1 root root 237 12月 9 15:58 id_rsa.pub
復制目錄或多個目錄到一個目錄中
[root@test setuptmp]# cp -r tmp fonts mytest/ [root@test setuptmp]# ll mytest/ 總用量 4 drwxr-xr-x. 2 root root 38 12月 9 15:59 fonts drwxr-xr-x. 3 root root 4096 12月 9 15:59 tmp
mv:移動或重命名文件
SYNOPSIS
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用:
示例:
~]# cp /tmp/a/test/new_file /tmp/a/test/new_file2
rm:刪除文件或目錄
SYNOPSIS
rm [OPTION]… FILE…
常用:
刪除文件
[root@test setuptmp]# rm tmp/aaabb
rm:是否刪除普通空文件 "tmp/aaabb"?y
刪除文件夾,需要-r,加了-f后不會提示。
原來目錄中有這些文件:
tmp ├── aaa ├── aaabb ├── aaab.sh ├── aaacc ├── linuxscan.sh ├── Linux_scan.sh ├── scan.sh └── test1.sh [root@test setuptmp]# rm -rf tmp/* [root@test setuptmp]# ll tmp/ 總用量 0
stat:查看文件狀態屬性
示例:
[root@test setuptmp]# stat /etc/passwd 文件:"/etc/passwd" 大小:1747 塊:8 IO 塊:4096 普通文件 設備:fd00h/64768d Inode:403454924 硬鏈接:1 權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 環境:system_u:object_r:passwd_file_t:s0 最近訪問:2016-12-08 23:02:03.651620059 +0800 最近更改:2016-12-08 23:01:59.963611905 +0800 最近改動:2016-12-08 23:01:59.966611911 +0800 創建時間:-
題2:bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示
1、命令執行狀態返回值
返回值用于判定命令執行正確與否(0正確,非0為不正確)
[root@test setuptmp]# date 2016年 12月 09日 星期五 16:08:52 CST [root@test setuptmp]# echo $? 0 [root@test setuptmp]# data -bash: data: 未找到命令 [root@test setuptmp]# echo $? 127
2、命令行展開
以bash能夠解釋的符號來代替命令中的一些重復字段,一定要用{}引起來。
錯誤方式:
[root@test setuptmp]# touch aa,bb,cc,dd,ee [root@test setuptmp]# ls aaa aa,bb,cc,dd,ee aa.tmp bb.tmp fonts fstab id_rsa.pub mytest tmp 正確方式: [root@test setuptmp]# touch {aa,bb,cc,dd,ee} [root@test setuptmp]# ls aa aaa aa,bb,cc,dd,ee aa.tmp bb bb.tmp cc dd ee fonts fstab id_rsa.pub mytest tmp
題3:使用命令行展開完成以下練習
(1)創建/tmp目錄下的:a_c,a_d,b_c,b_d
[root@test setuptmp]# ls /tmp/ [root@test setuptmp]# touch /tmp/a_{c,d} /tmp/b_{c,d} [root@test setuptmp]# ls /tmp/ a_c a_d b_c b_d
(2)創建/tmp/mylinux下的目錄結構
[root@test setuptmp]# mkdir /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}} -pv 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/bin" mkdir: 已創建目錄 "/tmp/mylinux/usr/sbin" mkdir: 已創建目錄 "/tmp/mylinux/var" mkdir: 已創建目錄 "/tmp/mylinux/var/lock" mkdir: 已創建目錄 "/tmp/mylinux/var/log" mkdir: 已創建目錄 "/tmp/mylinux/var/run"
題4:文件的元數據信息有哪些,分別表示什么含義,如何查看,如何修改文件的時間戳信息。
[root@test setuptmp]# stat fstab 文件:"fstab" 大?。?17 塊:8 IO 塊:4096 普通文件 設備:fd00h/64768d Inode:269696854 硬鏈接:1 權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 環境:unconfined_u:object_r:default_t:s0 最近訪問:2016-12-09 15:58:00.125345432 +0800 最近更改:2016-12-09 15:50:15.652338394 +0800 最近改動:2016-12-09 15:50:15.652338394 +0800 創建時間:-
輸出結果釋義:
File:文件名
Size:文件大小
Block:占據多少磁盤塊
IO Block:一個磁盤塊大小為4096k
regular empty file:常規的空文件
Device:文件所在設備主編號和次編號
Inode:inode編號
Linux:文件被硬鏈接的次數,1表示沒有硬鏈接
第一個Access:權限,屬主uid及名字,屬組gid及名字
第二個Access:文件最后一次被訪問的時間
Modify:文件的數據最后一次被修改的時間
Change:文件的元數據最后一次變化的時間
修改文件的時間戳:touch命令
touch [OPTION]… FILE…
-c: 指定的文件路徑不存在時不予創建;
-a: 僅修改access time;
-m:僅修改modify time;
-t STAMP 指定修改的時間
[[CC]YY]MMDDhhmm[.ss]
題5:如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果
定義別名:
1、臨時
[root@test setuptmp]# 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@test setuptmp]# alias cls=clear [root@test setuptmp]# alias alias cls='clear' 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'
2、永久
定義在~/.bashrc或者/etc/bashrc
命令中引用另一個命令的執行結果:
[root@test setuptmp]# echo -e "當前已經登入用戶\n $(w)" 當前已經登入用戶 16:46:14 up 5 days, 22:20, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.50.40.203 11:23 6.00s 0.38s 0.00s w
題6:顯示/var目錄下所有以l開頭的,以一個小寫字母結尾,且中間至少出現一位數字(可以有其他字符)的文件或目錄
[root@test setuptmp]# find /var/ -name "l[0-9]*[a-z]" [root@test setuptmp]# ls /var/l[0-9]*[a-z]
題7:顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
[root@test setuptmp]# find /etc/ -name "[0-9]*[^0-9]" [root@test setuptmp]# ls /etc/[0-9]*[^0-9]
題8:顯示/etc目錄下,以非字母開頭,后邊跟了一個字母以及其他任意長度任意字符的文件或目錄
[root@test setuptmp]# find /etc/ -name "[^[:alpha:]][[:alpha:]]*"
[root@test setuptmp]# ls /etc/[^[:alpha:]][[:alpha:]]*
題9:在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名如tfile-2016-05-26-08-32-22
[root@test setuptmp]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
題10:復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
[root@test setuptmp]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1
題11:復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
[root@test setuptmp]# cp -r /etc/*.d /tmp/mytest2
題12:復制/etc目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
[root@test setuptmp]# cp -r /etc/[lmn]*.conf /tmp/mytest3
原創文章,作者:oranix,如若轉載,請注明出處:http://www.www58058.com/63099
贊,整體還是不錯的,前幾個題其實可以把圖片去掉會更好一點~~加油~