第二周作業

第二周博客作業

1. Linux上常用的文件管理命令及使用

  • (1) CP命令:復制文件或文件夾
    語法格式

           cp [OPTION]... [-T] SOURCE DEST            // 單源復制   
           cp [OPTION]... SOURCE... DIRECTORY         //多源復制

    常用選項

           -i,--interactive:交互式復制,如果要復制的目標文件存在,在覆蓋之前提醒用戶確認;
           -f,--force:強制覆蓋目標文件;
           -r,-R,--recursive:遞歸復制,復制目錄中的子目錄;
           -d:復制符號連接本身,而不是其指向的源文件;
           -a,-dR --preserve=all:archive,用于實現歸檔;
           --preserve=[ARRT_LIST]:復制文件時保留源文件的一些屬性
                                   如:mode,ownership, timestamps,context,links,xattr,all

    注意
    ?? 在復制文件時,如果目標是文件,若文件存在則提示用戶是否覆蓋目標,若目標不存在則創建一個與源文件同名的文件,并將內容復制進去;如果目標是目錄,若目標目錄不存在則會提示錯誤,若目標目錄存在,則在目標目錄下先創建一個與源文件同名的文件,并將文件內容復制進去。
    示例

    [root@localhost ~]# cp /etc/fstab /tmp/fstab.bak              //單源復制[root@localhost ~]# cp /etc/fstab /etc/passwd /tmp/test/      //多源復制
  • (2) mv命令:移動或重命名文件
    語法格式

            mv [OPTION]... [-T] SOURCE DEST
            mv [OPTION]... SOURCE... DIRECTORY
            mv [OPTION]... -t DIRECTORY SOURCE...

    常用選項

            -f,--force:強制移動,在覆蓋時不提示;
            -i,--interactive:覆蓋時提示;

    示例

    [root@localhost ~]# mv fstab fstab.bak            //重命名[root@localhost ~]# mv fstab.bak ./test/          //移動
  • (3) rm命令:刪除文件或目錄
    語法格式

           rm [OPTION]... FILE...

    常用選項

           -f,--force:強制刪除,不管文件存不存在都不提示;
           -i,每刪除一個文件都詢問是否刪除;
           -r,-R,--recursive:遞歸刪除,刪除目錄及子目錄;

    示例

    [root@localhost ~]# rm  -r ./test/             //刪除目錄

2. bash工作特性

  • (1) 命令執行狀態返回值
    ??shell程序會將上一次運行的命令是否成功以及函數的返回值保存在$?這個特殊的變量中,我們可以通過查看$?的值來確認上一次的命令是否執行成功。執行成功則返回0,失敗則返回1~255之間的一個數。
    <br/>
    注意:命令的執行狀態結果與命令的執行結果是兩個不同的概念,比如說,ls命令,當我們執行它時,它的狀態結果可能是1,而它的執行結果則是列出當前目錄中的文件。
    示例

    [root@localhost tmp]# lsinit.d  mylinux  scripts
    [root@localhost tmp]# echo $?0[root@localhost tmp]# lss-bash: lss: command not found
    [root@localhost tmp]# echo $?2

    ??另外,我們還可以引用命令的執行結果,使用$(command)或 `(command)` ,如當我們要根據當前時間來創建出一個目錄時:

    [root@localhost ~]# mkdir $(date +H%-%M-%s)
  • (2) 命令行展開
    ??bash中可以使用某些特殊的字符來表示命令中的參數字符串。

           ~ :用戶的家目錄;
           ~USERNAME:指定用戶USERNAME的家目錄;       {} :可以指定一個以逗號分隔的路徑列表。

    示例

    [root@localhost ~]# cd  ~                        //切換至當前用戶的家目錄[root@localhost ~]# cd  ~Syuan                   //切換至Syuan的家目錄[root@localhost ~]# rm /tmp/{a,b}                //刪除tmp目錄下的a和b文件

    應用

    Ⅰ 在/tmp目錄下創建 a_c,a_d,b_c,b_d文件;

    [root@localhost ~]# touch /tmp/{a,b}_{c,d}

    Ⅱ 創建/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 -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 ~]# tree /tmp/mylinux

3. 文件的元數據信息

??文件的數據可以分為兩類,一種是元數據(matedata),用于記錄文件的屬性信息,如:大小、類型、權限、屬主屬組、時間戳等。另一種就是數據(data),記錄文件的內容。在linux系統上,我們可以通過stat命令來查看文件或文件系統的狀態。
示例

[root@localhost ~]# stat functions 
  File: ‘functions’
  Size: 13948         Blocks: 32         IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 202424773   Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-11-24 17:48:04.752152528 +0800Modify: 2016-11-24 17:47:23.900148636 +0800Change: 2016-11-24 17:47:23.900148636 +0800
 Birth: -

