馬哥教育網絡班21期+第二周博客作業

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

Linux下常見的文件管理命令有:touch、cp、mv、rm、cat等

touch

描述:創建一個空文件,或者更新時間的時間戳

[root@zabbix wanwan]# touch wanwan02
[root@zabbix wanwan]# ls -l wanwan02
-rw-r--r-- 1 root root 0 Jul 13 11:24 wanwan02
[root@zabbix wanwan]# du -sh wanwan02
0wanwan02
說明:新創建的文件wanwan02為空文件
查看文件時間戳:
[root@zabbix wanwan]# stat wanwan02
  File: ‘wanwan02’
  Size: 0         Blocks: 0          IO Block: 4096   regular empty file
Device: 25h/37dInode: 627081291   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-13 11:24:45.095028777 +0800
Modify: 2016-07-13 11:24:45.095028777 +0800
Change: 2016-07-13 11:24:45.095028777 +0800
 Birth: -
使用touch命令修改wanwan02的時間戳:
[root@zabbix wanwan]# touch wanwan02
[root@zabbix wanwan]# stat wanwan02
  File: ‘wanwan02’
  Size: 0         Blocks: 0          IO Block: 4096   regular empty file
Device: 25h/37dInode: 627081291   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-13 11:25:27.058025219 +0800
Modify: 2016-07-13 11:25:27.058025219 +0800
Change: 2016-07-13 11:25:27.058025219 +0800
 Birth: -
對比之前的時間戳,可以發現已經變化了

cp

描述:復制文件與目錄

選項:-r 遞歸,復制子文件與子目錄,一般復制目錄時使用

[root@zabbix wanwan]# ls
[root@zabbix wanwan]# cp /etc/passwd .
[root@zabbix wanwan]# ls
passwd
[root@zabbix log]# cp -r /var/log/samba/ /tmp/
[root@zabbix log]# ls -ld /tmp/
drwxrwxrwt 19 root root 500 Jul 13 13:14 /tmp/
[root@zabbix log]# ls -l /tmp/
total 12
drwxr-xr-x 14 root root  280 Jul  5 13:27 mylinux
-rw-r--r--  1 root root 7315 Jul 12 23:30 mysql_bak.log
drwxr-xr-x 14 root root  400 Jul 13 10:54 mytest1
drwxr-xr-x 33 root root  820 Jul 13 10:56 mytest2
drwxr-xr-x  2 root root  140 Jul 13 10:58 mytest3
-rw-r--r--  1 root root 2629 Jul  5 16:28 passwd
drwxr-xr-x  2 root root   40 Jun 27 17:26 python-build.20160627172622.20789
drwx------  4 root root 2380 Jul 13 13:14 samba
drwx------  2 root root   60 Mar 17 12:52 ssh-0CeK7US8msI8
drwx------  2 root root   60 May  3 17:15 ssh-cKDJ7FFBpQ4g
drwx------  2 root root   60 May  3 17:17 ssh-DY1nyXYKnMRR
drwx------  2 root root   60 May  5 09:11 ssh-Rte4UArLkDfW
drwx------  3 root root   60 May 27 09:23 systemd-private-a293e18c9e6f4755986a533a2b4227a0-httpd.service-lf1vFt
drwx------  3 root root   60 May  3 14:30 systemd-private-a293e18c9e6f4755986a533a2b4227a0-mariadb.service-3Xn9YD
drwx------  3 root root   60 May 27 09:05 systemd-private-a293e18c9e6f4755986a533a2b4227a0-munin-node.service-ys9n24
-rw-r--r--  1 root root    0 Jul 13 10:41 tfile-2016-07-13-10-41-40
-rw-r--r--  1 root root    0 Jul 13 10:41 tfile-2016-07-13-10-41-49
drwxr-xr-x  2 root root 2020 Jul  5 16:55 var
drwxr-xr-x  2 root root   60 Jul 13 13:13 wanwan
drwxr-xr-x  3 root root   60 Jun 27 13:35 zhang3

rm

描述:刪除文件或目錄

選項:-f 不提示,強制刪除

      -i 刪除前,提示是否刪除

      -r 刪除目錄以及目錄下的所有文件

