N26-第二周

一、文件管理類命令

  • pwd:顯示工作目錄
  • cd:切換目錄
cd [dir] cd: 切換回家目錄;注意:bash中, ~表示家目錄; cd ~:切換回自己的家目錄 cd ~USERNAME:切換至指定用戶的家目錄; cd -:在上一次所在目錄與當前目錄之間來回切換;
相關的環境變量 $PWD:當前工作目錄 $OLDPWD:上一次的工作目錄
  • file:查看文件內容類型
file FILE...
  • ls:文件與目錄的檢視
ls [OPTION]... [FILE]... -a 全部文件,包括隱藏文件(開頭為 . 的文件)
-A  全部文件,包括隱藏文件,但不包括 . 與 .. 這兩個目錄 -d 僅列出目錄本身,而不列出目錄下的文件數據
-h  將文件大小以人類較易讀取的方式列出
-r  逆序顯示
-R  遞歸顯示,連同子目錄內容一起列出 -l 長數據串行輸出,連同子目錄內容一起列出
  • mkdir:創建新目錄
mkdir [OPTION]... DIRECTORY...
-m  直接給定權限 -p  自動創建父目錄 -v  顯示詳細過程
  • rmdir:刪除空目錄
rmdir [OPTION]... DIRECTORY...
-p  刪除某目錄后,如果其父目錄為空,則刪除父目錄 -v  顯示過程
  • tree:以樹狀圖列出文件目錄結構
tree [OPTION] [DIRECTORY] -L 制定要顯示的層級
  • cat:連接、查看文件
cat [OPTION]... [FILE]...
-n  打印行號(包括空白行)
-b  打印行號(不包括空白行)
-E  顯示段行字符$
  • tac:反向顯示
-n  打印行號(包括空白行)
-E  顯示段行字符$
  • head:顯示前面行
head [OPTION]... [FILE]...
-n  顯示n行

后面100行的數據都不打印,只打印/etc/man_db.conf的前面幾行

[root@localhost ~]# head -n -100 /etc/man_db.conf
  • tail:顯示后行
tail [OPTION]... [FILE]...
-n 顯示n行 -f 查看文件尾部內容結束后不退出,跟隨顯示新增的行

不知道/etc/man_db.conf有幾行,卻只想列出100行以后的數據時

[root@localhost ~]# tail -n +100 /etc/man_db.conf
  • touch:創建新文件或修改文件時間
touch [OPTION]... FILE...
-c  制定的文件路徑不存在時不予創建 -a 僅修改access time
-m  僅修改modify time
-t  修改時間 [[CC]YY]MMDDhhmm[.ss]]
  • stat:查看文件狀態
stat [OPTION]... FILE...

Access time:最近訪問時間(該文件被取用)
Modify time:最近更改時間(內容數據變更)
Change time:最近改動時間(屬性權限屬性)

  • cp:復制文件或目錄
單源復制
cp [OPTION]... [-T] SOURCE DEST
多源復制
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
-i  交互式復制,即覆蓋前提醒用戶確認 -f  強制覆蓋文件 -r  遞歸復制目錄 -p  連同文件屬性(權限、用戶、時間)一起復制 -d  復制符號鏈接文件本身,而非其指向的源文件 -a  -dR --preserve=all, archive,用于實現歸檔 --preserv=  mode        權限
            ownership   屬主和屬組
            timestamps  時間戳
            context     安全標簽     
            xattr       拓展屬性
            links       符號鏈接
            all         上述所有屬性
  • rm:移除文件或目錄