??我們也可以使用命令來改變文件的一些元數據信息,如權限、屬主屬組、時間戳等。下面介紹一下改變文件時間戳的命令touch。
touch 命令:修改文件的時間戳,當文件不存在時會創建一個空文件。

語法格式

            touch [OPTION]... FILE...

常用選項

            -a:僅修改訪問時間;            -c:文件不存在是不創建;            -m:僅修改修改時間;            -t STAMP:指定時間而不是使用當前的時間,格式[[CC]YY]MMDDhhmm[.ss]

示例

[root@localhost ~]# ll functions -rw-r--r--. 1 root root 13948 Nov 24 17:47 functions
[root@localhost ~]# touch functions [root@localhost ~]# ll functions -rw-r--r--. 1 root root 13948 Dec 11 05:27 functions

4. 命令的別名

??在linux系統上我們可以給命令的常用選項定義一個別名,使用別名就相當于使用這個命令的特定選項。這對于這個命令特別常用選項很長或者很多時,通過別名來使用就非常方便。在linux系統上通過alias命令來定義別名,它是shell的內嵌命令。
alias命令:定義或顯示別名
語法格式

            alias [name[=value] ... ]

alias不帶參數時顯示系統上定義的所有別名。
示例

[root@localhost ~]# alias clear='clr'

注意:使用alias命令所定義的別名只對當前shell進程有效,當系統重啟后所定義的別名變不起作用了,若要使定義的別名永久有效,則可以編輯~/.bashrc文件。另外,撤銷別名的定義可以使用unalias命令。


5. 練習

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

[root@localhost ~]# ls /var | grep "\<l.*[[:digit:]]\+.*[[:lower:]]\>"
  • (2) 顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。

[root@localhost ~]# ls /etc | grep "\<[[:digit:]].*[^[:digit:]]\>"
  • (3) 顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。

[root@localhost ~]# ls /etc | grep "\<[^[:alpha:]][[:alpha:]].*"
  • (4) 在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。

[root@localhost ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
  • (5) 復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

[root@localhost ~]# mkdir /tmp/mytest1[root@localhost ~]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1/
  • (6) 復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。

[root@localhost ~]# mkdir /tmp/mytest2[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2/
  • (7) 復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

[root@localhost ~]# mkdir /tmp/mytest3[root@localhost ~]# cp /etc/[lmn]*.conf /tmp/mytest3

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

(0)
SyuanSyuan
上一篇 2016-12-15
下一篇 2016-12-16

相關推薦

  • 淺談TCP三次握手和四次分手

          TCP(Transmission Control Protocol傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議提供可靠的連接服務,采用三次握手確認建立一個連接,比如我們去訪問一個網站,從輸入網址到頁面顯示我們所想要瀏覽的內容,這個過程其中就包含了小編要說的三次握手和四次揮手。 一、首先我們來了解…

    2017-09-02
  • centos6開機啟動流程以及系統服務配置管理

    內容:   CentOS6 的啟動流程   服務管理(chkconfig)   手動制定系統開機服務腳本 一、centos6系統啟動流程 綜述過程: POST–>BIOS(Boot Sequence)–>MBR(grub,446)–>Kernel–>init…

    Linux干貨 2016-09-08
  • Redis應用場景

    1.  MySql+Memcached架構的問題   實際MySQL是適合進行海量數據存儲的,通過Memcached將熱點數據加載到cache,加速訪問,很多公司都曾經使用過這樣的架構,但隨著業務數據量的不斷增加,和訪問量的持續增長,我們遇到了很多問題:   1.MySQL需要不斷進行拆庫拆表,Memcached也需不斷跟著擴容,擴容和維護工作占據…

    Linux干貨 2016-03-22
  • 下載編譯安裝httpd 2.4最新版本

    關于這個問題分三步講:1.下載最新版本;2.編譯;3.安裝 一:下載httpd 2.4的最新版本:(這里以Centos 7為例,Centos 6里用的是2.2版本的) 下載的話如何找下載路徑—–>下載后是存在windows下,如何將其移進linux中  1.下載路徑: 當然我們現在只要是碰到不會或者不知道的東西,通常會…

    2017-08-26
  • 8.1作業

    創建用戶gentoo,附加組為bin和root,默認shell為/bin/csh,注釋信息為“Gentoo Distribution” [root@localhost wang]# useradd -G bin,root -s /bin/csh -c "Gentoo&n…

    Linux干貨 2016-08-02
  • RAID解說

    RAID(RedundantArrays of Inexpensive Disks,RAID),又叫獨立的磁盤陣列。有“價格便宜具有冗余能力的磁盤陣列”之意。原理是利用數組方式來作磁盤組,配合數據分散排列的設計,提升數據的安全性。磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。利用這項技術…

    2017-03-14
欧美性久久久久