[root@zabbix tmp]# cd wanwan/
[root@zabbix wanwan]# ls
passwd
[root@zabbix wanwan]# rm passwd 
rm: remove regular file ‘passwd’? yes
[root@zabbix wanwan]# ls
[root@zabbix tmp]# cd wanwan/
[root@zabbix wanwan]# ls
passwd
[root@zabbix wanwan]# rm passwd 
rm: remove regular file ‘passwd’? yes
[root@zabbix wanwan]# ls
[root@zabbix wanwan]# cp /etc/sysconfig/network .
[root@zabbix wanwan]# ls
network
[root@zabbix wanwan]# rm -rf network #刪除文件前,沒有任何提示
[root@zabbix wanwan]# ls

mv

描述:移動(重命名)文件或目錄

[root@zabbix wanwan]# ls
passwd
[root@zabbix wanwan]# mv passwd passwd.org  #將passwd改名為passwd.org
[root@zabbix wanwan]# ls
passwd.org
[root@zabbix tmp]# mv tfile-2016-07-13-10-41-40 /wanwan/  #將/tmp目錄下的tfile-2016-07-13-10-41-40剪切到/wanwan目錄下
[root@zabbix tmp]# ls -l /wanwan/
total 410044
-rw-r--r-- 1 root root       254 Jun 22 14:21 adduser.sh
-rw-r--r-- 1 root root       167 Jul 12 14:28 checkup.sh
-rw-rw-r-- 1 root root         0 Jun 22 13:19 li4
-rw-r--r-- 1 root root    204101 Jun 27 10:43 li4.zip
-rw-r--r-- 1 root root       157 Jun 22 15:57 ping.sh
-rw-r--r-- 1 root root 209715200 Jun 27 10:42 test.iso
-rw-r--r-- 1 root root         0 Jul 13 10:41 tfile-2016-07-13-10-41-40
-rw-r--r-- 1 root root 209940480 Jun 27 10:48 wanwan.tar.gz
drwxr-xr-x 3 root root        29 Jun 27 10:45 zhang3
-rw-r--r-- 1 root root     10240 Jun 27 13:34 zhang3.tar

cat

描述:查看文件內容

選項:-b 顯示行號,空白行不顯示行號

      -n 顯示行號,包括空白行

[root@zabbix wanwan]# cat -n passwd|head -10
     1root:x:0:0:root:/root:/bin/bash
     2bin:x:1:1:bin:/bin:/sbin/nologin
     3daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4
     5
     6
     7adm:x:3:4:adm:/var/adm:/sbin/nologin
     8
     9lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    10
[root@zabbix wanwan]# cat -b passwd|head -10
     1root:x:0:0:root:/root:/bin/bash
     2bin:x:1:1:bin:/bin:/sbin/nologin
     3daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4adm:x:3:4:adm:/var/adm:/sbin/nologin
     5lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

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

a、鍵入的命令到底有沒有執行成功呢?我們輸入 echo $? 來查看該命令執行狀態的返回值。返回值為 0,表示成功執行。

b、echo $?如果返回值為0,則表示上一條命令執行成功

c、如果返回值是1-255的任何值,表明上一條命令執行失敗

[root@zabbix ~]# pwd
/root
[root@zabbix ~]# echo $?
0
說明:pwd這條命令是執行成功的
[root@zabbix ~]# pwdd
-bash: pwdd: command not found
[root@zabbix ~]# echo $?
127
說明:由于根本不存在pwdd命令,返回值非0,說明失敗

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

# mkdir -p /tmp/{a,b}_{c,d}
# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/networkscripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

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

元數據信息:用來描述一個文件的特征的系統數據,包括文件大小,inode數,連接數,訪問權限,UID、GID以及三個時間戳,通常情況下,我們可以用stat命令來進行查看。

文件有三個時間戳,分別是:

     access time:訪問時間,atime,讀取文件內容

     modify time: 修改時間, mtime,改變文件內容(數據)

     change time: 改變時間, ctime,元數據發生改變

[root@localhost ~]# stat /etc/passwd
  File: '/etc/passwd'
  Size: 2062      Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050dInode: 136839480   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2016-07-11 21:26:19.946999372 +0800
