N26—第二周博客作業

一、Linux常用管理命令

    1、cp命令:復制

        cp 源文件 目標文件

[root@localhost ~]# cp /etc/fstab /tmp
cp: overwrite ‘/tmp/fstab’? y

    如果目標文件中存在同名的文件,將會提示你是否覆蓋,按下“y”鍵則覆蓋。

[root@localhost ~]# cp /etc/vimrc /etc/fstab /etc/exports /tmp/

    此命令為復制多個文件到指定目錄,其中/tmp/為目標文件

[root@localhost ~]# cp -r /etc/ /tmp/cc/

    此命令為遞歸復制,意思就是講/etc/目錄下的所有文件,以及子目錄里的文件全部復制到/tmp/cc/ 目錄之下。

命令一:lrwxrwxrwx.  1 root root       14 Dec 22 18:01 system-release -> centos-release
命令二:[root@localhost ~]# cp /etc/system-release /tmp/aa/
命令三:[root@localhost ~]# ls -l /tmp/aa/
-rw-r--r--. 1 root root 38 Jan  6 07:20 system-release

    此命令為復制符號鏈接所指向的源文件到目錄/tmp/aa目錄下,通過命令三查看system-release的屬性前面沒有標注l(l代表此文件為軟連接)

命令一:[root@localhost ~]# cp -d /etc/system-release /tmp/aa/
命令二:[root@localhost ~]# ll /tmp/aa/
total 0
lrwxrwxrwx. 1 root root 14 Jan  6 07:22 system-release -> centos-release

    此命令為復制符號鏈接,而非文件的本身,通過命令二查看,此文件屬性前有l參數,并且文件名字后面有指向源文件的符號標識"->"

    2、mv命令:移動命令

        mv 源文件 目標文件

[root@localhost ~]# mv aaa /tmp/

將文件aaa移動到/tmp目錄下,此時工作目錄中已經沒有aaa這個文件

命令一:[root@localhost ~]# mv aaa /tmp/
mv: overwrite ‘/tmp/aaa’? 
命令二:[root@localhost ~]# mv aaa -f /tmp/

當目標文件中存在與源文件相同的文件名時,會提示是否覆蓋該文件,如命令一所示;此時,如果在命令中加上-f參數則不會提示是否覆蓋而是直接覆蓋,如命令二所示。

    

    3、rm命令:刪除命令

    rm 路徑名/文件名

rm后接路徑名可直接刪除該文件,刪除時會提示你是否刪除,加上-f參數則不會提示,加上-rf參數則會刪除該目錄下所有文件以及子目錄所有的文件。

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

    1、bash的基礎特性之:命令行展開

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

           命令一: [root@localhost tmp]# ~
            -bash: /root: Is a directory
            
           命令二:[user1@localhost tmp]$ ~
            -bash: /home/user1: Is a directory

        命令一展示的為root用戶的家目錄:/root;命令二展示的為user1用戶的家目錄:/home/user1

{}:可承載一個以都好為分隔符的路徑列表,并能夠將其展開為多個路徑;

例如:/tmp/{a,b} 相當于/tmp/a /tmp/b

root@localhost tmp]# ls -l /tmp/{aaa,bbb}
/tmp/aaa:
total 0

/tmp/bbb:
total 0

    此命令分別列出了/tmp/aaa目錄和/tmp/bbb目錄下的信息。

    2、bash的基礎特性:命令的執行狀態結果

命令執行的狀態結果:

    bash通過狀態返回值來輸出此結果;

成功:0

失?。?-255

命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;

        命令正常執行時,有的還會有命令返回值,根據命令及其功能不同,結果各不相同;

命令一:[root@localhost tmp]# touch 111
[root@localhost tmp]# echo $?
0

命令二:[root@localhost tmp]# ls 222
ls: cannot access 222: No such file or directory
[root@localhost tmp]# echo $?
2

命令三:
[root@localhost tmp]# cp 222
cp: missing destination file operand after ‘222’
Try 'cp --help' for more information.
[root@localhost tmp]# echo $?
1

        命令一為正常執行,返回值為0.命令二和命令三為執行錯誤,返回值分別為2和1.

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

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

[root@localhost tmp]# touch {a_,b_}{c,d}
[root@localhost tmp]# ls -l
total 0
-rw-r--r--. 1 root root 0 Jan  6 07:58 a_c
-rw-r--r--. 1 root root 0 Jan  6 07:58 a_d
-rw-r--r--. 1 root root 0 Jan  6 07:58 b_c
-rw-r--r--. 1 root root 0 Jan  6 07:58 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 tmp]# 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}}

