第二周-博客

本文大綱

  • 文件系統層級結構標準

  • Linux上常見的文件類型

  • bash的基礎特性

  • 用戶、組和普通權限

  • 一些零散命令的使用


文件系統層級結構標準

FHS是Filesystem Hierarchy Standard(文件系統層次化標準)的縮寫,多數Linux版本采用這種文件組織形式,類似于Windows操作系統中c盤的文件目錄,FHS采用樹形結構組織文件。FHS定義了系統中每個區域的用途、所需要的最小構成的文件和目錄。 下邊將詳細介紹各目錄的功用:

  • /bin:所有用戶可用的基本命令程序文件;

  • /sbin:供系統管理使用的工具程序;

  • /boot:引導加載器必須用到的各靜態文件:kernel, initramfs(initrd), grub等;

  • /dev:存儲特殊文件或設備文件,

    • 設備有兩種類型:字符設備(線性設備)、塊設備(隨機設備);

  • /etc:系統程序的配置文件,只能為靜態;

  • 普通的家目錄的集中位置;一般每個普通用戶的家目錄默認為此目錄下與用戶名同名的子目錄,/home/USERNAME;

  • 管理員的家目錄;可選;

  • 為系統啟動或根文件系統上的應用程序(/bin, /sbin等)提供共享庫,以及為內核提供內核模塊

    • libc.so.*:動態鏈接的C庫;

    • ld*:運行時鏈接器/加載器;

    • modules:用于存儲內核模塊的目錄;

  • /lib64:64位系統特有的存放64位共享庫的路徑;

  • /media:便攜式設備掛載點,cdrom, floppy等;

  • /mnt:其它文件系統的臨時掛載點;

  • /opt:附加應用程序的安裝位置;可選路徑;

  • /srv:當前主機為服務提供的數據;

  • /tmp:為那些會產生臨時文件的程序提供的用于存儲臨時文件的目錄;可供所用戶執行寫入操作;有特殊權限;

  • /usr:usr Hierarchy,這是一個是全局共享的只讀數據路徑;

    • bin, sbin

    • lib, lib64

    • include:C程序頭文件;

    • share:命令手冊頁和自帶文檔等架構特有的文件的存儲位置

    • local:另一個層級目錄;

    • X11R6:X-Window程序的安裝位置

    • src:程序源碼文件的存儲位置

  • /usr/local:Local hierarchy,讓系統管理員安裝本地應用程序;也通常用于安裝第三方程序;

  • /var:/var Hierarchy,存儲常發生變化的數據的目錄;

    • cache Application cache data

    • lib Variable state information

    • local Variable data for /usr/local

    • lock Lock files

    • log Log files and directories

    • opt Variable data for /opt

    • run Data relevant to running processes

    • spool Application spool data

    • tmp Temporary files preserved between system reboots

  • /proc:基于內存的虛擬文件系統(偽文件系統),用于為內核及進程存儲其相關信息;它們多為內核參數,例如net.ipv4.ip_forward, 虛擬為net/ipv4/ip_forward, 存儲于/proc/sys/, 因此其完整路徑為/proc/sys/net/ipv4/ip_forward;

  • /sys:sysfs虛擬文件系統提供了一種比proc更為理想的訪問內核數據的途徑;其主要作用在于為管理Linux設備提供一種統一模型的的接口;


Linux上常見的文件類型

  • -:常規文件;即f;

  • d: directory,目錄文件;

  • b: block device,塊設備文件,支持以“block”為單位進行隨機訪問

  • c:character device,字符設備文件,支持以“character”為單位進行線性訪問

    • 8位二進制:0-255

    • major number:主設備號,用于標識設備類型,進而確定要加載的驅動程序

    • minor number:次設備號,用于標識同一類型中的不同的設備;

  • l:symbolic link,符號鏈接文件;

  • p: pipe,命名管道;

  • s: socket,套接字文件;


bash的基礎特性

bash特性:命令歷史、別名、命令補全、路徑補全、命令行展開、命令的執行狀態結果、引用、快捷鍵、變量、globing文件名通配、IO重定向、管道、命令hash、多命令執行,最后介紹bash的配置文件

命令別名
  • 命令可以有別名,別名可與原名相同,此時原名被隱藏,若想運行原命令,則使用\COMMAND:

  • 獲取所有可用命令別名:
       - alias
  • 定義別名:
      - alias NAME='COMMAND'  - 注意:僅對當前shell進程有效
  • 撤銷別名:
      - unalias NAME