Modify: 2015-09-08 01:02:10.002179228 +0800
Change: 2015-09-08 01:02:10.002179228 +0800
 Birth: -
touch:
  -a只更改訪問時間
  -c, --no-create不創建任何文件
  -m只更改修改時間
[root@localhost tmp]# stat passwd 
  文件:"passwd"
  大?。?062      塊:8          IO 塊:4096   普通文件
設備:802h/2050dInode:7104        硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:user_tmp_t:s0
最近訪問:2016-07-12 15:53:50.400028573 +0800
最近更改:2016-07-12 15:53:50.400028573 +0800
最近改動:2016-07-12 15:53:50.400028573 +0800
創建時間:-
[root@localhost tmp]# touch -a passwd 
[root@localhost tmp]# stat passwd 
  文件:"passwd"
  大?。?062      塊:8          IO 塊:4096   普通文件
設備:802h/2050dInode:7104        硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:user_tmp_t:s0
最近訪問:2016-07-12 15:54:20.547714007 +0800
最近更改:2016-07-12 15:53:50.400028573 +0800
最近改動:2016-07-12 15:54:16.468621271 +0800
創建時間:-
[root@localhost tmp]# touch -m passwd 
[root@localhost tmp]# file passwd 
passwd: ASCII text
[root@localhost tmp]# stat passwd 
  文件:"passwd"
  大小:2062      塊:8          IO 塊:4096   普通文件
設備:802h/2050dInode:7104        硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:user_tmp_t:s0
最近訪問:2016-07-12 15:54:49.465370687 +0800
最近更改:2016-07-12 15:54:47.218319686 +0800
最近改動:2016-07-12 15:54:47.218319686 +0800

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

a、臨時生效:

[root@localhost ~]# alias cls='clear'
[root@localhost ~]# alias cls
alias cls='clear'
[root@localhost ~]# cls
[root@localhost ~]# echo $?

b、永久生效:

說明:永久生效, 寫入/etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile 四文件之一
[root@localhost ~]# echo "alias cls='clear'">>/etc/profile
[root@localhost ~]# echo $?
0
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $?
0
命令中引用另一個命令的執行結果:
[root@localhost ~]# echo "My directory is `pwd`"
My directory is /root
[root@localhost ~]# echo "My directory is $(pwd)"
My directory is /root

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

[root@localhost var]# ls -l 1*[0-9]*[^0-9]
-rw-r--r--. 1 root root 0 7月  12 16:08 15wk
-rw-r--r--. 1 root root 0 7月  12 16:08 188k

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

# ls -l /etc/[0-9]*[^0-9]
案例:
[root@localhost tmp]# cd /etc/
[root@localhost etc]# touch 9wanw
[root@localhost etc]# ls -l /etc/[0-9]*[^0-9]
-rw-r--r--. 1 root root 0 7月  12 16:05 /etc/9wanw
[root@localhost etc]# touch 8wan8
[root@localhost etc]# ls -l /etc/[0-9]*[^0-9]
-rw-r--r--. 1 root root 0 7月  12 16:05 /etc/9wanw

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

# ls /etc/[^a-zA-Z][a-zA-Z]*
[root@zabbix etc]# touch 1a11 2a3z
[root@zabbix etc]# ls -l /etc/[^a-zA-Z][a-zA-Z]*
-rw-r--r-- 1 root root 0 Jul 13 10:35 /etc/1a11
-rw-r--r-- 1 root root 0 Jul 13 10:35 /etc/2a3z

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

方法1:
[root@zabbix tmp]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
方法2:
[root@zabbix tmp]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
[root@zabbix tmp]# ls
mylinux                         systemd-private-a293e18c9e6f4755986a533a2b4227a0-httpd.service-lf1vFt
mysql_bak.log                     systemd-private-a293e18c9e6f4755986a533a2b4227a0-mariadb.service-3Xn9YD
passwd                          systemd-private-a293e18c9e6f4755986a533a2b4227a0-munin-node.service-ys9n24
python-build.20160627172622.20789          tfile-2016-07-13-10-41-40
ssh-0CeK7US8msI8                   tfile-2016-07-13-10-41-49
ssh-cKDJ7FFBpQ4g                   var
ssh-DY1nyXYKnMRR                   zhang3
ssh-Rte4UArLkDfW
說明:可以看到tfile開頭的文件,就是我新創建的

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

