centos7系統目錄結構,文件類型,權限設置

系統目錄結構


系統目錄結構

/bin :裏面裝的是用戶用的命令,root也能夠用
/sbin :裏面是隻有root能用的命令。
/boot :系統啓動的相關文件,裏面有系統啓動的關鍵文件,刪除後系統沒法啓動
/dev :linux系統下的設備文件
/etc :配置文件的所在目錄
/home :用戶的家目錄
/lib :存系統庫文件的
/lib64 :存系統的庫文件 不少命令都會依賴一些庫,查看命令依賴關係:ldd
/media : 媒介目錄。默認是空的。好比插一個U盤會自動放到這個目錄下面去
/mnt : 臨時掛載目錄,默認也是空的。能夠把新增的光驅或硬盤掛載這個目錄下面
/opt : 空目錄
/proc :裏面是一些系統進程
/root :root用戶的家目錄
/run :一些進程產生的臨時文件,重啓就會消失的文件
/srv :空的,存服務產生的文件
/sys :存系統內核的相關文件
/tmp :系統的臨時目錄,任何一個用戶均可以在這個文件夾下讀寫刪除文件。
/usr :用戶的文件,
/var :是一個很重要的目錄。 常常用的/var/log ,系統日誌。
  • 從centOS7系統之後,就再也不區分32位和64位版本,都是64位系統。node

  • 總結:/bin,/sbin,/etc,/var,/usr/local這幾個目錄是用的最多的。經常使用的。linux

  • tree命令:以樹形的形式顯示一個目錄下面都有哪些目錄和子文件面試

若是系統沒有tree命令就用yum下載一下算法

[root@aminglinux-01 /]# yum install -y tree

tree -L 是能夠設置顯示最大層數。 下面試一下只顯示兩層目錄下的結構shell

[root@aming1 /]# tree -L 2
.
├── bin -> usr/bin
├── boot
│   ├── config-3.10.0-514.el7.x86_64
│   ├── grub
│   ├── grub2
│   ├── initramfs-0-rescue-b1022dedd3b74686922ac31f3e680f36.img
│   ├── initramfs-3.10.0-514.el7.x86_64.img
│   ├── initramfs-3.10.0-514.el7.x86_64kdump.img
│   ├── initrd-plymouth.img
│   ├── symvers-3.10.0-514.el7.x86_64.gz
│   ├── System.map-3.10.0-514.el7.x86_64
│   ├── vmlinuz-0-rescue-b1022dedd3b74686922ac31f3e680f36
│   └── vmlinuz-3.10.0-514.el7.x86_64
├── dev
│   ├── agpgart
│   ├── autofs
│   ├── block
│   ├── bsg
│   ├── btrfs-control

ls命令

ls命令是列取目錄或者文件的命令vim

能夠列取一下系統根目錄看一下Linux系統都有哪些目錄bash

[root@aming1 /]# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

ls命令總結

ls -l :列取詳細信息less

ls -i :列取inodessh

ls -lh :看文件大小更直觀ide

ls -la :列出隱藏文件

ls -lta: t是時間的意思,按時間順序排列

ls -ld :只列出文件夾

ls命令詳解

  • ls -l :列取詳細信息(ll命令就是ls -l的縮寫)

在inode使用量前面11位。第一位表示文件類型,後面九位表示文件權限,最後一個(.)是受制於selinux。若是關閉selinux,新建的文件或目錄就會沒有(.)

[root@aminglinux-01 ~]# ls -l
總用量 4
     -        rw-------.               1                        root   root         1422     5月  12 23:06    anaconda-ks.cfg
 文件類型    權限 .(selinux)      有幾個文件使用了這個inode   全部者  所屬組     文件大小    最後改動日期         文件名字
  • ls -i :列取inode

文件名字前面的數字就是inode號,inode號是儲存除了文件名之外的全部文件信息,都存在inode之中。

[root@aming1 ~]# ls
123.txt  anaconda-ks.cfg  test.txt
[root@aming1 ~]# ls -i
33599795 123.txt  33574987 anaconda-ks.cfg  33599785 test.txt
  • ls -lh :顯示文件大小更直觀
