N26_第二周作業

一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。

文件管理命令:cp,mv,rm

1、cp命令

功能說明:復制copy
語法格式:
        單源復制:  cp [OPTION]… [-T] SOURCE DEST
        多源復制:cp [OPTION]… SOURCE… DIRECTORY
                       cp [OPTION]… -t DIRECTORY SOURCE…
單源復制:如果DEST不存在,則事先創建此文件,并復制源文件的數據流到DEST中;
          如果DEST存在:
          如果DEST是非目錄文件,則覆蓋目標文件;
          如果DEST是目錄文件,則現在DEST目錄下創建一個與源文件同名的文件,并復制其數據流;
常用參數:
-i:交互式復制,即覆蓋之前提醒用戶確認
-f:強制覆蓋目錄文件
-r,-R:遞歸復制目錄
-d:復制符號鏈接文件本身,而非其指向的源文件
-a:-dR –preserve=all,archive,用于實現歸檔
–preserve=
mode:權限
    ownership:屬主和屬組
    timestamps:時間戳
    context:安全標簽
    xattr:擴展屬性
    links:符號鏈接
    all:上述所有屬性

示例:

[root@joylin test]# cp /tmp/passwd ./
[root@joylin test]# ll passwd 
-rw-r--r--. 1 root root 2229 2月  16 16:05 passwd
[root@joylin test]# cp -p /tmp/passwd ./passwd2
[root@joylin test]# ll /tmp/passwd ./passwd*
-rw-r--r--. 1 root root 2229 2月  16 16:05 ./passwd
-rw-r--r--. 1 root root 2229 2月  16 15:59 ./passwd2
-rw-r--r--. 1 root root 2229 2月  16 15:59 /tmp/passwd
[root@joylin test]# cp /etc/passwd /test/
[root@joylin test]# ln -s ./passwd /tmp/passwd_slink
[root@joylin test]# ln  ./passwd /tmp/passwd_hlink
[root@joylin test]# cp /etc/passwd /tmp/
[root@joylin test]# ll /tmp/passwd*
-rw-r--r--. 1 root root 2229 2月  16 15:59 /tmp/passwd
-rw-r--r--. 2 root root 2229 2月  16 15:58 /tmp/passwd_hlink
lrwxrwxrwx. 1 root root    8 2月  16 15:58 /tmp/passwd_slink -> ./passwd
[root@joylin test]# cp /tmp/passwd_slink ./ -f
[root@joylin test]# ll passwd
-rw-r--r--. 2 root root 2229 2月  16 15:58 passwd
[root@joylin test]# cp -d /tmp/passwd_slink ./passwd_slink2
[root@joylin test]# ll passwd
-rw-r--r--. 2 root root 2229 2月  16 15:58 passwd
[root@joylin test]# ll passwd*
-rw-r--r--. 2 root root 2229 2月  16 15:58 passwd
-rw-r--r--. 1 root root 2229 2月  16 16:02 passwd_slink
lrwxrwxrwx. 1 root root    8 2月  16 16:02 passwd_slink2 -> ./passwd

2、mv命令

功能說明:移動或重命名文件 move (rename) files
語法格式:
       mv [OPTION]… [-T] SOURCE DEST
       mv [OPTION]… SOURCE… DIRECTORY
       mv [OPTION]… -t DIRECTORY SOURCE…
常用選項:
    -i:交互式
    -f:force

示例:

[root@joylin test]# mv ./passwd3 /tmp/ #移動文件
[root@joylin test]# touch passwd3
[root@joylin test]# mv ./passwd3 /tmp/
mv:是否覆蓋"/tmp/passwd3"? C
[root@joylin test]# mv ./passwd3 /tmp/ -f
[root@joylin test]# ll -d /tmp/11b/   #移動目錄
drwxr-xr-x. 2 root root 6 2月  12 16:16 /tmp/11b/
[root@joylin test]# mv /tmp/11b/ /test/
[root@joylin test]# ls -d /test/11b/
/test/11b/
[root@joylin test]# mv /tmp/passwd2 /tmp/passwd #重命名文件
[root@joylin test]# ll /tmp/passwd
-rw-r--r--. 1 root root 2229 2月  16 15:59 /tmp/passwd
[root@joylin test]# mv 11b/ 1111b  #重命名目錄
[root@joylin test]# ll -d 1111b/
drwxr-xr-x. 2 root root 6 2月  12 16:16 1111b/

3、rm命令