命令二:
root@localhost tmp]# tree /tmp/
/tmp/
└── mylinux
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │       └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   ├── bin
    │   ├── local
    │   └── sbin
    └── var
        ├── lock
        ├── log
        └── run

25 directories, 0 files

    命令一為建造目錄的命令,命令二為測試輸出的結果。

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

任何文件系統中的數據分為數據和元數據。數據是指普通文件中的實際數據,而元數據指用來描述一個文件的特征的系統數據,諸如訪問權限、文件擁有者以及文件數據塊的分布信息(inode…)等等。在集群文件系統中,分布信息包括文件在磁盤上的位置以及磁盤在集群中的位置。用戶需要操作一個文件必須首先得到它的元數據,才能定位到文件的位置并且得到文件的內容或相關屬性。

[root@localhost tmp]# stat aaa
  File: ‘aaa’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 137         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-01-06 08:13:50.820953499 -0500
Modify: 2017-01-06 08:13:50.820953499 -0500
Change: 2017-01-06 08:13:50.820953499 -0500
 Birth: -

根據stat命令來查看元數據信息;

[root@localhost tmp]# touch -at 1011142221 aaa
[root@localhost tmp]# stat aaa
  File: ‘aaa’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 137         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2010-11-14 22:21:00.000000000 -0500
Modify: 2017-01-06 08:34:02.258938821 -0500
Change: 2017-01-06 08:46:13.858929957 -0500
 Birth: -

僅修改aaa文件訪時間戳的訪問時間為10年14號22點21

[root@localhost tmp]# touch -mt 1411142221 aaa
[root@localhost tmp]# stat aaa
  File: ‘aaa’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 137         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2010-11-14 22:21:00.000000000 -0500
Modify: 2014-11-14 22:21:00.000000000 -0500
Change: 2017-01-06 08:47:58.272928692 -0500
 Birth: -

僅修改aaa文件的最近改動時間為2014年11月14日22點21分

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

   1、定義命令的別名

    alias 別名='命令'

[root@localhost tmp]# alias mm='rm /tmp/*'
[root@localhost tmp]# ls /tmp/
0811142234.50  101142234  12:11       22:21:48  bbb  mylinux
0911142234.50  11         2016-12-24  aaa       ddd  oct
[root@localhost tmp]# mm
rm: remove regular empty file ‘/tmp/0811142234.50’? y
rm: remove regular empty file ‘/tmp/0911142234.50’? y
rm: remove regular empty file ‘/tmp/101142234’? y
rm: remove regular empty file ‘/tmp/11’? y
rm: remove regular empty file ‘/tmp/12:11’? y
rm: remove regular empty file ‘/tmp/2016-12-24’? y
rm: remove regular empty file ‘/tmp/22:21:48’? y
rm: remove regular empty file ‘/tmp/aaa’? y
rm: remove regular empty file ‘/tmp/bbb’? y
rm: remove regular empty file ‘/tmp/ddd’? y
rm: cannot remove ‘/tmp/mylinux’: Is a directory
rm: remove regular empty file ‘/tmp/oct’? y

 定義mm為命令'rm /tmp/*'命令的別名,執行mm命令時等于執行'rm /tmp/*'命令

       

    2、通過`命令`能引用命令執行的結果

[root@localhost tmp]# echo `cat /etc/fstab`
# # /etc/fstab # Created by anaconda on Thu Dec 22 18:00:27 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=7ee15b3b-c6b1-4fb6-88d4-442348105d29 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sdb1 /mydata ext4 noatime,noexec 0 0

此命令為在屏幕輸出'cat /etc/fstab'的執行結果

六、var目錄下以l開頭,中間有數字,小寫字母結尾的文件或目錄

[root@localhost tmp]# ls -ld /var/l*[1-9]*[a-z]
-rw-r--r--. 1 root root 0 Jan  6 09:22 /var/l123aafa
-rw-r--r--. 1 root root 0 Jan  6 09:16 /var/l2a

七、/etc目錄下以任意數字開頭,非數字結尾的目錄或文件

[root@localhost tmp]# ls -ld /etc/[1-9]*[![:digit:]]
-rw-r--r--. 1 root root 0 Dec 26 02:25 /etc/123a

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

[root@localhost tmp]# ls -ld /etc/[^[:alpha:]][:alpha:]*
-rw-r--r--. 1 root root 0 Jan  6 09:42 /etc/1a555

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

