N22-妙手-第二周博客作業

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

    mkdir: 創建目錄

        使用方法:mkdir [OPTION]… DIRECTORY…

        常用選項:

            -p:按需創建父目錄

            -m:創建目錄權限

            -v:輸出詳細創建目錄過程

[root@localhost ~]# mkdir -m 700 -pv /users/myDir/u/i/o/p
mkdir: created directory ‘/users/myDir’
mkdir: created directory ‘/users/myDir/u’
mkdir: created directory ‘/users/myDir/u/i’
mkdir: created directory ‘/users/myDir/u/i/o’
mkdir: created directory ‘/users/myDir/u/i/o/p’
[root@localhost ~]# ll /users
drwxr-xr-x. 3 root      root      14 Aug 27 00:57 myDir

    rmdir: 刪除目錄

        使用方法:rmdir [OPTION]… DIRECTORY…

        常用選項:

            -p:刪除某目錄后,如果其父目錄存在,則一并刪除

            -v:顯示詳細刪除過程

[root@localhost users]# rmdir -pv myDir/u/i/o/p
rmdir: removing directory, ‘myDir/u/i/o/p’
rmdir: removing directory, ‘myDir/u/i/o’
rmdir: removing directory, ‘myDir/u/i’
rmdir: removing directory, ‘myDir/u’
rmdir: removing directory, ‘myDir’

    head:查看文件的前n行,默認是10行

        使用方法:head [OPTION]… [FILE]…

            -n #:查看文件的前#行

            -#

[root@localhost users]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost users]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

    tail:查看文件的后n行,默認是10行

        -n #:查看文件的后#行

        -#

[root@localhost users]# tail -n 3 /etc/passwd
user4:x:4011:4011::/home/user4:/bin/chroot
chrooter:x:4012:4012::/home/chrooter:/bin/bash
expand:x:4013:4013::/users/testExpand:/bin/bash
[root@localhost users]# tail -3 /etc/passwd
user4:x:4011:4011::/home/user4:/bin/chroot
chrooter:x:4012:4012::/home/chrooter:/bin/bash
expand:x:4013:4013::/users/testExpand:/bin/bash

    cp: 拷貝文件

        使用方法:

             單源復制:cp [OPTION]… [-T] SOURCE DEST

                 如果目標不存在,則先創建與源文件同名的文件,并復制源文件的數據流至目標文件中

                 如果目標存在:

                     如果目標是非目錄文件,則覆蓋此文件

                     如果目標是目錄文件,怎現在目標目錄下創建與源文件同名的目標文件,并復制源文件數據流至目標文件中

                     注意:cp命令是默認不支持源文件為目錄文件的

             多源復制:cp [OPTION]… SOURCE… DIRECTORY
                               cp [OPTION]… -t DIRECTORY SOURCE…

                    如果目標文件不存在,錯誤

                    如果目錄文件存在:

                        如果目標文件不是目錄,錯誤

                        如果目標文件是目錄,則將源文件一一在目標目錄中創建與源文件同名的文件,并將源文件數據流復制至目標文件中

          常用選項:

              -i:交互式復制,即復制之前提醒用戶確認

              -f:強制覆蓋目標文件

              -r, -R:遞歸復制目錄

              -d:復制符號鏈接文件本身,而非其指向的源文件

              -a:-dR,用戶實現歸檔

[root@localhost init.d]# cp -i functions network README /users/mydir
[root@localhost init.d]# ll /users/mydir
total 28
-rw-r--r--. 1 root root 13948 Aug 27 01:25 functions
-rwxr-xr-x. 1 root root  6630 Aug 27 01:25 network
-rw-r--r--. 1 root root  1160 Aug 27 01:25 README
[root@localhost init.d]# cp -f functions network README /users/mydir
cp: overwrite ‘/users/mydir/functions’? y
cp: overwrite ‘/users/mydir/network’? y
cp: overwrite ‘/users/mydir/README’? y

[root@localhost ~]# cp -r /etc/rc.d /users/mydir
[root@localhost ~]# ls /users/mydir
functions  network  rc.d  README

    mv: 移動文件

        使用方法:

            單源復制:mv [OPTION]… [-T] SOURCE DEST

            多源復制:mv [OPTION]… SOURCE… DIRECTORY
                               mv [OPTION]… -t DIRECTORY SOURCE…

            常用選項:

                -i:交互式移動文件,提醒用戶確認

                -f:強制移動文件