# cp -rf /etc/p*[^0-9] /tmp/mytest1/

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

[root@zabbix ~]# mkdir -p /tmp/mytest2
[root@zabbix ~]# cp -rf /etc/*.d /tmp/mytest2/
[root@zabbix ~]# ls /tmp/mytest2/
bash_completion.d  exports.d     modules-load.d  rc0.d  rc.d           sysctl.d
binfmt.d           gdbinit.d     my.cnf.d        rc1.d  request-key.d  tmpfiles.d
chkconfig.d        grub.d        pam.d           rc2.d  rsyslog.d      xinetd.d
cron.d             init.d        php.d           rc3.d  rwtab.d        yum.repos.d
depmod.d           ld.so.conf.d  popt.d          rc4.d  statetab.d
dnsmasq.d          logrotate.d   prelink.conf.d  rc5.d  sudoers.d
dracut.conf.d      modprobe.d    profile.d       rc6.d  supervisord.d

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

[root@zabbix ~]# cp -rf /etc/[l,m,n]*.conf /tmp/mytest3/
[root@zabbix ~]# ls /tmp/mytest3/
man_db.conf  mke2fs.conf  mongod.conf  nfsmount.conf  nsswitch.conf



原創文章,作者:Net21-冰凍vs西瓜,如若轉載,請注明出處:http://www.www58058.com/24130

(0)
Net21-冰凍vs西瓜Net21-冰凍vs西瓜
上一篇 2016-07-16
下一篇 2016-07-16

相關推薦

  • keepalived雙主模型的實現

    一、簡介  keepalived 簡介:是服務器高可用的一個重要軟件,它的核心組件有vrrp ,stack, checker ,ipvs, warpper, watch dog  它是vrrp協議的實現,原生設計目的為高可用ipvs服務;keepalived能夠通過配置文件中定義生成ipvs規則 并能夠對RS的健康狀態進行檢測;vrrp_…

    Linux干貨 2014-05-22
  • linux 文本處理三劍客

    grep 作用:文本搜索工具,根據用戶指定的“模式”對目標文本逐行進行匹配檢查;打印匹配到的行。 模式:由正則表達式字符及文本符所編寫的過濾條件 grep ?命令選項: 正則表達式: 基本正則表達式元字符 ? ? ?字符匹配: 正則表達式: 正則表達式: 正則表達式: 示例:a\|b: a或b ? ?C\|cat :C或cat ? ? ? ? \(C\|c\…

    Linux筆記 2018-04-15
  • 運維工程師技能需求排行

    這是我今天在拉勾網搜索運維,翻完了4四頁也招聘信息之后得到的,我的目的是想要看看之后的學習,哪個更應該成為重點,有些在我意料之中,有些還真的沒想到,算是努力了一個小時的收獲吧,分享給大家。
    注意:其中的看法僅代表個人觀點,很多都是依靠我自己的學習經驗和工作經驗累積的

    Linux干貨 2017-12-12
  • 文件查找find和locate

            在Linux這個一切皆文件的系統中怎么能快速和精確的查找到文件,是我們必不可少的技能。而文件查找的命令可以讓我們在很短的時間內在文件系統中找到我們要查找的文件。這就是我們要掌握的,因此我來介紹一下文件查找的這兩個命令locate和find。 文件查找:在文件系統上…

    Linux干貨 2016-08-24
  • Linux nginx服務之反向代理

                       Linux nginx服務之反向代理 Nginx服務之反向代理: GSLB:Global Service LB 全局服務負載均衡: SLB:Service LB 應用程序發布: 灰度模型:   ngx_http_…

    系統運維 2016-11-18
  • 裝飾器

    裝飾器(Decorator) 裝飾器推導過程 需求 一個加法函數,想增強它的功能,能夠輸出被調用過以及調用的參數信息 def add(x,y): return x + y 增加信息輸出功能 def add(x,y): print(‘call {},{}+{}’.format(add.__name__, x, y)) return x + y 不足:打印語句的…

    2017-10-23

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-17 20:33

    寫的很好,排版也很漂亮,加油

欧美性久久久久