/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命令是列取目錄或者文件的命令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 -l :列取詳細信息less
ls -i :列取inodessh
ls -lh :看文件大小更直觀ide
ls -la :列出隱藏文件
ls -lta: t是時間的意思,按時間順序排列
ls -ld :只列出文件夾
在inode使用量前面11位。第一位表示文件類型,後面九位表示文件權限,最後一個(.)是受制於selinux。若是關閉selinux,新建的文件或目錄就會沒有(.)
[root@aminglinux-01 ~]# ls -l 總用量 4 - rw-------. 1 root root 1422 5月 12 23:06 anaconda-ks.cfg 文件類型 權限 .(selinux) 有幾個文件使用了這個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
[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
[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
其中.開頭的文件都是隱藏文件或者目錄。
還有兩個目錄 點和點點 。「.」表明是當前目錄 「..」表明的是上層目錄
[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 ~]#
常見的就是: - 是普通文件
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的做用就是,能夠簡寫命令。
用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
[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'
[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
[root@aminglinux-01 ~]# unalias aming [root@aminglinux-01 ~]# aming -bash: aming: 未找到命令
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
cd 切換目錄命令。change directory 的縮寫
[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都會回到登錄系統的用戶的家目錄下。
[root@aminglinux-01 sysconfig]# pwd /etc/sysconfig [root@aminglinux-01 sysconfig]# cd [root@aminglinux-01 ~]# pwd /root [root@aminglinux-01 ~]#
一樣是直接返回用戶的家目錄
返回上一層目錄
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建立連續的文件夾是不能夠的,以下
[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 ~]#
[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是remove directory的縮寫
[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/" 失敗: 目錄非空
[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 比較危險,通常不用。
以前學習的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命令 : 查看歷史輸入命令記錄
!命令
用法:!+命令
感嘆號加一個命令的意思是這個命令在命令歷史裏最近的一次執行的內容。
平時在敲命令的時候能夠在任何路徑下直接執行。而輸入其餘 文本會提示找不到該文件,這是爲何呢?
[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 ~]#
[root@aminglinux-01 ~]# ls2 -bash: ls2: 未找到命令
結果是並無生效,這是由於ls2所在的/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/
[root@aminglinux-01 ~]# ls2 anaconda-ks.cfg [root@aminglinux-01 ~]#
[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/
[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: 未找到命令
[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 -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 :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]#
[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
另外若是移動相同文件夾裏面若是有文件,那麼是會報錯目錄非空。沒法覆蓋。
[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 ~]#
[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 ~]#
[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
[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的命令的用法包含了more的用法,同時能夠用方向鍵來一行一行的翻頁。翻到尾部不會自動退出來。
按q能夠退出。
按「g」定位到行首
按「G」定位到行尾
還能夠搜索內容
輸入:/或者?「單詞」 好比/and或?and 搜索下面文件內容全部的and都會高亮顯示。 按「n」像下查詢查找內容 按「N」從下向上查詢查找內容
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 ~]#
[root@aming1 ~]# wc -l 111.txt 21 111.txt
[root@aming1 ~]# cat 1.txt 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 [root@aming1 ~]# cat 2.txt 22222222222222222222
[root@aming1 ~]# cat 1.txt >> 2.txt [root@aming1 ~]# cat 2.txt 22222222222222222222 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
[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表明
r+w+x=7 rwxrwxrwx=777
chmod 更改權限 change mode 的縮寫
[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 ~]# 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
操做只對目錄或文件自己生效。如需目錄及子文件子目錄所有生效須要加-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
意思是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 = 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
一樣能夠一次性更改目錄及子目錄和文件的全部者和所屬組。
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