[root@aming1 ~]# ls -l
總用量 12
-rw-r--r--. 1 root root   96 4月  25 21:33 123.txt
-rw-------. 1 root root 1422 3月  17 19:03 anaconda-ks.cfg
-rw-r--r--. 1 root root 1008 4月  26 15:30 test.txt
[root@aming1 ~]# ls -lh
總用量 12K
-rw-r--r--. 1 root root   96 4月  25 21:33 123.txt
-rw-------. 1 root root 1.4K 3月  17 19:03 anaconda-ks.cfg
-rw-r--r--. 1 root root 1008 4月  26 15:30 test.txt
  • ls -la :列出隱藏文件
[root@aming1 ~]# ls -la
總用量 40
dr-xr-x---.  3 root root  194 4月  26 15:30 .
dr-xr-xr-x. 17 root root  224 4月  26 15:29 ..
-rw-r--r--.  1 root root   96 4月  25 21:33 123.txt
-rw-------.  1 root root 1422 3月  17 19:03 anaconda-ks.cfg
-rw-------.  1 root root 2550 5月  11 20:55 .bash_history
-rw-r--r--.  1 root root   18 12月 29 2013 .bash_logout
-rw-r--r--.  1 root root  176 12月 29 2013 .bash_profile
-rw-r--r--.  1 root root  176 12月 29 2013 .bashrc
-rw-r--r--.  1 root root  100 12月 29 2013 .cshrc
drwx------.  2 root root   48 5月  11 10:42 .ssh
-rw-r--r--.  1 root root  129 12月 29 2013 .tcshrc
-rw-r--r--.  1 root root 1008 4月  26 15:30 test.txt
-rw-------.  1 root root 1609 4月  25 21:33 .viminfo

其中.開頭的文件都是隱藏文件或者目錄。

還有兩個目錄 點和點點 。「.」表明是當前目錄 「..」表明的是上層目錄

  • ls -lt ,t是時間的意思,按時間順序排列,時間越近排在越前面
[root@aming1 ~]# ls -lt 
總用量 12
-rw-r--r--. 1 root root 1008 4月  26 15:30 test.txt
-rw-r--r--. 1 root root   96 4月  25 21:33 123.txt
-rw-------. 1 root root 1422 3月  17 19:03 anaconda-ks.cfg
  • ls -ld :只列出文件夾

  • 也能夠同時使用 ls -liat

[root@aming1 ~]# ls -liat
總用量 40
33574979 -rw-------.  1 root root 2550 5月  11 20:55 .bash_history
50332748 drwx------.  2 root root   48 5月  11 10:42 .ssh
33599785 -rw-r--r--.  1 root root 1008 4月  26 15:30 test.txt
33574977 dr-xr-x---.  3 root root  194 4月  26 15:30 .
      64 dr-xr-xr-x. 17 root root  224 4月  26 15:29 ..
33599796 -rw-------.  1 root root 1609 4月  25 21:33 .viminfo
33599795 -rw-r--r--.  1 root root   96 4月  25 21:33 123.txt
33574987 -rw-------.  1 root root 1422 3月  17 19:03 anaconda-ks.cfg
33975719 -rw-r--r--.  1 root root   18 12月 29 2013 .bash_logout
33975720 -rw-r--r--.  1 root root  176 12月 29 2013 .bash_profile
33975721 -rw-r--r--.  1 root root  176 12月 29 2013 .bashrc
33975722 -rw-r--r--.  1 root root  100 12月 29 2013 .cshrc
33975723 -rw-r--r--.  1 root root  129 12月 29 2013 .tcshrc
[root@aming1 ~]#
  • 其餘命令選項使用也有不少,可是不經常使用,須要的時候能夠man一下進行查看

文件類型

  • 文件屬性前面第一排就是文件類型,就是在權限前面的

常見的就是: - 是普通文件

d 文件夾

  • 還有一些特殊的文件

c : 字符串設備

l : 軟鏈接文件

b : 塊設備,好比光盤,磁盤

s : 通訊文件

[root@aminglinux-01 ~]# ls -l /dev/
總用量 0
crw-rw----. 1 root video    10, 175 8月   4 20:53 agpgart
crw-------. 1 root root     10, 235 8月   4 20:53 autofs
drwxr-xr-x. 2 root root         140 8月   4 20:53 block
drwxr-xr-x. 2 root root          80 8月   4 20:53 bsg
crw-------. 1 root root     10, 234 8月   4 20:53 btrfs-control
drwxr-xr-x. 3 root root          60 8月   4 20:53 bus
lrwxrwxrwx. 1 root root           3 8月   4 20:53 cdrom -> sr0
drwxr-xr-x. 2 root root        3020 8月   4 20:53 char
crw-------. 1 root root      5,   1 8月   4 20:53 console
srw-rw-rw-. 1 root root           0 8月   4 20:53 log
lrwxrwxrwx. 1 root root          11 8月   4 20:53 core -> /proc/kcore