rm [OPTION]... FILE...
-i  交互式刪除 -f  強制刪除 -r  遞歸刪除  注意:
危險命令   rm -rf /* 
建議不用的文件不要直接刪除,而是移動至某個專用目錄(模擬回收站)
  • mv:移動文件與目錄,或更名
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
-f  強制 -i  交互式 -u  若目標文件已經存在,且源文件比較新時,才會更新

二、命令執行狀態返回值和命令行展開

  • 命令狀態返回值

Linux下,任意一個命令執行結束后,bash都會返回0-22之間的數值以表示命令執行成功與否,返回值保存于變量 $? 中;其中 0 表示執行成功,1-255表示執行錯誤

  • 命令行展開

~:自動展開為用戶的家目錄,或指定用戶的家目錄
{}:分組機制,可承載以逗號,分割的路徑列表,并將其展開為多個路徑

三、命令行展開實例

實例1
創建/tmp目錄下的:a_c, a_d, b_c, b_d

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

實例2 (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/mylinux/{bin,boot/grup,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

四、元數據信息、時間戳

  • 元數據

任何文件系統中的數據分為數據和元數據。數據是指普通文件中的實際數據,而元數據指用來描述一個文件的特征的系統數據,如訪問權限、文件所有者以及文件數據塊的分布信息等。
文件的元數據是指文件的屬性、大小、創建時間、訪問時間、屬主屬組等信息

查看元數據的命令: stat 、ls -l

[root@localhost ~]# stat /tmp/metadata  文件:"/tmp/metadata" 大小:0 塊:0 IO 塊:4096 普通空文件
設備:fd00h/64768d Inode:3114079 硬鏈接:1 權限:(0644/-rw-r--r--)  Uid:( 0/    root)   Gid:( 0/    root)
最近訪問:2017-03-07 15:35:06.461245040 +0800 最近更改:2017-03-07 15:35:06.461245040 +0800 最近改動:2017-03-07 15:35:06.461245040 +0800 創建時間:-
[root@localhost ~]# ll /tmp/metadata  -rw-r--r-- 1 root root 0 37 15:35 /tmp/metadata
  • 時間戳
    Access time:最近訪問時間(該文件被取用)
    Modify time:最近修改時間(內容數據變更)
    Change time:最近狀態改動時間(屬性權限屬性)

可以使用 touch 命令更改時間戳

touch [OPTION]... FILE...
-c  制定的文件路徑不存在時不予創建 -a  僅修改access time -m  僅修改modify time -t  修改時間 [[CC]YY]MMDDhhmm[.ss]]

更改Atime和Mtime

[root@localhost ~]# touch -t 202003071620.00 /tmp/metadata  [root@localhost ~]# stat /tmp/metadata  文件:"/tmp/metadata" 大小:0 塊:0 IO 塊:4096 普通空文件
設備:fd00h/64768d Inode:3114079 硬鏈接:1 權限:(0644/-rw-r--r--)  Uid:( 0/    root)   Gid:( 0/    root)
最近訪問:2020-03-07 16:20:00.000000000 +0800 最近更改:2020-03-07 16:20:00.000000000 +0800 最近改動:2017-03-07 15:49:38.052929055 +0800 創建時間:-

單獨更改Atime

[root@localhost ~]# touch -at 200804082030.30 /tmp/metadata  [root@localhost ~]# stat /tmp/metadata  文件:"/tmp/metadata" 大?。?span id="xprvrhp"    class="hljs-number" style="color:teal">0 塊:0 IO 塊:4096 普通空文件
設備:fd00h/64768d Inode:3114079 硬鏈接:1 權限:(0644/-rw-r--r--)  Uid:( 0/    root)   Gid:( 0/    root)
最近訪問:2008-04-08 20:30:30.000000000 +0800 最近更改:2020-03-07 16:20:00.000000000 +0800 最近改動:2017-03-07 15:51:45.523721970 +0800 創建時間:-

五、定義別名,引用另一命令的執行結果

  • alias(定義別名)、unalias(取消別名)
alias [name[=value] ...]
unalias  [name ...]

[root@localhost ~]# alias cls=clear [root@localhost ~]# unalias cls
  • 引用命令執行結果
$(COMMAND) 或 `COMMAND`

[root@localhost ~]# mkdir /tmp/mytest1//{$(date +%F),`date +%T`} [root@localhost ~]# ll /tmp/mytest1/ 總用量 0 drwxr-xr-x 2 root root 6 37 16:08 16:08:29 drwxr-xr-x 2 root root 6 37 16:08 2017-03-07
  • 顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[root@localhost ~]# ls -d /var/l*[0-9]*[[:lower:]]
  • 顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@localhost ~]# ls -d /etc/[0-9]*[^0-9]
  • 顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
[root@localhost ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
  • 在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@localhost ~]# touch /var/tfile-$(date +%F)-`date +%H-%M-%S` 或
[root@localhost ~]# touch /var/tfile-$(date +%F-%H-%M-%S)
  • 復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/ 需要先創建mytest1
  • 復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2  需要先創建mytest2
  • 復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@localhost ~]# cp -r /etc/[lmn]*.conf /tmp/mytest3
需要先創建mytest3

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

(0)
zclp610zclp610
上一篇 2017-03-07 15:18
下一篇 2017-03-07 21:31

相關推薦

  • CentOS 系統啟動流程[轉載]

    Linux(CentOS)系統啟動過程大致按照如下順序: POST –> BootSequence(BIOS) –>Bootloader(MBR) –>Kernel(ramdisk)–>rootfs(readonly)–>switchroot–>/sb…

    Linux干貨 2017-01-28
  • Linux運維學習歷程-第一天-基礎知識

    什么是Linux   Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。 為什么學Linux…

    Linux干貨 2016-08-03
  • 淺談用戶和組相關配置文件

    用戶、組和權限的管理 Linux如何像Windows系統那樣,可以不輸入密碼直接進入圖形界面?那么如何如何自動登錄圖形界面呢?這就要用到編輯配置文件: nano  /etc/gdm/custom.cof  ,在里面加上   automaticLoginEnable=true automaticLogin=root 退出…

    Linux干貨 2016-10-23
  • 子網掩碼快速劃分-心算

    問題狀況: 不管作為一名網絡工程師還是一名運維工程師,快速心算劃分出網絡掩碼是必備得技能, ???? 為什么要進行子網掩碼劃分? 純二層環境不能隔離廣播 有安全 管理方面的問題 解決辦法:在二層環境下增加三層設備 將原本的一個主類網絡號劃分成多個子網 ? ? 掩碼基礎知識: ????注意:此步沒記住不要往下進行 ????死記硬背1: ????2^0=1 ??…

    Linux干貨 2017-03-26
  • 第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。                 使用到命令chmod &nbsp…

    Linux干貨 2017-02-02
  • N22-第一周作業

    1、描述計算機的組成及功能      計算機系統由硬件系統和軟件系統組成。硬件系統(Hardware system)是計算機完成計算工作  的物質基礎。軟件系統(Software system):是在計算機硬件設備上運行的各種程序,是介于用戶  和硬件系統之間的界面。1.1 計算機的硬件系…

    Linux干貨 2016-08-22
欧美性久久久久