命令歷史
  • shell進程會在會話中保存此前用戶提交執行過的命令

    • 環境變量:HISTCONTROL

    • ignoredups:忽略重復的命令

    • ignorespace:忽略以空白字符開頭的命令

    • ignoreboth:以上兩者同時生效

    • 快捷鍵:ESC,.

    • 字符組合:!$

    • !#:再次執行歷史列表中第#條命令

    • !!:再次執行上一條命令

    • !STRING:再次執行列表中最近一個以STRING開頭的命令

    • 注意:命令的重復執行有時候需要依賴于冪等性

    • HISTSIZE:shell進程可保留的命令歷史條數

    • HISTFILE:保存命令歷史的文件,默認為.bash_history

    • HISTFILESIZE:保存命令歷史的文件大小

    • -c:清空命令歷史

    • -d offset:刪除指定位置的命令歷史

    • -r:從文件中(用戶家目錄下的.bash_history)讀取歷史至歷史列表中

    • -w:將歷史列表中的命令歷史追加至文件.bash_history中

    • history #:顯示最近的#號條命令

    • history命令:

    • 定制history的功能,可以通過環境變量實現:

    • 調用命令歷史列表中的命令:

    • 調用上一條命令的最后一個參數:

    • 控制命令歷史的記錄方式:

命令補全
  • shell程序在接收到用戶執行命令的請求,分析完成后,最左側的字符串會被當做命令。

    • 根據PATH變量中設定的路徑,自左而右逐個搜索目錄路徑下的文件名。

    • 給定的打頭字串如果能唯一標識某命令程序文件,敲一下tab鍵則直接補全。

    • 給定的打頭字串如果不能唯一標識某命令程序文件,敲兩下tab鍵會給出可選列表。

    • 命令查找機制:

路徑補全
  • 在給定的起始路徑下,以給定路徑下的打頭字串來逐一匹配對應路徑下的每個文件,若能唯一標識,按一下tab鍵直接補全,否則,按兩下tab鍵給出可選列表。

命令行展開
  • 參數非常多時,可用命令行展開大量縮減輸入量

    • 例:/tmp/{a,b} 即為 /tmp/a 和 /tmp/b

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

    • {}:可承載以逗號分隔的路徑列表,并能夠展開為多個路徑

命令的執行狀態結果
  • bash通過狀態返回值來輸出此結果

    • 0:成功

    • 1-255:失敗

  • 命令執行完成后,其狀態返回值被保存在bash特殊變量$?中

引用
  • 弱引用:""

  • 強引用:''

  • 命令引用 :`COMMAND`或者$(COMMAND)

快捷鍵
  • 跳轉至命令行行首:ctrl+a

  • 跳轉至命令行行尾:ctrl+e

  • 刪除光標至行首的所有字符:ctrl+u

  • 刪除光標至行尾的所有字符:ctrl+k

  • 清屏:ctrl+l,相當于命令clear

變量
  • 命名的內存空間

    • 本地變量:作用域為當前shell進程

    • 環境變量:作用域為當前shell進程及其子進程

    • 局部變量:作用域為某函數片段(函數上下文)

    • 位置參數變量:為執行腳本的shell進程提供參數

    • 特殊變量:shell內置的有特殊功用的變量

    • 賦值:name=value

    • 查看:set

    • 撤銷:unset name

    • 賦值:export name=value,declare -x name=value

    • 查看:export、declare -x,printenv,env

    • 撤銷:unset name

    • $?:保存有命令執行狀態返回碼

    • $#:參數個數

    • $*:一次取出所有參數列表

    • $@:依次取出所有參數列表

    • 變量賦值:name=value

    • 變量類型:bash把所有變量統統視作字符型,bash中的變量無需事先聲明,相當于把聲明和賦值的過程同時實現。

    • 變量替換:將變量所出現的位置替換為其所指向內存空間中的數據

    • 變量引用:${var_name},$var_name

    • 變量名:變量名只能包含字母、數字、下劃線,而且不能以數字開頭,應見名知義