alias命令

  • alias 就是 命令的別名,是命令加選線得組合。能夠理解給一個很長的命令設置一個簡單外號,這樣能夠方便操做。

  • alias的做用就是,能夠簡寫命令。

  • 用which來查看命令的別名

[root@aminglinux-01 ~]# which ls 
alias ls='ls --color=auto'
	/usr/bin/ls
[root@aminglinux-01 ~]# which ll
alias ll='ls -l --color=auto'
	/usr/bin/ls
  • 能夠輸入alias來看系統有別名的命令有哪些
[root@aming1 ~]# alias
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'
  • 自定義一個別名的格式 :「 alias aming='ls -lha' 」
[root@aminglinux-01 ~]# aming
-bash: aming: 未找到命令
[root@aminglinux-01 ~]# alias aming='ls -lha'
[root@aminglinux-01 ~]# aming
總用量 28K
dr-xr-x---.  3 root root  147 8月   3 09:24 .
dr-xr-xr-x. 17 root root  224 8月   3 21:06 ..
-rw-------.  1 root root 1.4K 7月  31 23:06 anaconda-ks.cfg
-rw-------.  1 root root 1.4K 8月   4 16:45 .bash_history
-rw-r--r--.  1 root root   18 12月 29 2013 .bash_logout
-rw-r--r--.  1 root root  176 12月 29 2013 .bash_profile
-rw-r--r--.  1 root root  176 12月 29 2013 .bashrc
-rw-r--r--.  1 root root  100 12月 29 2013 .cshrc
drwx------.  2 root root   80 8月   3 22:17 .ssh
-rw-r--r--.  1 root root  129 12月 29 2013 .tcshrc

能夠看到沒有設置別名的時候直接輸入aming是不起做用的。能夠用which來看一下

[root@aminglinux-01 ~]# which aming
alias aming='ls -lha'
	/usr/bin/ls
  • 取消aming的別名 用unalias命令
[root@aminglinux-01 ~]# unalias aming
[root@aminglinux-01 ~]# aming
-bash: aming: 未找到命令
  • which命令:

which命令能夠查看一個或多個命令、可執行文件的絕對路徑。而且會顯示命令的別名

which命令是經過遍歷PATH環境變量路徑的方式來查找文件的,

若是一個命令不存在於PATH中的任何一個路徑下,使用which命令是查找不到的。


相對和絕對路徑

  • 絕對路徑 :以根「/」開頭的路徑都是絕對路徑。
[root@aminglinux-01 ~]# ls /root/.ssh/authorized_keys 
/root/.ssh/authorized_keys

無論在那個路徑下,都能都能經過絕對路徑找到文件。從根「/」開始

任何文件都有絕對路徑。

  • 相對路徑 :相對於當前目錄的路徑,不是從根「/」開始的路徑
[root@aminglinux-01 ~]# cd /etc/sysconfig/
[root@aminglinux-01 sysconfig]# ls network-scripts/ifcfg-ens33 
network-scripts/ifcfg-ens33
[root@aminglinux-01 sysconfig]# pwd
/etc/sysconfig
  • pwd命令是用來顯示當前路徑,當前的目錄是哪裏。
  • cd 是切換目錄的命令

cd命令

cd 切換目錄命令。change directory 的縮寫

  • cd - :這個命令的就是切換上一次目錄的所在位置。切換很是方便。
[root@aminglinux-01 sysconfig]# cd -
/root
[root@aminglinux-01 ~]# cd -
/etc/sysconfig
[root@aminglinux-01 sysconfig]# cd -
/root
[root@aminglinux-01 ~]# cd -
/etc/sysconfig
[root@aminglinux-01 sysconfig]#
  • 直接輸入命令:cd

不管在哪一個目錄下,輸入cd都會回到登錄系統的用戶的家目錄下。

[root@aminglinux-01 sysconfig]# pwd
/etc/sysconfig
[root@aminglinux-01 sysconfig]# cd
[root@aminglinux-01 ~]# pwd
/root
[root@aminglinux-01 ~]#
  • 命令:cd ~

一樣是直接返回用戶的家目錄

  • 命令:cd ..

返回上一層目錄

  • 其餘選項不經常使用,能夠man cd 來查看用法。

建立和刪除目錄

建立目錄 mkdir

