N22-第2周作業


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

(0)
N22_熊寶N22_熊寶
上一篇 2016-08-22
下一篇 2016-08-22

相關推薦

  • 文件的查找命令 find 和 locate

    文件的查找命令 find 和 locate find 功能:實時查找工具,通過遍歷指定路徑完成文件查找 工作特點: ?  查找速度略慢?  精確查找?  實時查找?  可能只搜索用戶具備讀取和執行權限的目錄 語法:   find [OPTION]… [查找路徑] [查找條件] [處理動作] 查找路徑:指定具…

    Linux干貨 2016-08-16
  • 實驗:yum、編譯安裝、swap

    實驗:在centos7實現光盤yum源 1yum install autofs 2現在啟動systemctl start autofs 3開機啟動systemctl enable autofs 4 cat /etc/yum.repos.d/base.repo[centos7]name=centos7 repobaseurl=file:///misc/cdgp…

    Linux干貨 2017-04-25
  • vim的簡介與使用

          vi命令是UNIX操作系統和類UNIX操作系統中最通用的全屏幕純文本編輯器。Linux中的vi編輯器叫vim,它是vi的增強版(vi Improved),與vi編輯器完全兼容,而且實現了很多增強功能。      vi編輯器支持編輯模式和命令模式,編輯模式下可…

    Linux干貨 2016-08-15
  • 網絡管理

    網絡管理 本章內容 網絡概念 OSI模型 網絡設備 TCP/IP IP地址 配置網絡 實現網絡組 測試網絡 網絡工具 為linux網卡配置ip地址,不是給網卡配置地址,是給內核的網絡功能配置,地址是屬于內核。為內核配置即時生效,修改配置文件,是永久生效。ifconfig 配置信息,會立即生效,但是重啟網絡服務或主機,都失效。網絡服務/etc/init.d/n…

    Linux干貨 2016-09-05
  • N26-第十一周

    1、詳細描述一次加密通訊的過程,結合圖示最佳。     發送方:1、使用單項加密算法計算數據文件的特征碼2、使用發送方私鑰加密特征碼3、使用對稱加密算法生成一對臨時密鑰4、使用臨時密鑰加密數據文件和加密后的特征碼5、使用接收方的公鑰加密使用臨時密鑰加密后的數據和特征碼和臨時密鑰的解密密碼,并將之發送給接收方 接收方1、使用接收方的私鑰解密…

    2017-04-09
  • Linux–各種常用表達式整理收集

    文字顏色設置IP地址獲取隨機口令查找替代等

    Linux干貨 2017-12-10

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-22 14:23

    寫的很好,排版還可以在漂亮一點,加油,3大題第一個小題可以在簡化一下,第2小題跟要求不一樣

欧美性久久久久