[root@localhost tmp]# touch tfile-`date +%F-%H-%M-%S`
[root@localhost tmp]# ls -l /tmp
total 0
-rw-r--r--. 1 root root 0 Jan  6 09:49 tfile-2017-01-06-09-49-37

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

[root@localhost tmp]# cp -rd /etc/p*[^[:digit:]] /tmp/mytest1/
[root@localhost tmp]# ls -l /tmp/mytest1/
total 56
drwxr-xr-x. 2 root root 4096 Jan  6 09:57 pam.d
-rw-r--r--. 1 root root 3450 Jan  6 09:57 passwd
-rw-r--r--. 1 root root 3407 Jan  6 09:57 passwd-
-rw-r--r--. 1 root root 1362 Jan  6 09:57 pbm2ppa.conf
-rw-r--r--. 1 root root 2872 Jan  6 09:57 pinforc
drwxr-xr-x. 9 root root   91 Jan  6 09:57 pki
drwxr-xr-x. 2 root root   27 Jan  6 09:57 plymouth
drwxr-xr-x. 5 root root   49 Jan  6 09:57 pm
-rw-r--r--. 1 root root 6300 Jan  6 09:57 pnm2ppa.conf
drwxr-xr-x. 2 root root    6 Jan  6 09:57 popt.d
drwxr-xr-x. 2 root root 4096 Jan  6 09:57 postfix
drwxr-xr-x. 3 root root 4096 Jan  6 09:57 ppp
drwxr-xr-x. 2 root root  101 Jan  6 09:57 prelink.conf.d
-rw-r--r--. 1 root root  233 Jan  6 09:57 printcap
-rw-r--r--. 1 root root 1750 Jan  6 09:57 profile
drwxr-xr-x. 2 root root 4096 Jan  6 09:57 profile.d
-rw-r--r--. 1 root root 6545 Jan  6 09:57 protocols
drwxr-xr-x. 2 root root   75 Jan  6 09:57 pulse
drwxr-xr-x. 2 root root   22 Jan  6 09:57 purple
drwxr-xr-x. 2 root root   34 Jan  6 09:57 python

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

[root@localhost tmp]# cp -rf /etc/*.d /tmp/mytest2/
[root@localhost tmp]# 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

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

[root@localhost tmp]# 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

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

(0)
lafengjinzilafengjinzi
上一篇 2017-01-06
下一篇 2017-01-06

相關推薦

  • 手動創建掛載交換分區

    SWAP分區 SWAP [root@cloud ~]# fdisk /dev/sdb Command (m for help): d Selected partition 1 Command (m for help): w The…

    Linux干貨 2016-06-09
  • lvs負載集群實驗(實現wordpress)

    項目要求: (1) lvs 調度兩臺 nginx+php-fpmreal-server,采用 dr 模型,調度算法為 rr (2) mariadb 為 real-server 提供數據庫,nfs 掛載至 2 臺 real-server 提供文件服務 (3) 由于實驗環境地址沖突將VIP替換為172.18.60.60 實施步驟: 一、配置NFS+mariadb…

    2017-05-10
  • LVS的四種模型

    相關術語: vs:Virtual Server,Director,Dispatcher,Balancer rs:Real Server,upstream server,backend server lvs集群的類型: lvs-nat:修改請求報文的目標IP lvs-dr:操作封裝新的MAC地址; lvs-tun:在原請求IP報文之外新加一個IP首部; lvs…

    Linux干貨 2016-10-30
  • 簡單的啟動排錯

    一、出現 grub> 字樣,等待交互式輸入指令,說明MBR中Bootloader的stage1、stage1_5、stage2都正常,但丟失了/boot/grub.conf 文件,所以無法加載啟動項菜單,就無法讀取默認啟動的kernel、initrd等文件路徑。 解決辦法:無需救援模式,直接在此交互式界面指定相關文件的加載路徑。 (1) grub&gt…

    Linux干貨 2016-11-26
  • Linux文件查找

    什么是文件查找     在文件系統中查找符合條件的文件; 文件查找分為:     實時查找:遍歷所有文件進行條件匹配(find)     非實時查找:根據索引查找(locate) locate ? 查詢系統上預建的文件索引數據庫 …

    Linux干貨 2016-08-15
  • bash腳本基礎認知

    編程基礎:程序:指令+數據                過程式:以指令為中心,數據服務于指令              &nbs…

    Linux干貨 2017-03-02

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-02 19:51

    非常的棒,繼續加油。

欧美性久久久久