[root@localhost ~]# mv -v /users/mydir/rc.d /users/mydir1
‘/users/mydir/rc.d’ -> ‘/users/mydir1/rc.d’

    rm: 刪除文件。注意,不要直接刪除文件,而是將文件移到模擬回收站中

        使用方法:rm [OPTION]… FILE…

            常用選項:

                -i:交互式

                -f:強制刪除

                -r:遞歸刪除

[root@localhost users]# rm -rf myDir
[root@localhost users]# ls 
adc  b  differentUsers  fedora  gentoo  gentoo2  m  me  n  testExpand  www  www3

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

    (1) Bash工作特性之命令執行狀態返回值,其命令執行結果返回值會保存在bash特殊變量$?中:使用 ~]# echo $? 來查看命令執行返回值

        執行正確,返回值為0

[root@localhost ~]# mkdir /tmp/testBashCharacter
[root@localhost ~]# echo $?
0

         執行錯誤,返回非0值

[root@localhost ~]# mmkdir /tmp/testWrongCode
bash: mmkdir: command not found...
Similar command is: 'mkdir'
[root@localhost ~]# echo $?
127

    (2) Bash命令行展開

        ~:自動展開為用戶的家目錄,或指定的用戶的家目錄

        {}:可承載一個以逗號為分隔符的路徑列表,并能將其展開為多個并行的路徑

        ~展開為用戶家目錄示例

[root@localhost ~]# cd /etc/cups
[root@localhost cups]# cd ~
[root@localhost ~]# pwd
/root
[Meng@localhost ~]$ cd /etc/cups
[Meng@localhost cups]$ cd ~
[Meng@localhost ~]$ pwd
/home/Meng

        {}展開為多個并行路徑示例

[root@localhost ~]# mkdir -pv /users/{b,n,m}
mkdir: created directory ‘/users/b’
mkdir: created directory ‘/users/n’
mkdir: created directory ‘/users/m’

3、請使用命令展開來完成以下練習

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

[root@localhost ~]# mkdir /tmp/{a,b}_{c,d}
[root@localhost ~]# ll /tmp
total 696
drwxr-xr-x.  2 root root          6 Aug 25 03:21 a_c
drwxr-xr-x.  2 root root          6 Aug 25 03:21 a_d
drwxr-xr-x.  2 root root          6 Aug 25 03:21 b_c
drwxr-xr-x.  2 root root          6 Aug 25 03:21 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 ~]# mkdir -p /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}}

blob.png

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

        (1) 文件的數據元素有:

            元數據:metadata,用來描述屬性

            數據: data,代表文件的真實數據

            timestamp:

                Access: 2016-08-12 12:29:57.121317321 +0800
                Modify: 2016-08-12 12:29:07.674320672 +0800:數據改變
                Change: 2016-08-12 12:29:07.674320672 +0800:元數據改變

        (2) 使用命令stat可以查看文件的數據信息

[root@localhost ~]# stat /etc/rc.d
  File: ‘/etc/rc.d’
  Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 70860       Links: 10
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:etc_t:s0
Access: 2016-08-27 01:23:06.333072492 +0800
Modify: 2015-11-20 14:21:47.000000000 +0800
Change: 2016-08-07 16:24:31.494986420 +0800

        (3) 使用命令touch可以修改文件的時間戳信息,一般用來改變access time和modify time

            touch:修改文件access time 和 modify time

                使用方法:touch [OPTION]… FILE…
                常用選項:

                    -c:指定的文件路徑不存在時不予創建

                    -a:僅修改access time

                    -m:僅修改modify time

                    -t:指定時間[[CC]YY]MMDDhhmm[.ss]

[root@localhost ~]# touch -a -m 1208081230.23 /users/functions
[root@localhost ~]# stat /users/functions
  File: ‘/users/functions’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 207475418   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2016-08-27 01:59:40.148104233 +0800
Modify: 2016-08-27 01:59:40.148104233 +0800
Change: 2016-08-27 01:59:40.148104233 +0800

        

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

    (1) alias命令可以定義一個命令的別名,其使用方法是 alias NAME=COMMAND。需要注意的是,命令別名只對當前shell進程有效

    如下例所示:

[root@localhost ~]# 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'
[root@localhost ~]# alias lsa='ls -al'
[root@localhost ~]# lsa /home
total 20
drwxr-xr-x. 10 root      root      4096 Aug 23 12:55 .
dr-xr-xr-x. 18 root      root      4096 Aug 22 14:23 ..
drwx------.  5 archlinux archlinux 4096 Aug 22 15:01 archlinux
drwx------.  5 centos    centos    4096 Aug 19 01:51 centos
drwx------.  3      4000      4000   74 Aug 22 13:59 gentoo
drwx------.  3 gentoo1   gentoo1     74 Aug 22 14:04 gentoo1
drwx------. 15 Meng      Meng      4096 Aug 23 10:09 Meng
drwx------.  3 user1     user1       74 Aug 23 12:05 user1
drwx------.  3 user2     user2       74 Aug 23 12:49 user2
drwx------.  3 user3     user3       74 Aug 23 12:55 user3

    撤銷命令別名:unalias NAME

[root@localhost ~]# unalias lsa
[root@localhost ~]# lsa /home
bash: lsa: command not found...

   

    (2) 如何在命令中引用另一個命令的執行結果

        引用命令的執行結果:$(COMMAND) 或 `COMMAND`

[root@localhost ~]# echo $(pwd)
/root
[root@localhost ~]# echo $`pwd`
$/root

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

[root@localhost ~]# ls -d /var/l*[0-9]*[[:lower:]]
/var/l34dD4c

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

[root@localhost log_test]# ls /etc/[0-9]*[^0-9]
/etc/8sfsdf

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

[root@localhost log_test]# ls /etc/[^[:alpha:]][[:alpha:]]*
/etc/8sfsdf

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

[root@localhost ~]# mkdir /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
tfile-2016-08-27-00-51-08

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

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

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

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

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

[root@localhost ~]# cp -r /etc/[lmn]*.conf /tmp/mytest3
[root@localhost ~]# ls /tmp/mytest3
ld.so.conf  libaudit.conf  libuser.conf  locale.conf  logrotate.conf  man_db.conf  mke2fs.conf  mtools.conf  nfsmount.conf  nsswitch.conf  ntp.conf  numad.conf

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

(0)
mxb93mxb93
上一篇 2016-08-29 09:00
下一篇 2016-08-29 09:01

相關推薦

  • 馬哥教育網絡班21期+第14周課程練習

    系統的INPUT和OUTPUT默認策略為DROP; 1、限制本地主機的web服務器在周一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問;web服務器僅允許響應報文離開本機; INPUT鏈 # iptables -I INPUT 1 -p tcp&nb…

    Linux干貨 2016-11-14
  • 2.Linux文件管理類命令

    Linux文件管理類命令 cp命令:copy 源文件;目標文件; 單源復制:cp [OPTION]… [-T] SOURCE DEST 多源復制:cp [OPTION]… SOURCE… DIRECTORY | cp [OPTION]… -t DIRECTORY SOURCE… 單源復制:cp [OPTION]… [-T]&…

    Linux干貨 2017-07-09
  • Nginx代理MogileFS并實現負載均衡和高可用

    Nginx代理MogileFS并實現負載均衡和高可用 MogileFS nginx 負載均衡 前言 實驗拓撲 實驗環境 實驗步驟 配置MogileFS 配置Nginx 總結 前言 上篇文章我們了解分布式系統和MogileFS的基本使用, 但是那樣的架構是有問題的, 本篇文章我們來了解一下如何使用nginx-mogilefs-module-…

    大數據運維 2016-05-05
  • 上篇博客簡單提了一下Nginx配置文件的大體組成部分,這次來好好解釋一下這些個配置文件。 一、main配置段 分類:    正常運行必備的配置    優化性能相關的配置    用于調試及定位問題相關的配置   …

    Linux干貨 2016-10-26
  • 第八周作業

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。    集線器(HUB)主要功能是對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。集線器是一種共享設備,HUB本身不能識別目的地址,當同一局域網內的A主機給B主機傳輸數據時,數據包在以HUB為架構…

    Linux干貨 2017-02-27
  • Xen虛擬化平臺安裝及實時遷移

    前言 Xen是英國劍橋大學計算機實驗室開發的一個虛擬化開源項目,Xen可以在一套物理硬件上安全的執行多個虛擬機,它和操作平臺結合的極為密切,占用的資源極少。以高性能、占用資源少著稱,贏得了IBM、AMD、HP、Redhat和Novell等眾多世界級軟硬件廠商的高度認可和大力支持,已被國內外眾多企事業用戶用來搭建高性能的虛擬化平臺。 Xen虛擬化類型 Xen對…

    Linux干貨 2015-07-19

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-30 12:51

    除相關作業外,等學習完bash相關課程后,可以試著總結一下bash的特性,加油

欧美性久久久久