2. 文件、目錄管理 2.1 有哪些文件目錄 2.1.1 /bin 2.1.2 /boot 2.1.3 /dev 2.1.4 /etc 2.1.5 /home 2.1.6 /lib /lib64 2.1.7 /meida 2.1.8 /mnt 2.1.9 /opt 2.1.10 /proc 2.1.11 /run 2.1.12 /sbin 2.1.13 /srv 2.1.14 /sys 2.1.15 /tmp 2.1.16 /usr 2.1.17 /var 2.2 常用命令 2.2.1 tree //以樹形結構顯示目錄結構; yum install -y tree //安裝tree包; tree --hep //查看tree的用法, 或用 man tree; tree -L 2 //指定樹的深度爲2; 2.2.2 ls /home/username // 列出用戶名; ls /etc/ssh/sshd_config //列出配置文件 2.2.3 useradd username //增加用戶名字 2.2.4 ldd /bin/ls //查看一個文件依賴哪些庫 2.2.5 ls -l /proc/28/ //查看進程pid=28的進程目錄 2.3 ls命令詳解 2.3.1 ls -l 列出文件、目錄 2.3.2 ls -i 查看文件、目錄的iNode號 2.3.2.1 ls -i /root 2.3.2.2 ls -i . 2.3.2.3 ls -i .ssh/.. 2.3.3 ls -a 顯示所有隱藏的文件、目錄 2.3.4 ls -t 按時間time排序 2.3.4 ls -h 顯示單位 2.3.5 ls -d 只列出目錄本身 2.3.6 ll 是ls -l的別名 2.3.7 which ll 查看ll文件的路徑 2.3.8 ls -la 2.3.8.1 列出的左邊第一位d表示directory目錄 2.3.8.2 列出的左邊第一位-表示文件 2.3.8.3 列出的左邊第一位c表示字符串設備 2.3.8.4 列出的左邊第一位l表示軟鏈接文件,相當於快捷方式 2.3.8.5 列出的左邊第一位b表示塊設備,如光盤、磁盤等 2.3.8.6 列出的左邊第一位s表示socket文件,用於進程間的通信 2.3.9 cat 查看文本文檔 2.4 alias別名的使用 2.4.1 alias //查看系統的別名 2.4.2 echo $PATH //輸出PATH環境變量的值 2.4.3 alias alibaba='ls -al' //將ls -al命令用alibaba這個別名表示, 注意一般用單引號 2.4.4 which alibaba //查看alibaba這個別名所在的路徑 2.4.5 unalias alibaba //取消alibaba這個別名 2.5 絕對路徑與相對路徑 2.5.1 絕對路徑: 從根目錄開始的路徑 2.5.1.1 ls /root/.ssh/authorized_keys 2.5.2 相對路徑: 相對當前目錄所表示的路徑 2.5.2.1 ls .ssh/authorized_keys 2.6 cd 命令 2.6.1 cd /etc/sysconfig //change directory to /etc/sysconfig 2.6.2 cd - //進入上一次所在目錄 2.6.3 cd //進入當前用戶的家目錄 2.6.4 cd ~ //進入當前用戶的家目錄 2.6.5 cd .. //返回上一級目錄 2.7 創建和刪除目錄 2.7.1 mkdir make directory 創建一個目錄 2.7.1.1 mkdir /tmp/newDir 2.7.1.2 mkdir -p /tmp/newDir1/newDir2 // -p表示創建一串目錄 2.7.1.3 mkdir -pv /tmp/newDir3/newDir4/newDir5 // -v表示可視化 2.7.2 rmdir remove directory 刪除一個空的目錄,且只能是目錄 2.7.2.1 touch /tmp/2/3/1.txt //創建一個空白文件 2.7.2.2 !tree //執行最近一次以tree開頭的命令 2.7.2.3 history //查看命令歷史 2.7.3 rm命令 remove 移除 2.7.3.1 rm /tmp/johnson/2/3/1.txt //移除1.txt文本文檔,此處有詢問 2.7.3.2 rm -f /tmp/johnson/2/3/1.txt //-f 表示force 2.7.3.3 rm -r //-r 表示recursive,指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除 2.7.3.4 rm -rf //-rf 常組合使用 2.7.3.5 按兩下Tab鍵可以顯示目錄後面的目錄或文件 2.8 PATH環境變量 2.8.1 是環境變量,這個變量裏面有多個絕對路徑,用冒號:分割,在這些路徑下的命令是可以直接敲出來,省略掉目錄路徑的; 2.8.2 設置環境變量(臨時的):PATH=$PATH:pathname 2.8.3 修改環境變量爲永久的: vi /etc/profile, 然後增加 PATH=$PATH:/pathname/ 2.9 cp 拷貝命令 2.9.1 拷貝時所有的目錄後面加/ 2.9.2 cp /etc/passwd /tmp/1.txt 2.9.3 cp -r /etc/passwd /tmp/1.txt //遞歸處理,將指定目錄下的所有文件與子目錄一併處理 2.9.4 !$ //執行上一條命令最後一個參數 2.9.5 /usr/bin/cp /etc/passwd /tmp/1.txt //不再有詢問語句 2.9.6 cp -r /tmp/aminglinux /tmp/aming1/ //aming文件夾存在,放在其後 2.10 mv 命令 2.10.0 mv /etc/new1.txt /etc/2/ 2.10.1 當目標文件不存在時,可以更改文件名 2.10.2 當目標文件存在時,自動到它的後面 2.11 文件或目錄權限 2.11.1 所有者-所屬組-其他用戶 2.11.2 chmod 700 1.txt //change mod for 700(rwx------) 2.11.3 --rw-----. //此處的點表示受制於selinux 2.11.3.1 setenforce 0 //臨時關閉selinux 2.11.3.2 getenforce //查詢 2.11.3.3 vi /etc/selinux/config //可以修改selinux的配置文件得到永久關閉selinux的效果 2.11.3.4 chmod -R //處理指定目錄以及其子目錄下的所有文件 2.11.3.5 chmod u=rwx,g=r,o=r newDir 2.11.3.6 chmod a+x newDir 2.11.4 chown //change owner 2.11.4.1 chown user1:aming /tmp/yum.log 2.11.4.2 chown :root /tmp/yum.log 2.11.4.3 chown -R user1:aming /tmp/aming2 //-R:處理指定目錄以及其子目錄下的所有文件 2.11.5 chgrp //change group 2.11.5.1 chgrp user1 /tmp/yum.log 2.12 umask 2.12.1 file: 666= (rw-rw-rw-) - (-------wx) = rw-rw-r-- =644 即: 666-umask=file 2.12.2 directory: 777 = (rwxrwxrwx) - (-------wx) = rwxrwxr-- = 744 即:777-umask=directory 2.13 隱藏權限 2.13.1 chattr 2.13.1.1 chattr +a //設置追加權限 2.13.1.2 chattr -a // 2.13.1.3 chattr +i //設置不允許修改文件的權限,如果是目錄的話,只能修改目錄之下的文件,不允許建立和刪除文件 3.10.1.4 chattr -i // 2.13.2 lsattr 查看 2.13.2.1 lsattr -R //查看子目錄及文件 2.13.2.2 lsattr -d //查看當前目錄 2.13.2.3 lsattr -a //查看所有包括隱藏的文件 2.14 set_uid 和 set_gid 2.14.0 https://wenku.baidu.com/view/cf3baa6a561252d380eb6ed7.html 2.14.1 set_uid 2.14.1.1 chmod u=rwxs file_name //顯示s 2.14.1.2 chmod u=rws file_name //顯示S 2.14.2 set_gid 2.14.2.1 chmod g=rwxs Directory_name 2.14.2.2 chmod g=rws Directory_name 2.14.3 sticky_bit //t表示防刪除位 2.14.4 擴展 2.14.3.1 df -h //以更易讀的方式顯示目前磁盤空間和使用情況 2.14.3.2 df -i //以inode模式來顯示磁盤使用情況 2.15 軟鏈接 和 硬鏈接 2.15.1 軟鏈接 2.15.1.1 ln -s /tmp/yum.log /root/111/yum.log //相當於一個快捷方式 2.15.1.2 案例: cp /boot/aminglinux.log /aming,log rm /boot/aming.log ln -s /aming.log /boot/aming.log 2.15.1.3 做軟鏈接儘量使用絕對路徑 2.15.2 硬鏈接 2.15.2.1 ln 1.txt 1.head.txt 2.15.2.2 ls -i 1_head.txt //查看iNode號 2.15.2.3 注意事項: 2.15.2.3.1 文件做硬鏈接,不能跨分區; 2.15.2.3.2 創建了一個文件,和另一個文件的iNode號一樣 2.15.2.3.3 不能對目錄做硬鏈接 2.16 find命令 2.16.1 which ls // 2.16.2 whereis ls //模糊查詢 2.16.3 locate 123 //yum install -y mlocate ,模糊查詢 2.16.4 一些常用快捷鍵 2.16.4.1 ctrl + l //clear screen 2.16.4.2 ctrl + d //exit/login 2.16.4.3 ctrl + c //取消本次操作 2.16.4.4 ctrl + u //往前刪一行 2.16.4.5 ctrl + e //移動光標到結尾處 2.16.5 find 路徑 -type f(文件) -mtime +1(一天以上) -o(或者) -name "*.conf" 2.16.5.1 -mtime : Modify, 表示更改文件內容的時間(iNode) 2.16.5.2 -ctime : Change, 表示權限、語言的改變 2.16.5.3 -atime : Access, 表示訪問的時間 2.16.5.4 -nmin -60(1小時以內) 2.16.5.5 stat 1.txt //查看文件的具體信息 2.16.5.6 ln 1_head.txt /tmp/1.txt.bak 2.16.5.6.1 ls -l 1_head.txt 2.16.5.6.2 ls -i 1_head.txt 2.16.5.6.3 find / -inum 33583395 //查找一個文件iNode號爲33583395的硬鏈接 2.16.5.7 ls -l /root/2.txt 2.16.5.7.1 date 2.16.5.7.2 find /root/ -type -f -nmin -120 -exec ls -l {} \; //-exec 表示顯示後面的命令 2.16.5.7.3 find /root/ -type f -nmin -150 -exec mv {} {}.bak \; //{}.bak爲文件的格式名 2.16.5.7.4 -size 10K/M 2.17 文件後綴名 2.17.1 語言的修改 2.17.1.1 zh_CN.utf-8 //中文字符集編碼 2.17.1.2 LANG=en //英文 2.17.1.3 echo $LANG //打印語言的類型 2.18 Linux和Windows互傳文件 2.18.1 可通過ftp, samba 2.18.2 在Xshell、securecrt環境下,安裝傳輸協議包 2.18.2.1 yum install -y lrzsz 2.18.2.2 sz 1.txt //linux -> windows 2.18.2.3 rz 1.txt //windows -> linux r:remote