globing文件名通配
  • 整體文件名通配,而非部分

    • *:匹配任意長度的任意字符

    • ?:匹配任意單個字符

    • []:匹配指定范圍內的任意單個字符,如[0-9]、[A-Z]…

    • 幾種特殊格式:

    • [[:upper:]]:所有大寫字符

    • [[:lower:]]:所有小寫字母

    • [[:alpha:]]:所有字母

    • [[:digit:]]:所有數字

    • [[:alnum:]]:所有字母和數字

    • [[: space:]]:所有空白字符

    • [[:punct:]]:所有標點符號

    • [^]:匹配指定范圍外的任意單個字符

    • [^[:upper:]]

    • [^0-9]

    • 匹配模式:元字符

IO重定向
  • 可用于輸入的設備、文件:

    • 鍵盤、網卡、文件系統上的常規文件

  • 可用于輸出的設備、文件:

    • 顯示器、網卡、文件系統上的常規文件

  • 程序的數據流有三種:

    • 輸入的數據流 <– 標準輸入(stdin),鍵盤

    • 輸出的數據流 –> 標準輸出(stdout),顯示器

    • 錯誤輸出流 –> 錯誤輸出(stderr),顯示器

  • fd:file description文件描述符

    • 標準輸入:0

    • 標準輸出:1

    • 錯誤輸出:2

  • 輸出重定向:

    • >:覆蓋輸出

    • >>:追加輸出

    • 2>:錯誤覆蓋輸出

    • 2>>:錯誤追加輸出

    • &>:合并正常輸出流和錯誤輸出流,覆蓋

    • &>>:合并正常輸出流和錯誤輸出流,追加

    • set -C:禁止覆蓋輸出重定向至已存在的文件,此時可用>|強制覆蓋輸出。

    • set +C:關閉上述特性

  • 輸入重定向:

    • <:標準輸入

    • <<:here document

    • cat << EOF

    • cat > /PATH/TO/SOMEFILE << EOF

管道
  • 連接程序,實現將前一個的命令輸出直接定向給后一個命令當做輸入數據流

    • COMMAND1 | COMMAND2

命令hash
  • 緩存此前命令的查找結果,key-value

    • hash:列出

    • hash -d COMMAND:刪除

    • hash -r:清空

    • hash命令:

多命令執行
~]# COMMAND1;COMMAND2;COMMAND3;...
  • 邏輯執行:

    • 與:&&

    • 或:||

    • 非:!