mkdir是make directory的縮寫

[root@aming1 ~]# ls
123.txt  anaconda-ks.cfg  test.txt
[root@aming1 ~]# mkdir mulu
[root@aming1 ~]# ls
123.txt  anaconda-ks.cfg  mulu  test.txt
  • mkdir -p 建立連續的文件夾

正經常使用mkdir建立連續的文件夾是不能夠的,以下

[root@aming1 ~]# mkdir 111/222/333/444/555
mkdir: 沒法建立目錄"111/222/333/444/555": 沒有那個文件或目錄
[root@aming1 ~]#

加-p 屬性便可建立成功

[root@aming1 ~]# mkdir -p 111/222/333/444/555
[root@aming1 ~]# tree 
.
├── 111
│   └── 222
│       └── 333
│           └── 444
│               └── 555
├── 123.txt
├── anaconda-ks.cfg
├── mulu
└── test.txt

6 directories, 3 files
[root@aming1 ~]#
  • mkdir -pv 建立連續的文件夾並顯示建立過程
[root@aming1 ~]# mkdir -pv 1111/2222/3333/4444/5555
mkdir: 已建立目錄 "1111"
mkdir: 已建立目錄 "1111/2222"
mkdir: 已建立目錄 "1111/2222/3333"
mkdir: 已建立目錄 "1111/2222/3333/4444"
mkdir: 已建立目錄 "1111/2222/3333/4444/5555"
[root@aming1 ~]#

刪除目錄 rmdir

rmdir是remove directory的縮寫

  • rmdir 直接運行時不能刪除非空目錄,也就是隻能刪除空文件夾,以下
[root@aminglinux-01 ~]# rmdir /tmp/aminglinux/
rmdir: 刪除 "/tmp/aminglinux/" 失敗: 目錄非空
[root@aminglinux-01 ~]# touch /tmp/aminglinux/222/aaa/1.txt
[root@aminglinux-01 ~]# rmdir /tmp/aminglinux/222/aaa/
rmdir: 刪除 "/tmp/aminglinux/222/aaa/" 失敗: 目錄非空
  • rmdir -p 也是能夠連續刪除空文件夾的。但必須是空的,若是是非空則刪不掉,只刪除空的
[root@aminglinux-01 ~]# mkdir -p /tmp/aminglinux/222/yyyy/uuuu/iiii/
[root@aminglinux-01 ~]# rmdir -pv /tmp/aminglinux/222/yyyy/uuuu/iiii/
rmdir: 正在刪除目錄 "/tmp/aminglinux/222/yyyy/uuuu/iiii/"
rmdir: 正在刪除目錄 "/tmp/aminglinux/222/yyyy/uuuu"
rmdir: 正在刪除目錄 "/tmp/aminglinux/222/yyyy"
rmdir: 正在刪除目錄 "/tmp/aminglinux/222"
rmdir: 刪除目錄 "/tmp/aminglinux/222" 失敗: 目錄非空

rmdir只能刪除目錄,並且必須是空目錄,要想所有刪除只能先刪除裏面的文件夾後者是文件。-p 比較危險,通常不用。


rm命令

以前學習的rmdir 刪除侷限性是比較大的。這回試試rm命令可否順利刪除有文件的目錄呢

[root@aminglinux-01 ~]# tree /tmp/aminglinux/
/tmp/aminglinux/
├── 111
│   └── 222
│       └── 333
└── 222
    └── aaa
        ├── 1.txt
        └── bbb
            └── ccc

7 directories, 1 file
[root@aminglinux-01 ~]# rm /tmp/aminglinux/222/
rm: 沒法刪除"/tmp/aminglinux/222/": 是一個目錄
[root@aminglinux-01 ~]# rm -r /tmp/aminglinux/222/
rm:是否進入目錄"/tmp/aminglinux/222/"? y
rm:是否進入目錄"/tmp/aminglinux/222/aaa"? y
rm:是否進入目錄"/tmp/aminglinux/222/aaa/bbb"? y
rm:是否刪除目錄 "/tmp/aminglinux/222/aaa/bbb/ccc"?y
rm:是否刪除目錄 "/tmp/aminglinux/222/aaa/bbb"?y
rm:是否刪除普通空文件 "/tmp/aminglinux/222/aaa/1.txt"?y
rm:是否刪除目錄 "/tmp/aminglinux/222/aaa"?y
rm:是否刪除目錄 "/tmp/aminglinux/222/"?y
[root@aminglinux-01 ~]# tree /tmp/aminglinux/
/tmp/aminglinux/
└── 111
    └── 222
        └── 333

