1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示
cd、pwd、ls、alias、cat、more、less、tail、cut、wc、touch、mv、cp、rm
pwd:用戶當前所在目錄
[xuc@localhost ~]$ pwd /home/xuc
cd:切換目錄
cd [/PATH/TO/SOMEDIR]:切換至某一個文件目錄
[root@localhost ~]# cd / //切換到根目錄 [root@localhost /]# ls //查看根目錄所有文件 bin dev home lib64 media opt root sbin sys usr boot etc lib lost+found mnt proc run srv tmp var [root@localhost /]# cd /dev //切換到dev目錄下 [root@localhost dev]#
cd ~:切換到家目錄下
[root@localhost dev]# [root@localhost dev]# cd ~ [root@localhost ~]# pwd /root [root@localhost ~]# su xuc [xuc@localhost root]$ cd ~ [xuc@localhost ~]$ pwd /home/xuc
cd -:前后兩次目錄之間切換
[root@localhost ~]# cd /etc/ [root@localhost etc]# cd - /root [root@localhost ~]# cd - /etc [root@localhost etc]#
echo $PWD:回顯當前目錄
[root@localhost etc]# echo $PWD /etc
ls:list查看目錄下所有文件
ls -a:顯示隱藏文件
[root@localhost etc]# ls -a . fcoe mail.rc rpm .. festival makedumpfile.conf.sample rsyncd.conf abrt filesystems man_db.conf rsyslog.conf adjtime firewalld maven rsyslog.d aliases fonts mke2fs.conf rwtab aliases.db fprintd.conf modprobe.d rwtab.d
ls -l:顯示文件詳細信息,文件名、類型、大小、權限、屬主屬組、修改時間、硬連接數
[root@localhost etc]# ls -l total 1884 drwxr-xr-x. 3 root root 4096 Aug 3 17:50 abrt -rw-r--r--. 1 root root 16 Aug 3 18:28 adjtime -rw-r--r--. 1 root root 1518 Jun 7 2013 aliases -rw-r--r--. 1 root root 12288 Aug 3 09:30 aliases.db drwxr-xr-x. 2 root root 4096 Aug 3 17:52 alsa drwxr-xr-x. 2 root root 4096 Aug 3 18:04 alternatives -rw-------. 1 root root 541 Jul 27 2015 anacrontab -rw-r--r--. 1 root root 55 Mar 5 2015 asound.conf -rw-r--r--. 1 root root 1 Nov 19 2015 at.deny
ls -d:查看目錄自身而非其內部的文件列表
[root@localhost var]# ls -d
ls -r:逆序顯示
[root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos [root@localhost ~]# ls -r Videos Public Music Downloads Desktop Templates Pictures initial-setup-ks.cfg Documents anaconda-ks.cfg
ls -R:文件遞歸顯示,顯示文件目錄及目錄內容
[root@localhost ~]# ls -R .: anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos ./Desktop: ./Documents: ./Downloads: ./Music: ./Pictures: ./Public: ./Templates: ./Videos:
alias:定義別名,相當于快捷命令
[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'
cat:concatenate文本文件查看器
-n:給顯示的文本行統一編號
[root@localhost ~]# cat /tmp/test2 #!/bin/bash useradd o useradd p useradd q id -u o >>a.txt id -u p >>a.txt id -u q >>a.txt sum=0 while read LINE do ((sum+=$LINE)) > /dev/null 2>&1 done < a.txt echo $sum [root@localhost ~]# cat -n /tmp/test2 1 #!/bin/bash 2 useradd o 3 useradd p 4 useradd q 5 id -u o >>a.txt 6 id -u p >>a.txt 7 id -u q >>a.txt 8 9 sum=0 10 11 while read LINE 12 do 13 14 15 ((sum+=$LINE)) > /dev/null 2>&1 16 17 done < a.txt 18 19 echo $sum
tac, head, tail, more, less:性質和cat命令相同,都是查看文本文件內容
tac:倒序顯示文本內容
head -n:查看文本前n行
tail -n:查看文本后n行
more:翻屏至文件尾部后自動退出
less:與more類似,不會自動退出,隨意產看文本文件內容
wc:文字統計
-l:顯示文本文件有多少行
-w:有多少個單詞
-c:有多少個字節
[root@localhost tmp]# wc -c functions 13948 functions [root@localhost tmp]# wc -w functions 2030 functions [root@localhost tmp]# wc -c functions 13948 functions
cut:文件中每一行的內容截取掉
-d:‘ ‘以什么字符分割
-f:#顯示分隔后的第幾個字符(從1開始算)
[root@localhost tmp]# wc -l functions |cut -d' ' -f2 functions
touch:創建文件
rm:移除文件
-i:交互式,提示用戶是否刪除文件(默認alias rm='rm -i')
[root@localhost tmp]# rm test4 rm: remove regular empty file ‘test4’? y [root@localhost tmp]#
-f:強制移除,無交互式提示
-r:遞歸,刪除目錄下所有文件
mv:移動文件所在目錄
[root@localhost /]# ls bin dev home lib64 media opt root sbin sys usr boot etc lib lost+found mnt proc run srv tmp var [root@localhost /]# mv /tmp/test / [root@localhost /]# ls bin dev home lib64 media opt root sbin sys tmp var boot etc lib lost+found mnt proc run srv test usr
cp:復制文件
-i:交互式復制,即覆蓋之前提醒用戶確認;
-f:強制覆蓋目標文件;
-r, -R:遞歸復制目錄;
-d:復制符號鏈接文件本身,而非其指向的源文件;
-a:-dR –preserve=all, archive,用于實現歸檔;
[root@localhost /]# cp /etc/grub2.cfg /tmp/ cp: overwrite ‘/tmp/grub2.cfg’? y [root@localhost /]# cp -r /etc/grub2.cfg /tmp/
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示
bash的工作特性有很多:命令別名、命令狀態返回值、引用、快捷鍵、路徑和命令補全、命令行展開、glob特性、變量、I/O重定向和管道等等
命令執行狀態返回值:0表示成功,1~255表示失敗
[root@localhost /]# echo "hello world" hello world [root@localhost /]# echo $? //返回上一條執行結果狀態成功與否 0 [root@localhost /]# echo $PATH //當前用戶shell所在路徑 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@localhost /]#
把命令行的給定的特殊符號自動替換為相應字符串的機制;
~: 自動替換為用戶家目錄;
~USERNAME:自動替換為指定用戶的家目錄;
{}:可承載一個以逗號分隔的路徑列表,能夠將其展開為多個獨立路徑
[root@localhost ~]# cd /etc/ [root@localhost etc]# cd ~ [root@localhost ~]#
3、請使用命令行展開功能來完成以下練習:
(1)創建/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@localhost ~]# [root@localhost ~]# mkdir -pv /tmp/{a_c,a_d,b_c,b_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’ [root@localhost ~]# ls /tmp/ a= a_c a_d a.txt b= b_c b_d c= [root@localhost ~]# 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/{lock,log,run}}
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息
文件元數據包括:文件大小、權限、屬主屬組、時間戳 、數據塊指針
以上顧名思義,這里解釋數據塊指針,我們都知道數據存儲在硬盤上,存放是以塊存放,為了便于存儲和查找我們對每個塊進行編號,數據指針就是指向這些數據塊編號的內容
[root@localhost ~]# ls -i //查看inode 1577704 anaconda-ks.cfg 1577726 Downloads 1577720 mylinux 1577727 Templates 1577725 Desktop 1577714 initial-setup-ks.cfg 1577731 Pictures 1577732 Videos 1577729 Documents 1577730 Music 1577728 Public
文件時間戳分為:access time、modifytime、changetime
touch命令可以改動時間戳
-c: 指定的文件路徑不存在時不予創建;
-a: 僅修改access time;
-m:僅修改modify time;
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
~]# alias NAME='COMMAND' //定義別名方法
[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 rm='rm -f' [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 -f' //強制 alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
echo $?:引用上一條命令的執行結果
[root@localhost ~]# echo $? 0 [root@localhost ~]# lsa bash: lsa: command not found... [root@localhost ~]# echo $? 127
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其他字符)的文件或目錄
[root@localhost ~]# ls -d /var/l*[0-9]*[a-z] /var/labc4abcq
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
[root@localhost ~]# ls -d /etc/[0-9]*[^0-9] /etc/9abcdefg /etc/9abcdefg-
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其他任意長度任意字符的文件或目錄
[root@localhost ~]# ls -d /etc/[[:alpha:]][[:alpha:]]* /etc/abrt /etc/gss /etc/profile /etc/adjtime /etc/gssproxy /etc/profile.d /etc/aliases /etc/hba.conf /etc/protocols /etc/aliases.db /etc/host.conf /etc/pulse ...
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@localhost tmp]# touch tfile-`date +"%Y-%m-%d-%H-%M-%S"` [root@localhost tmp]# ls tfile* tfile- tfile-2016-08-21-05-20-45
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
[root@localhost ~]# mkdir /tmp/mytest1 [root@localhost ~]# cp -a /etc/p*[^0-9] /tmp/mytest1 [root@localhost ~]# ls /tmp/mytest1/ pam.d pbm2ppa.conf plymouth popt.d prelink.conf.d profile.d purple passwd pinforc pm postfix printcap protocols python passwd- pki pnm2ppa.conf ppp profile pulse
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
[root@localhost ~]# cp -a /etc/*.d /tmp/mytest2 [root@localhost ~]# ls /tmp/mytest2 auto.master.d dracut.conf.d logrotate.d profile.d rc.d sysctl.d bash_completion.d exports.d modprobe.d rc0.d request-key.d tmpfiles.d binfmt.d gdbinit.d modules-load.d rc1.d rsyslog.d usb_modeswitch.d cgconfig.d grub.d my.cnf.d rc2.d rwtab.d xinetd.d chkconfig.d init.d oddjobd.conf.d rc3.d sane.d yum.repos.d cron.d ipsec.d pam.d rc4.d setuptool.d depmod.d ld.so.conf.d popt.d rc5.d statetab.d dnsmasq.d libibverbs.d prelink.conf.d rc6.d sudoers.d
12、復制/etc目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
[root@localhost ~]# mkdir /tmp/mytest3 [root@localhost ~]# cp /etc/[lmn]*.conf /tmp/mytest3 [root@localhost ~]# ls /tmp/mytest3 ld.so.conf libuser.conf logrotate.conf mke2fs.conf nfsmount.conf ntp.conf libaudit.conf locale.conf man_db.conf mtools.conf nsswitch.conf numad.conf
原創文章,作者:N22_熊寶,如若轉載,請注明出處:http://www.www58058.com/38268
寫的很好,排版還可以在漂亮一點,加油,3大題第一個小題可以在簡化一下,第2小題跟要求不一樣