配置文件
  • bashrc類:為非交互式登錄的shell進程提供配置

    • 用于定義本地變量,定義命令別名

    • 注意:全局類配置僅管理員可以修改

    • ~/.bashrc

    • /etc/bashrc

    • 全局:

    • 用戶個人:

    • 功能:

  • profile類:為交互式登錄的shell進程提供配置

    • 用于定義環境變量,運行命令或腳本

    • /etc/profile

    • /etc/profile.d/*.sh 用戶個人:僅對當前用戶生效

    • ~/.bash_profile

    • 全局:對所有用戶都生效

    • 功能:

  • 交互式登錄:

    • su – USERNAME

    • su -l USERNAME

    • 直接通過某終端輸入賬號密碼登錄打開的shell進程

    • 讀取配置順序:/etc/profile -> /etc/profile.d/*.sh -> ~/.bash_profile -> ~/.bashrc -> /etc/bashrc

  • 非交互式登錄:

    • su USERNAME

    • 圖形界面下打開的終端

    • 運行腳本

    • 登錄方式

    • 讀取配置順序:~/.bashrc -> /etc/bashrc -> /etc/profile.d/*.sh

  • 讓配置文件定義的特性立即生效:

    • (1)、通過命令行重新定義一次

    • (2)、source /PATH/TO/CONF_FILE 或 . /PATH/TO/CONF_FILE


用戶、組和普通權限

  • Linux 是一個多用戶、多任務的操作系統,因此有必要對用戶及組進行分類管理。

一、概念部分:
1、用戶
  • 分類:

    • 管理員

    • 普通用戶

    • 系統用戶

    • 登錄用戶

  • 標識:User ID,UID

    • 16bits二進制數據:0-65535

    • 管理員:0

    • 普通用戶:1-65535

    • 系統用戶:1-499(CentOS6),1-999(CentOS7)

    • 登錄用戶:500-6萬(CentOS6),1000-6萬(CentOS7)

  • 名稱解析:username <–> UID

    • 根據名稱解析庫進行:/etc/passwd

2、組
  • 分類1:

    • 系統組

    • 登錄組

    • 管理員組

    • 普通用戶組

  • 標識:Group ID,GID

    • 16bits二進制數據:0-65535

    • 管理員組:0

    • 普通用戶組:1-65535

    • 系統組:1-499(CentOS6),1-999(CentOS7)

    • 登錄組:500-6萬(CentOS6),1000-6萬(CentOS7)

  • 名稱解析:groupname <–> GID

    • 根據名稱解析庫進行:/etc/group

  • 分類2:

    • 用戶的基本組

    • 用戶的附加組

  • 分類3:

    • 私有組:組名同用戶名,且只包含一個用戶

    • 公有組:組內包含多個用戶

3、認證信息
  • 通過登錄時提供的信息與事先存儲的信息比對,看是否一致。

    • /etc/shadow

    • /etc/gshadow

    • password:文件中的密碼通過md5算法進行加密存放

  • 密碼使用策略:

    • (1)、使用隨機密碼

    • (2)、最短長度不低于8位

    • (3)、使用大寫字母、小寫字母、數字、標點符號中的至少三類組成

    • (4)、定期更換密碼

4、加密算法
  • 對稱加密:加密和解密使用同一個密碼

  • 非對稱加密:加密解密使用一對密鑰(公鑰私鑰)

  • 單項加密:只能加密,不能解密,用于提取數據特征碼

    • 雪崩效應

    • 定長輸出

  • 單項加密算法有:

    • 以上算法均可在計算時可添加salt,表添加隨機數進行混淆

    • md5:message digest,128bits

    • sha:secure hash algorithm,160bits

    • sha224

    • sha256

    • sha384

    • sha512

5、/etc/passwd:用戶的信息庫
  • name:password:UID:GID:GECOS:directory: shell
  • name:用戶名

  • password:可以是加密的密碼,也可以是占位符x,一般都將加密后的密碼放至shadow文件中

  • UID:用戶ID

  • GID:用戶的基本組ID

  • GECOS:annotation(注釋信息)

  • directory:用戶家目錄

  • shell:用戶默認shell,即登錄時的默認shell

6、/etc/shadow:用戶密碼
  • 用戶名:加密的密碼:最近修改密碼的時間:最短使用期限:最長使用期限:警告期段:過期期限:保留字段
7、/etc/group:組的信息庫
  • group_name:password:GID:user_list
  • user_list:該組的成員用戶,以此組為附加組的用戶列表

8、安全上下文
  • 進程以發起者的身份運行,進程對文件的訪問權限,取決于發起此進程用戶的權限。進程屬主與目標文件匹配權限的順序是user、group、others。

9、系統用戶
  • 由于管理員權限太大,如果所有服務都由管理員身份運行,勢必會給系統安全帶來隱患。因此為了能夠讓后臺進程和服務類進程以非管理員身份運行,通常為此創建多個普通用戶,這類用戶從不登錄系統。

10、ugo權限
  • 權限對于文件的意義:

    • r:可獲取文件的數據

    • w:可修改文件的數據

    • x:可將次文件運行為進程

  • 權限對于目錄的意義:

    • r:可使用ls命令獲取其下的所有文件列表

    • w:可修改此目錄下的文件列表,即創建和刪除文件

    • x:可cd至此目錄中,且可使用ls -l獲取所有文件詳細屬性信息

  • 權限組合機制

字母權限 二進制表示 八進制表示
000 0
–x 001 1
-w- 010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7
11、umask

文件權限反向掩碼,遮罩碼

  • 文件:默認不應該有執行權限,如果減得的結果中含有執行權限,則需將其加1。

    • 666-umask

  • 目錄:

    • 777-umask

  • 臨時修改umask值:#表示數字,比如###表3個數字

    • umask ###

  • 單條命令臨時修改umask值:

    • (umask ### mkdir /PATH/TO/SOME_DIR)

  • 永久修改umask值:

    • 家目錄下的.profile或.bash_profile

12、特殊權限
  • SUID:用戶運行某程序時,如果此程序擁有SUID權限,那么程序運行為進程時,進程的屬主不是發起者,而是程序文件自己的屬主。

    • chmod u+|-s FILE

    • 展示位置:文件屬主的執行權限位

    • 若屬主原本有執行權限,則為小寫s,否則顯示為大寫S

  • SGID:當目錄屬組擁有寫權限,并擁有SGID時,那么所有屬于此目錄的屬組,且以屬組身份在此目錄中新建文件或目錄時,新文件的屬組不是用戶的基本組,而是此目錄的屬組

    • chmod g+|-s FILE

    • 展示位置:文件屬組的執行權限位

    • 若屬組原本有執行權限,則為小寫s,否則顯示為大寫S

  • Sticky:對于屬組或全局可寫的目錄,組內的所有用戶或系統上的所有用戶在此目錄中都能創建新文件或刪除文件;為此類目錄添加sticky權限,所有用戶都可創建新文件,并只能刪除自己的文件。

    • chmod o+|-t FILE

    • 展示位置:其他用戶的執行權限位

    • 若其他用戶原本有執行權限,則為小寫t,否則顯示為大寫T

    • 系統上的/tmp和/var/tmp目錄默認均有Sticky權限

特殊權限 八進制表示 簡要說明
000 0 無特殊權限
001 1 有sticky權限
010 2 有SGID權限
011 3 SGID及sticky
100 4 有SUID權限
101 5 SUID及sticky
110 6 SUID及SGID
111 7 SUID、SGID及sticky
  • 數值權限賦值時:最高位為特殊權限標記

    • chmod 1777 FILE

13、facl:file access control list
  • 文件的額外賦值機制:

  • 在基本的ugo權限之外,另一種用于控制指定用戶或組對文件擁有權限的機制

  • getfacl:查看指定文件的facl
  • setfacl:
      賦權給用戶:
          setfacl -m u:USERNAME:MODE FILE
      賦權給組:
          setfacl -m g:GROUPNAME:MODE FILE 
      撤銷賦權:
          setfacl -x u:USERNAME FILE
          setfacl -x g:GROUPNAME FILE
二、命令部分
1、組相關命令

groupadd:添加組 -g:指定GID -r:創建系統組 groupmod:修改組屬性 -g:修改GID -n NEW_NAME:修改組名 groupdel:刪除組

2、用戶相關命令
  • useradd:創建用戶
      -u,--uid:指定UID  -g,--gid:指定用戶的基本組,此組需事先存在  -G,--groups:指定用戶的附加組,多個組之間用逗號隔開  -c,--comment:指定用戶的注釋信息  -d,--home:指定用戶家目錄位置,原理是通過復制/etc/skel目錄并重命名實現,指定的家目錄路徑若實現存在,則不會為用戶復制環境配置文件  -s,--shell:指定用戶默認shell,可用shell列表為/etc/shells文件  -r,--system:創建系統用戶  
      useradd -D:顯示創建用戶的默認配置
          注意:創建用戶時的諸多默認設定由文件/etc/login.defs配置,主要設定用戶賬號限制
      useradd -D 選項:修改默認選項的值
          修改的結果保存在/etc/default/useradd文件中
  • usermod:修改用戶屬性
      -u,--uid:修改UID  -g,--gid:修改用戶的基本組,此組需事先存在  -G,--groups:修改用戶的附加組,原來的組會被覆蓋  -a,--append:與-G一同使用,表示追加新的附加組  -c,--comment:修改用戶的注釋信息  -d,--home:修改用戶家目錄位置,原有的文件不會被轉移至新位置  -m,--move-home:只能與-d一同使用,將原來的目錄移動為新的家目錄  -l,--login NEW_LOGIN:修改用戶名  -s,--shell:修改用戶默認shell  -L,--lock:鎖定用戶密碼,即在原來密碼字符串前添加一個"!"  -U,--unlock:解鎖用戶密碼
  • userdel:刪除用戶
      -r:刪除用戶時一并刪除用戶的家目錄
  • id:顯示用戶的信息
      -u:僅顯示UID  -g:僅顯示GID  -G:顯示用戶所有組的ID  -n:僅顯示用戶名
  • su:switch user切換用戶
      登錄式切換:讀取目標用戶的配置文件重新初始化      su - USERNAME      su -l USERNAME
      非登錄式切換:不會讀取目標用戶的配置文件初始化      su USERNAME
      特殊用法:      su -c "COMMAND" USERNAME:以指定用戶的身份運行此處指定的命令
          例:~]# su -c "ls /var/tmp/" gentoo
      	    此處的命令不是用命令替換
3、密碼相關的命令
  • passwd:修改用戶密碼
      -l,-u:鎖定和解鎖用戶  -d:清除用戶密碼串  -e DATE:過期期限,日期  -i DAYS:非活動期限  -n DAYS:最短使用期限  -x DAYS:最長使用期限  -w DAYS:警告期限  --stdin:從標準輸入獲取并修改密碼      例:echo "PASSWORD" | passwd --stdin USERNAME
  • gpasswd:修改組密碼
      -a USERNAME:向組中添加用戶  -d USERNAME:從組中移除用戶  注意:當使用newgrp - GROUP臨時切換用戶的基本組時,會用到密碼,newgrp命令中的"-"會模擬用戶重新登錄以實現重新初始化其工作環境。
  • chage:修改用戶的密碼過期信息
4、幾個零散命令
  • chsh:修改用戶默認shell
  • chfn:修改用戶注釋信息
  • finger:顯示用戶注釋信息
  • whoami:顯示當前用戶身份
  • pwck:檢測/etc/passwd和/etc/shadow文件的完整性
  • grpck:檢測/etc/group和/etc/gshadow文件的完整性
5、權限管理命令
  • chmod:修改權限
      使用示例
      (1)、chmod [ugo] +|-|= [rwx] FILE
      (2)、chmod 0644 FILE
      (3)、chmod --reference=/PATH/TO/SOME_FILE FILE
      選項:
      -R:遞歸修改
6、從屬關系管理命令
  • chown:修改文件屬主
      -R:遞歸修改  chown USERNAME:GROUPNAME FILE:同時修改屬主和屬組
  • chgrp:修改文件屬組

一些零散命令的使用

  • 命令類型:type

    • 外部命令

    • shell內嵌命令

  • type COMMAND:
      內部:builtin
      外部:顯示為命令文件路徑;
    注意:命令可以有別名;別名可以與原名相同,此時type查看時原名被隱藏;此時如果要運行原命令,則使用\COMMAND;
  • 命令別名:alias

  • 獲取所有可用別名的定義:
      ~]# alias
  • 定義別名:
      ~]# alias NAME='COMMAND'
        注意:僅對當前shell進程有效
  • 撤銷別名:
      ~]# unalias NAME
  • which命令: which – shows the full path of (shell) commands

    which [options] programname [...]
          --skip-alias:
  • whereis命令: whereis – locate the binary, source, and manual page files for a command

    whereis [options] name...
          -b: 僅搜索二進制程序路徑;	-m:僅搜索使用手冊文件路徑;
  • who命令: who – show who is logged on

    who [OPTION]...
          -b: 系統此次啟動的時間;      -r: 運行級別;
  • w命令: w – Show who is logged on and what they are doing.

  • mkdir:make directories

    mkdir [OPTION]... DIRECTORY...
    	-p: 自動按需創建父目錄;	-v: verbose,顯示詳細過程;	-m MODE:直接給定權限;
    	注意:路徑基名方為命令的作用對象;基名之前的路徑必須得存在;
  • rmdir:remove empty directories

    rmdir [OPTION]... DIRECTORY...
        -p:刪除某目錄后,如果其父目錄為空,則一并刪除之;    -v: 顯示過程;
  • tree命令:

    tree [options] [directory]
        -L level:指定要顯示的層級;
  • more命令:

    more FILE
        特點:翻屏至文件尾部后自動退出;
  • less命令:

    less FILE
  • head命令:

    查看文件的前n行;
      head [options] FILE
          -n #      -#
  • tail命令:

    查看文件的后n行;
      tail [options] FILE
          -n #      -#
          -f:查看文件尾部內容結束后不退出,跟隨顯示新增的行;
  • stat命令: stat – display file or file system status

    stat FILE...
    
      文件:兩類數據
          元數據:metadata
          數據: data
    
      時間戳:
          access time:2016-12-10 16:12:22.776423693 +0800
          modify time:2016-12-10 16:12:22.776423693 +0800
          change time:2016-12-10 16:12:22.776423693 +0800
  • touch命令: touch – change file timestamps

    touch [OPTION]... FILE...
          -c: 指定的文件路徑不存在時不予創建;      -a: 僅修改access time;      -m:僅修改modify time;      -t STAMP          [[CC]YY]MMDDhhmm[.ss]
  • cp命令:copy

    源文件;目標文件;

  • 單源復制:cp [OPTION]... [-T] SOURCE DEST
  • 多源復制:cp [OPTION]... SOURCE... DIRECTORY
             cp [OPTION]... -t DIRECTORY SOURCE...
  • 單源復制:cp [OPTION]... [-T] SOURCE DEST
          如果DEST不存在:則事先創建此文件,并復制源文件的數據流至DEST中;
          如果DEST存在:
              如果DEST是非目錄文件:則覆蓋目標文件;
              如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流;
  • 多源復制:cp [OPTION]... SOURCE... DIRECTORY
         	 cp [OPTION]... -t DIRECTORY SOURCE...
    
      如果DEST不存在:錯誤;
      如果DEST存在:
          如果DEST是非目錄文件:錯誤;
          如果DEST是目錄文件:分別復制每個文件至目標目錄中,并保持原名;
  • 常用選項:
      -i:交互式復制,即覆蓋之前提醒用戶確認;  -f:強制覆蓋目標文件;  -r, -R:遞歸復制目錄;  -d:復制符號鏈接文件本身,而非其指向的源文件;  -a:-dR --preserve=all, archive,用于實現歸檔;  --preserv=      preserv:單詞意為保持
          mode:權限
          ownership:屬主和屬組
          timestamps: 時間戳
          context:安全標簽
          xattr:擴展屬性
          links:符號鏈接
      all:上述所有屬性
  • mv命令:move

  • mv [OPTION]... [-T] SOURCE DEST
  • mv [OPTION]... SOURCE... DIRECTORY
  • mv [OPTION]... -t DIRECTORY SOURCE..
  • 常用選項:
      -i:交互式;  -f:force
  • rm命令:remove rm [OPTION]… FILE…

  • 常用選項:
      -i:interactive  -f:force  -r: recursive  
      刪除目錄:rm -rf /PATH/TO/DIR
      危險操作:rm -rf /*
      
      注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站)
  • install命令: install – copy files and set attributes

  • 單源復制:  install [OPTION]... [-T] SOURCE DEST
  • 多源復制:  install [OPTION]... SOURCE... DIRECTORY
      install [OPTION]... -t DIRECTORY SOURCE...
  • 創建目錄:  install [OPTION]... -d DIRECTORY...
  • 常用選項:
      -m, --mode=MODE:設定目標文件權限,默認為755;  -o, --owner=OWNER:設定目標文件屬主;  -g, --group=GROUP:設定目標文件屬組;
  • mktemp命令: mktemp – create a temporary file or directory

    mktemp [OPTION]... [TEMPLATE]
    
      常用選項:
          -d:創建臨時目錄
    
    注意:mktemp會將創建的臨時文件名直接返回,因此,可直接通過命令引用保存起來;

原創文章,作者:N25_水煮魚,如若轉載,請注明出處:http://www.www58058.com/62931

(0)
N25_水煮魚N25_水煮魚
上一篇 2016-12-07
下一篇 2016-12-07

相關推薦

  • Linux文件查找命令find和壓縮解壓縮

    概述     Linux系統上一切皆文件,那么隨著時間的推移和管理的服務器增加,在眾多的文件中,如何找到我們需要的文件,這就需要用到文件查找命令了。本章就分享下關于文件查找命令的一些內容和壓縮解壓縮的相關內容。     具體分為一下幾個部分:    …

    Linux干貨 2016-08-16
  • 磁盤配額

    磁盤配額 1 啟用磁盤配額 首先創建新的分區 /dev/sd5,并創建文件系統。 [root@local ~]# mkfs.ext4 /dev/sda5 由于xfs 不磁盤配額能成功,這里使用ext4. 然后把/dev/sda5分區掛載到 /home [root@local ~]# mount /dev/sda5 /home [root@local ~]# …

    Linux干貨 2017-05-02
  • Linux磁盤管理命令

    Linux有著管理各種存儲設備的強大能力。Linux把所有磁盤都當作文件管理,從而簡化我們對其進行的讀寫等操作。 IDE接口的硬盤在Linux中命名為:/dev/hd{a|b|c……},比如/dev/hda; 其他硬盤比如SATA接口的硬盤命名為:/dev/sd{a|b|c……},比如/dev/sda。 注:{…

    Linux干貨 2015-12-06
  • N26-第十二周

    1、請描述一次完整的http請求處理過程;        1、建立或處理鏈接:接收請求或拒絕請求        2、接收請求:接收來自于網絡的請求報文中對某資源的一次請求的過程;接收請求的方式通常是并發訪問響應模型        3、處理請…

    2017-05-14
  • 2

    2

    Linux干貨 2018-03-26
  • 第九周練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash # nologin=$(awk -F: '$NF=="/sbin/nologin"{print $NF}…

    Linux干貨 2016-12-21

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-16 15:49

    贊~~總結的非常詳細~~繼續加油~

欧美性久久久久