3 directories, 0 files
[root@aminglinux-01 ~]#

能夠看到rm 是不能直接刪有文件的目錄的。可是加上-r指令,就能夠能夠所有刪除啦。

能夠看到文件1.txt也是被直接刪除了。

若是加上-f命令就會強制性刪除,不會問是否刪除文件,這樣省去若是文件夾或文件過多一直問下去的麻煩。

  • 總結

    rm 只刪除目錄裏面的文件

    rm -r刪除全部目錄以及文件

    rm -f強制刪除文件,不提示是否刪除

    rm -v顯示刪除過程

    rm -rfv 指令能夠疊加使用,效果疊加。

  • touch命令

用法:touch+目錄+想要建立的文件 建立空文件命令

[root@aming1 ~]# ls
anaconda-ks.cfg
[root@aming1 ~]# touch 123.txt
[root@aming1 ~]# ls
123.txt  anaconda-ks.cfg
  • history命令 : 查看歷史輸入命令記錄

  • !命令

用法:!+命令

感嘆號加一個命令的意思是這個命令在命令歷史裏最近的一次執行的內容。


環境變量PATH

平時在敲命令的時候能夠在任何路徑下直接執行。而輸入其餘 文本會提示找不到該文件,這是爲何呢?

  • 若是命令在如下目錄的時候,能夠不敲絕對路徑。就能生效。這就是:環境變量