功能說明:刪除文件或目錄remove files or directories
語法格式:rm [OPTION]… FILE…
常用參數:
常用選項:
-i:interactive 交互式
-f:force 強制刪除
-r:recursive 遞歸刪除
刪除目錄:rm -rf /PATH/TO/DIR
危險操作:rm -rf  /*
注意:所有不用的文件建議不要直接刪除,而是移動至某個專用的目錄(模擬回收站)

示例:

[root@joylin test]# touch rm.txt
[root@joylin test]# rm rm.txt 
rm:是否刪除普通空文件 "rm.txt"?n
[root@joylin test]# touch rm.txt -f
[root@joylin test]# mkdir software
[root@joylin test]# rm ./software/
rm: 無法刪除"./software/": 是一個目錄
[root@joylin test]# rm -rf ./software/

二、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。

命令執行的狀態結果:
bash通過狀態返回值來輸出此結果
成功:0
失?。?-255
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;
命令正常執行時,有的還回有命令返回值;
根據命令及其功能不同,結果各不相同;
示例:

[root@joylin ~]# useradd gentoo
[root@joylin ~]# echo $?
0
[root@joylin ~]# useradd gentoo
useradd:用戶“gentoo”已存在
[root@joylin ~]# echo $?
9
[root@joylin ~]# lss
bash: lss: 未找到命令...
相似命令是: 'ls'
[root@joylin ~]# echo $?
127

三、請使用命令行展開功能來完成以下練習:

   (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d

演示:

[root@joylin ~]# touch /tmp/{a_c,a_d,b_c,b_d}
[root@joylin ~]# ls -l /tmp/a_*
-rw-r--r--. 1 root root 0 2月  21 13:53 /tmp/a_c
-rw-r--r--. 1 root root 0 2月  21 13:53 /tmp/a_d
[root@joylin ~]# ls -l /tmp/b_*
-rw-r--r--. 1 root root 0 2月  21 13:53 /tmp/b_c
-rw-r--r--. 1 root root 0 2月  21 13:53 /tmp/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@joylin ~]# mkdir -p /tmp/mylinux/{bin,boot,dev,etc,lib,lib64,proc,sbin,sys,tmp,usr,var}
[root@joylin ~]# ls /tmp/mylinux/
bin  boot  dev  etc  lib  lib64  proc  sbin  sys  tmp  usr  var
[root@joylin ~]# mkdir -p /tmp/mylinux/boot/grub
[root@joylin ~]# mkdir -p /tmp/mylinux/etc/rc.d/init.d
[root@joylin ~]# mkdir -p /tmp/mylinux/etc/sysconfig/network-scripts
[root@joylin ~]# mkdir -p /tmp/mylinux/lib/modules
[root@joylin ~]# mkdir -p /tmp/mylinux/usr/local/{bin,sbin}
[root@joylin ~]# mkdir -p /tmp/mylinux/var/{lock,log,run}
[root@joylin ~]# tree -L 2 /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   └── sysconfig
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
└── var
    ├── lock
    ├── log
    └── run

20 directories, 0 files

四、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。

1、元數據信息包含:

File:文件名
Size:表示文件數據流大小
Blocks:數據塊
IO Block:IO塊
硬鏈接數:
Access:用戶對文件訪問的權限
Uid:屬主
Gid:屬組
Access time:訪問文件時間
Modify time:更改時間
Change time:改動時間

2、查看文件的元數據:stat命令

功能說明:stat – display file or file system status
語法格式:stat [OPTION]… FILE…
文件:包括元數據(metadata)和數據(data)
時間戳:
Access: 2017-02-06 19:12:02.501490477 +0800
Modify: 2017-02-08 19:51:36.672097524 +0800
Change: 2017-02-08 19:51:36.672097524 +0800
示例:

[root@joylin ~]# stat /test/
1         1a        22        a2        aaa       b         ff
11        1_a       333       a333      aaaa      bb        passwd
1111b/    1ab       a         aa        a b       BB        rm.txt
122       1b        A         aA        a,b       cc        software/
133       1c        a1        AA        aBBB      data      
[root@joylin ~]# stat /test/passwd 
  文件:"/test/passwd"
  大?。?234       塊:8          IO 塊:4096   普通文件
設備:fd00h/64768d Inode:100837381   硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:default_t:s0
最近訪問:2017-02-16 19:29:24.104960293 +0800
最近更改:2017-02-16 19:29:24.104960293 +0800
最近改動:2017-02-16 19:29:24.110960628 +0800
創建時間:-

3、修改文件時間戳:touch命令

功能說明:touch – change file timestamps
語法格式:touch [OPTION]… FILE…
-c:指定的文件路徑不存在時不予創建
-a:僅修改access times
-m:僅修改modify times
-t STAM:[[CC]YY]MMDDhhmm[.ss]
示例:

[root@joylin ~]# touch -a -t 201701161900 /test/passwd 
[root@joylin ~]# stat /test/passwd 
  文件:"/test/passwd"
  大小:2234       塊:8          IO 塊:4096   普通文件
設備:fd00h/64768d Inode:100837381   硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:default_t:s0
最近訪問:2017-01-16 19:00:00.000000000 +0800
最近更改:2017-02-16 19:29:24.104960293 +0800
最近改動:2017-02-21 14:26:53.314521653 +0800
創建時間:-
[root@joylin ~]# touch -m -t 201701161930 /test/passwd 
[root@joylin ~]# stat /test/passwd 
  文件:"/test/passwd"
  大?。?234       塊:8          IO 塊:4096   普通文件
設備:fd00h/64768d Inode:100837381   硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:default_t:s0
最近訪問:2017-01-16 19:00:00.000000000 +0800
最近更改:2017-01-16 19:30:00.000000000 +0800
最近改動:2017-02-21 14:28:03.580089027 +0800
創建時間:-

五、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?

1、查看別名:alias

定義別名:alias 別名=‘COMMAND’
注意:僅對當前的shell有效
撤銷別名:unalias 別名

示例:

[root@joylin ~]# 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 vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@joylin ~]# alias cl='clear'
[root@joylin ~]# echo "alias cl='clear'" >>/etc/bashrc 
[root@joylin ~]# source /etc/bashrc 
[root@joylin ~]# alias |grep cl
alias cl='clear'
[root@joylin ~]# tail -1 /etc/bashrc 
alias cl='clear'
[root@joylin ~]# unalias cl

2、引用命令的執行結果:

       $(COMMAND)`COMMAND`

示例:

[root@joylin ~]# which find
/usr/bin/find
[root@joylin ~]# ls -l `which find`
-rwxr-xr-x. 1 root root 199200 11月 20 2015 /usr/bin/find
[root@joylin ~]# ls -l $(which find)
-rwxr-xr-x. 1 root root 199200 11月 20 2015 /usr/bin/find

六、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。

演示:

[root@joylin test]# touch /var/1_a
[root@joylin test]# ls -d /var/1?[a-z]
/var/1_a
[root@joylin test]# mkdir /var/11b
[root@joylin test]# ls -d /var/1?[a-z]
/var/11b  /var/1_a
[root@joylin test]# ls -d /var/1?[[:lower:]]
/var/11b  /var/1_a
[root@joylin test]# ls /var/1?[[:lower:]]
/var/1_a

/var/11b:

七、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。

演示:

[root@joylin test]# touch /etc/1ab
[root@joylin test]# ls -d /etc/[0-9]*[^0-9]
/etc/1ab 或者
[root@joylin test]# ls -d /etc/[[:digit:]]*[^[:digit:]]
/etc/1ab

八、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。

演示:

[root@joylin test]# ls -d /etc/[^a-zA-Z]*
/etc/1ab

九、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。

演示:

[root@joylin ~]# touch /tmp/tfile-$(date +%F-%H-%M-%S)
[root@joylin ~]# ls /tmp/tfile-2017-02-21-14-46-34 
/tmp/tfile-2017-02-21-14-46-34

十、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

演示:

[root@joylin ~]# mkdir /tmp/mytest1
[root@joylin ~]# ls -d /etc/p*[^0-9]
/etc/pam.d         /etc/pki           /etc/postfix         /etc/profile.d
/etc/passwd        /etc/plymouth      /etc/ppp             /etc/protocols
/etc/passwd-       /etc/pm            /etc/prelink.conf.d  /etc/pulse
/etc/pbm2ppa.conf  /etc/pnm2ppa.conf  /etc/printcap        /etc/purple
/etc/pinforc       /etc/popt.d        /etc/profile         /etc/python
[root@joylin ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/
[root@joylin ~]# ls -d /tmp/mytest1/
/tmp/mytest1/
[root@joylin ~]# ls /tmp/mytest1/
pam.d         pinforc   pnm2ppa.conf  prelink.conf.d  protocols
passwd        pki       popt.d        printcap        pulse
passwd-       plymouth  postfix       profile         purple
pbm2ppa.conf  pm        ppp           profile.d       python

11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。

演示:

[root@joylin ~]# mkdir /tmp/mytest2
[root@joylin ~]# ls -d /etc/*.d
/etc/auto.master.d      /etc/ld.so.conf.d    /etc/rc4.d
/etc/bash_completion.d  /etc/libibverbs.d    /etc/rc5.d
/etc/binfmt.d           /etc/logrotate.d     /etc/rc6.d
/etc/cgconfig.d         /etc/modprobe.d      /etc/rc.d
/etc/chkconfig.d        /etc/modules-load.d  /etc/request-key.d
/etc/cron.d             /etc/my.cnf.d        /etc/rsyslog.d
/etc/depmod.d           /etc/oddjobd.conf.d  /etc/rwtab.d
/etc/dnsmasq.d          /etc/pam.d           /etc/sane.d
/etc/dracut.conf.d      /etc/popt.d          /etc/setuptool.d
/etc/exports.d          /etc/prelink.conf.d  /etc/statetab.d
/etc/gdbinit.d          /etc/profile.d       /etc/sudoers.d
/etc/grub.d             /etc/rc0.d           /etc/sysctl.d
/etc/init.d             /etc/rc1.d           /etc/tmpfiles.d
/etc/ipsec.d            /etc/rc2.d           /etc/xinetd.d
/etc/krb5.conf.d        /etc/rc3.d           /etc/yum.repos.d
[root@joylin ~]# ls -d /etc/*.d|wc -l
45
[root@joylin ~]# cp -r /etc/*.d /tmp/mytest2
[root@joylin ~]# ls -d /tmp/mytest2/*|wc -l
45

12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

演示:

[root@joylin ~]# ls /etc/[lmn]*.conf
/etc/ld.so.conf     /etc/logrotate.conf  /etc/nfsmount.conf
/etc/libaudit.conf  /etc/man_db.conf     /etc/nsswitch.conf
/etc/libuser.conf   /etc/mke2fs.conf     /etc/ntp.conf
/etc/locale.conf    /etc/mtools.conf     /etc/numad.conf
[root@joylin ~]# ls /etc/[lmn]*.conf|wc -l
12
[root@joylin ~]# mkdir /tmp/mytest3
[root@joylin ~]# cp /etc/[lmn]*.conf /tmp/mytest3/
[root@joylin ~]# ls /tmp/mytest3/* |wc -l
12

原創文章,作者:jaylin,如若轉載,請注明出處:http://www.www58058.com/69663

(0)
jaylinjaylin
上一篇 2017-02-21
下一篇 2017-02-21

相關推薦

  • DNS 筆記

    ? DNS查詢。工作流程如下圖         n  客戶端的DNS:8.8.8.8 /etc/hosts  14.215.177.38 www.baidu.com n  客戶端訪問www.baidu.com 不用向DSN服務器發生查詢,只需要查詢本地的 /e…

    Linux干貨 2016-08-15
  • 文本處理三劍客之Sed(行編輯器)

    sed(流編輯器,行編輯器)     是一種流編輯器,一次處理一行內容,處理時把當前處理的行存儲在臨時緩存中,成為“模式空間”,接著用sed命令處理緩沖區的內容,處理完畢后吧緩沖區內容輸出到屏幕接著處理下一行。這樣不斷重復到末尾。文件內容并沒有改變。除非使用重定向輸出才會改變內容。 sed:行編輯器(全屏編輯器:vi)   &n…

    Linux干貨 2016-08-15
  • 搜索引擎-倒排索引基礎知識

    1.單詞——文檔矩陣        單詞-文檔矩陣是表達兩者之間所具有的一種包含關系的概念模型,圖3-1展示了其含義。圖3-1的每列代表一個文檔,每行代表一個單詞,打對勾的位置代表包含關系。          …

    Linux干貨 2015-12-10
  • MySQL高級特性-合并表

    1. Merge Tables         如果愿意的話,可以把合并表看成一種較老的、有更多限制的分區表,但是它們也有自己的用處,并且能提供一些分區表不能提供的功能。 合并表實際是容納真正的表的容器??梢允褂锰厥獾腢NION語法來CREATE TABLE。下面是一個合并表的例子: mysql> &n…

    Linux干貨 2015-04-13
  • LNMP WordPress 配置文件修改參考 安裝LNMP + 搭建WordPress個人博客的補充

    對小黑的  http://www.www58058.com/17222 的一些補充,因為他嘿嘿嘿我嘿嘿嘿嘿….. 實際使用中必須對一下文件作出修改 建議值為以下建議值 要不然實際使用過程中問題很大 nginx.conf    優化和上傳的限制 worker_processes  8; &…

    Linux干貨 2016-06-01

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-06 19:57

    如果對于某一個命令參數無法描述的清楚,請大膽的用man

欧美性久久久久