[root@aminglinux-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • 固然直接輸入命令的絕對路徑確定也是能夠生效的。拷貝到別的地方輸入絕對路徑同樣能夠生效。
[root@aminglinux-01 ~]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[root@aminglinux-01 ~]# ls /usr/bin/ls 
/usr/bin/ls
[root@aminglinux-01 ~]# cp /usr/bin/ls /tmp/ls2
[root@aminglinux-01 ~]# /tmp/ls2 
anaconda-ks.cfg
[root@aminglinux-01 ~]#
  • 可是直接輸入ls2會生效嗎?是不能夠的,看下面輸出
[root@aminglinux-01 ~]# ls2
-bash: ls2: 未找到命令

結果是並無生效,這是由於ls2所在的/tmp/目錄並不在(PATH)環境變量裏面,如今把目錄加到環境變量裏面。

  • PATH=$PATH:/tmp/ 這是個shell意思是把tmp加入到PATH
[root@aminglinux-01 ~]# PATH=$PATH:/tmp/
[root@aminglinux-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/
  • 這樣在輸入ls2,就能夠生效了。
[root@aminglinux-01 ~]# ls2
anaconda-ks.cfg
[root@aminglinux-01 ~]#
  • 這時候若是在打開新的終端鏈接系統,在輸入ls2,就再也不生效了。若是須要在任什麼時候候都會生效,永久生效。須要加到系統配置/etc/profile文件裏。添加到最後一行就能夠了,以下:
[root@aminglinux-01 ~]# vi /etc/profile
...


 if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null
        fi
    fi
done

unset i
unset -f pathmunge
PATH=$PATH:/tmp/                           *** 在最後加上:PATH=$PATH:/tmp/
  • 若是想恢復以前的PATH,就去掉/tmp/,複製以前的PATH。命令以下:
[root@aminglinux-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/
[root@aminglinux-01 ~]#PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@aminglinux-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@aminglinux-01 ~]# ls2
-bash: ls2: 未找到命令
  • 若是設置了永久保存,就在vi /etc/profile裏面把PATH=$PATH:/tmp/刪掉重啓就能夠了。

cp 拷貝命令

  • cp ,copy的意思,把源文件拷貝到目標文件,而且能夠重命名目標文件名字
[root@aming1 ~]# ls
123.txt  anaconda-ks.cfg
[root@aming1 ~]# cp /etc/passwd  456.txt
[root@aming1 ~]# ls
123.txt  456.txt  anaconda-ks.cfg
  • cp 目錄也是須要加上-r的。
[root@aming1 ~]# cp -r /tmp/aminglinux/   /tmp/aming/
[root@aming1 ~]# tree /tmp/aming 
/tmp/aming
└── 111
    └── 222
        └── 333
[root@aming1 ~]# tree /tmp/aminglinux/
/tmp/aminglinux/
└── 111
    └── 222
        └── 333
  • 當複製文件已經存在的時候會問是否覆蓋
[root@aming1 ~]# ls
123.txt  anaconda-ks.cfg
[root@aming1 ~]# cp /etc/passwd  456.txt
[root@aming1 ~]# ls
123.txt  456.txt  anaconda-ks.cfg
[root@aming1 ~]# cp /etc/passwd  456.txt
cp:是否覆蓋"456.txt"? y
[root@aming1 ~]#
  • 那麼當複製目錄的時候會不會提示覆蓋呢

通過測試是若是目錄都是空的,就不會有提示,若是目錄裏有文件就會提示是否覆蓋。


mv移動文件命令

  • mv :move的縮寫,移動文件命令

  • 同一個目錄下移動文件或者目錄會給文件或目錄更更名字

[root@aminglinux-01 ~]# ls
anaconda-ks.cfg
[root@aminglinux-01 ~]# mv anaconda-ks.cfg    anaconda-ks.cfg.1
[root@aminglinux-01 ~]# ls
anaconda-ks.cfg.1
  • 也能夠移動文件或目錄而且更名字。
[root@aminglinux-01 tmp]# mv 12.txt     /root/2.txt
[root@aminglinux-01 tmp]# ls /root/
2.txt  anaconda-ks.cfg.1
[root@aminglinux-01 tmp]#
  • 若是移動的位置已經有一個相同文件名的文件,也是會提示覆蓋的。輸入mv的絕對路徑就不會提示了。
[root@aming1 ~]# mv 123.txt 111.txt
[root@aming1 ~]# mv 111.txt 111.txt
mv: "111.txt" 與"111.txt" 爲同一文件
[root@aming1 ~]# mv 456.txt 111.txt
mv:是否覆蓋"111.txt"? y

另外若是移動相同文件夾裏面若是有文件,那麼是會報錯目錄非空。沒法覆蓋。


文件查看cat_more_less_head_tail

cat

  • 用cat查看一個文件的內容
[root@aming1 ~]# cat 111.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
[root@aming1 ~]#
  • cat -n 顯示行號
[root@aming1 ~]# cat -n 111.txt 
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6	sync:x:5:0:sync:/sbin:/bin/sync
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8	halt:x:7:0:halt:/sbin:/sbin/halt
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10	operator:x:11:0:operator:/root:/sbin/nologin
    11	games:x:12:100:games:/usr/games:/sbin/nologin
    12	ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13	nobody:x:99:99:Nobody:/:/sbin/nologin
    14	systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
    15	systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    16	dbus:x:81:81:System message bus:/:/sbin/nologin
    17	polkitd:x:998:996:User for polkitd:/:/sbin/nologin
    18	tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    19	postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    20	sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    21	chrony:x:997:995::/var/lib/chrony:/sbin/nologin
[root@aming1 ~]#
  • tac 倒序查看一個文件
[root@aming1 ~]# tac 111.txt 
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
  • 其餘用法能夠man cat一下。

more

  • 也是查看文件內容的,可是不會像cat同樣所有顯示出來。
  • 它會一屏一屏的顯示。按空格鍵下翻頁。
  • 看完以後就自動退出來了。
  • 按Ctrl+b鍵是向上翻頁。
[root@aminglinux-01 ~]# more /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

pathmunge () {
    case ":${PATH}:" in
        *:"$1":*)
            ;;
        *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}




--More--(66%)

less命令

  • less的命令的用法包含了more的用法,同時能夠用方向鍵來一行一行的翻頁。翻到尾部不會自動退出來。

  • 按q能夠退出。

  • 按「g」定位到行首

  • 按「G」定位到行尾

  • 還能夠搜索內容

輸入:/或者?「單詞」 好比/and或?and 搜索下面文件內容全部的and都會高亮顯示。 按「n」像下查詢查找內容 按「N」從下向上查詢查找內容

head 命令 tail 命令

  • head 命令查看文件的頭十行

  • tail 命令查看文件的尾十行

  • tail 和head都是能夠輸入-n 來指定看幾行的。好比只看兩行。

[root@aming1 ~]# head -n2 111.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@aming1 ~]#

wc -l 命令,顯示一個文件的行數

[root@aming1 ~]# wc -l 111.txt 
21 111.txt

追加劇定向:前面命令的輸出內容 >> 追加到目標文件內容的後面。

  • 分別查看1.txt與2.txt
[root@aming1 ~]# cat 1.txt 
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
[root@aming1 ~]# cat 2.txt 
22222222222222222222
  • 把查看1.txt的輸出追加劇定向到2.txt後查看,
[root@aming1 ~]# cat 1.txt >> 2.txt 
[root@aming1 ~]# cat 2.txt 
22222222222222222222
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

chmod文件或目錄權限

  • 以前學習的ls -l命令時候,學習了列出每一個位置都是什麼。
[root@aming1 ~]# ls -l 111.txt 
-rw-r--r--. 1 root root 1008 5月  13 22:26 111.txt
  • 開頭除了第一位是文件類型外,後面九位都是權限位。

  • 在inode使用量前面11位。第一位表示文件類型,後面九位表示文件權限,最後一個(.)是受制於selinux。若是關閉selinux,新建的文件或目錄就會沒有(.)

  • 在九位權限位置裏,前三位表明全部者權限,中間三位是所屬組權限,後三位是其餘用戶權限。

  • 其中rwx

r 讀 數字用4表明

w 寫 數字用2表明

x 執行 數字用1表明

  • 權限通常也用數字表示,好比764,就是全部者(u)rwx,所屬組(g)rw-,其餘用戶(o)r--
r+w+x=7
rwxrwxrwx=777

修改權限命令: chmod

chmod 更改權限 change mode 的縮寫

  • 語法:chmod 777 文件/目錄名字
[root@aming1 ~]# ls -l 111.txt 
-rw-r--r--. 1 root root 1008 5月  13 22:26 111.txt
[root@aming1 ~]# chmod 777 111.txt 
[root@aming1 ~]# ls -l 111.txt 
-rwxrwxrwx. 1 root root 1008 5月  13 22:26 111.txt
  • 或者:chmod u=rwx,g=rw,o=r 文件/目錄名字
[root@aming1 ~]# ls -l 111.txt 
-rw-r--r--. 1 root root 1008 5月  13 22:26 111.txt
[root@aming1 ~]# chmod 777 111.txt 
[root@aming1 ~]# ls -l 111.txt 
-rwxrwxrwx. 1 root root 1008 5月  13 22:26 111.txt
[root@aming1 ~]# chmod u=rwx,g=rw,o=r 111.txt
[root@aming1 ~]# ls -l 111.txt 
-rwxrw-r--. 1 root root 1008 5月  13 22:26 111.txt
  • chmod -R

操做只對目錄或文件自己生效。如需目錄及子文件子目錄所有生效須要加-R

加上-R 命令能夠同時更改目錄及目錄下全部的權限。

[root@aminglinux-01 ~]# chmod 700 /tmp/aming1/
[root@aminglinux-01 ~]# ls -l /tmp/
總用量 236
-rwxr-xr-x. 1 root root 117656 8月   9 09:19 111
drwx------. 3 root root     17 8月   9 09:23 aming1
drwxr-xr-x. 4 root root     31 8月   9 09:34 aming2

[root@aminglinux-01 ~]# ls -l /tmp/aming1/
總用量 0
drwxr-xr-x. 3 root root 30 8月   9 09:40 111
[root@aminglinux-01 ~]# chmod -R 777 /tmp/aming1/
[root@aminglinux-01 ~]# ls -l /tmp/aming1/
總用量 0
drwxrwxrwx. 3 root root 30 8月   9 09:40 111
[root@aminglinux-01 ~]# ls -l /tmp/
總用量 236
-rwxr-xr-x. 1 root root 117656 8月   9 09:19 111
drwxrwxrwx. 3 root root     17 8月   9 09:23 aming1
drwxr-xr-x. 4 root root     31 8月   9 09:34 aming2
  • 還有一個用法是 chmod a+x 文件/目錄名字

意思是u,g,o同時加上x權限。

a-x,就是所有去掉x權限。

也是能夠,u+w,u-x,g+w,g-w等等均可以用。

[root@aminglinux-01 ~]# chmod 700 /tmp/aming1/

[root@aminglinux-01 ~]# ls -l /tmp/
總用量 236

drwx------. 3 root root     17 8月   9 09:23 aming1



[root@aminglinux-01 ~]# chmod a+x /tmp/aming1/
[root@aminglinux-01 ~]# ls -l /tmp/
總用量 236

drwx--x--x. 3 root root     17 8月   9 09:23 aming1


[root@aminglinux-01 ~]# chmod a-x /tmp/aming1/
[root@aminglinux-01 ~]# ls -l /tmp/
總用量 236

drw-------. 3 root root     17 8月   9 09:23 aming1

[root@aminglinux-01 ~]#

chown 更改全部者和所屬組

  • chown = change owner 更改全部者

  • chown 不只能夠更改全部者,也能夠更改所屬組。

  • cat /etc/passwd 來查看系統用戶都有哪些。

  • 用法:chown 全部者:所屬組 文件名/目錄

下面修改一下新建文件的全部者。

[root@aminglinux-01 ~]# touch /tmp/lunyu.log
[root@aminglinux-01 ~]# ls -l /tmp/lunyu.log 
-rw-r--r--. 1 root root 0 8月   9 21:45 /tmp/lunyu.log
[root@aminglinux-01 ~]# chown linyu /tmp/lunyu.log 
[root@aminglinux-01 ~]# ls -l /tmp/lunyu.log 
-rw-r--r--. 1 linyu root 0 8月   9 21:45 /tmp/lunyu.log
[root@aminglinux-01 ~]#
  • 更改所屬組命令:chgrp,用法同上。可是chown既能夠更改全部者也能夠同時或者單獨更改所屬組

  • chown 同時或者單獨更改所屬組

[root@aminglinux-01 ~]# chown linyu:games /tmp/lunyu.log 
[root@aminglinux-01 ~]# ls -l /tmp/lunyu.log 
-rw-r--r--. 1 linyu games 0 8月   9 21:45 /tmp/lunyu.log

[root@aminglinux-01 ~]# chown   :root /tmp/lunyu.log 
[root@aminglinux-01 ~]# ls -l /tmp/lunyu.log 
-rw-r--r--. 1 linyu root 0 8月   9 21:45 /tmp/lunyu.log
  • chown -R 命令

一樣能夠一次性更改目錄及子目錄和文件的全部者和所屬組。


umask

linux在建立一個文件或者目錄時候都會有一個默認的權限。這個是怎麼來的呢。 運行一下 umask

[root@aminglinux-01 ~]# umask
0022

這個是root用戶下的umask值,經過這個值能夠肯定文件以及目錄默認是什麼權限。

首先建立一個目錄和文件。而後修改一下啊umask值,在建立一個目錄和文件。而後對比一下看有什麼聯繫。

[root@aminglinux-01 ~]# touch 123.txt
[root@aminglinux-01 ~]# mkdir aaa
[root@aminglinux-01 ~]# ls -l 
總用量 8
-rw-r--r--. 1 root root    0 8月   9 22:08 123.txt
drwxr-xr-x. 2 root root    6 8月   9 22:08 aaa

在0022時候,文件默認是:644,目錄默認是:755
[root@aminglinux-01 ~]# umask 002
[root@aminglinux-01 ~]# umask 
0002
[root@aminglinux-01 ~]# touch 456.txt
[root@aminglinux-01 ~]# mkdir bbb
[root@aminglinux-01 ~]# ls -l
總用量 8
-rw-r--r--. 1 root root    0 8月   9 22:08 123.txt
-rw-rw-r--. 1 root root    0 8月   9 22:14 456.txt
drwxr-xr-x. 2 root root    6 8月   9 22:08 aaa
drwxrwxr-x. 2 root root    6 8月   9 22:14 bbb
[root@aminglinux-01 ~]# 
在0002時候,文件默認是:664,目錄默認是:775
  • 得出答案是:

在0022時候,文件默認是:644,目錄默認是:755

在0002時候,文件默認是:664,目錄默認是:775

首先目錄,必須會有x權限,由於想查看這個目錄,首先都要進入查看,因此有x權限。因此默認權限最大的話就是7.文件不須要必須有x權限,因此默認6就能夠知足。

由此規律得出:目錄:777-022=755
                    777-002=775
              文件:666-022=644
                    666-002=664
  • 這個規律合乎邏輯可是不必定是準確的。

  • 若是咱們設置umask 爲 003。按照以前的算法666-003=663。實際上通過測試是664

[root@aminglinux-01 ~]# umask 003
[root@aminglinux-01 ~]# touch 888.txt
[root@aminglinux-01 ~]# ls -l 888.txt 
-rw-rw-r--. 1 root root 0 8月   9 22:27 888.txt
[root@aminglinux-01 ~]#
  • 那麼以前的算法就是有漏洞的。

  • 正確的算法是:

文件 666(rw-rw-rw-)- 003(-------wx)=rw-rw-r-- 也就是664

目錄 777(rwxrwxrwx)- 002(-------w-)=rwxrwxr-x 也就是775

相關文章
相關標籤/搜索