一、基礎知識 1.1 Linux系統的文件結構 /bin 二進位文件,系統常規命令 /boot 系統啟動分區,系統啟動時讀取的文件 /dev 設備文件 /etc 大多數配置文件 /home 普通用戶的家目錄 /lib 32位函數庫 /lib64 64位庫 /media 手動臨時掛載點 /mnt 手動 ...
一、基礎知識
1.1 Linux系統的文件結構
/bin 二進位文件,系統常規命令
/boot 系統啟動分區,系統啟動時讀取的文件
/dev 設備文件
/etc 大多數配置文件
/home 普通用戶的家目錄
/lib 32位函數庫
/lib64 64位庫
/media 手動臨時掛載點
/mnt 手動臨時掛載點
/opt 第三方軟體安裝位置
/proc 進程信息及硬體信息
/root 臨時設備的預設掛載點
/sbin 系統管理命令
/srv 數據
/var 數據
/sys 內核相關信息
/tmp 臨時文件
/usr 用戶相關設定
1.2 Linux系統命令行的含義
示例:root@app00:~#
root //用戶名,root為超級用戶
@ //分隔符
app00 //主機名稱
~ //當前所在目錄,預設用戶目錄為~,會隨著目錄切換而變化,例如:(root@app00:/bin# ,當前位置在bin目錄下)
# //表示當前用戶是超級用戶,普通用戶為$,例如:("yao@app00:/root$" ,表示使用用戶"yao"訪問/root文件夾)
1.3 命令的組成
示例:命令 參數名 參數值
二、基礎操作
2.1 重啟系統
(1)立刻關機
shutdown -h now 或者 poweroff
(2)兩分鐘後關機
shutdown -h 2
2.2 關閉系統
(1)立刻重啟
shutdown -r now 或者 reboot
(2)兩分鐘後重啟
shutdown -r 2
2.3 幫助命令(help)
ifconfig --help //查看 ifconfig 命令的用法
2.4 命令說明書(man)
man shutdown //打開命令說明後,可按"q"鍵退出
2.5 切換用戶(su)
su yao //切換為用戶"yao",輸入後回車需要輸入該用戶的密碼
exit //退出當前用戶
三、目錄操作
3.1 切換目錄(cd)
cd / //切換到根目錄
cd /bin //切換到根目錄下的bin目錄
cd ../ //切換到上一級目錄 或者使用命令:cd ..
cd ~ //切換到home目錄
cd - //切換到上次訪問的目錄
cd xx(文件夾名) //切換到本目錄下的名為xx的文件目錄,如果目錄不存在報錯
cd /xxx/xx/x //可以輸入完整的路徑,直接切換到目標目錄,輸入過程中可以使用tab鍵快速補全
3.2 查看目錄(ls)
ls //查看當前目錄下的所有目錄和文件
ls -a //查看當前目錄下的所有目錄和文件(包括隱藏的文件)
ls -l //列表查看當前目錄下的所有目錄和文件(列表查看,顯示更多信息),與命令"ll"效果一樣
ls /bin //查看指定目錄下的所有目錄和文件
3.3 創建目錄(mkdir)
mkdir tools //在當前目錄下創建一個名為tools的目錄
mkdir /bin/tools //在指定目錄下創建一個名為tools的目錄
3.3 刪除目錄與文件(rm)
rm 文件名 //刪除當前目錄下的文件
rm -f 文件名 //刪除當前目錄的的文件(不詢問)
rm -r 文件夾名 //遞歸刪除當前目錄下此名的目錄
rm -rf 文件夾名 //遞歸刪除當前目錄下此名的目錄(不詢問)
rm -rf * //將當前目錄下的所有目錄和文件全部刪除
rm -rf /* //將根目錄下的所有文件全部刪除【慎用!相當於格式化系統】
3.4 修改目錄(mv)
mv 當前目錄名 新目錄名 //修改目錄名,同樣適用與文件操作
mv /usr/tmp/tool /opt //將/usr/tmp目錄下的tool目錄剪切到 /opt目錄下麵
mv -r /usr/tmp/tool /opt //遞歸剪切目錄中所有文件和文件夾
3.5 拷貝目錄(cp)
cp /usr/tmp/tool /opt //將/usr/tmp目錄下的tool目錄複製到 /opt目錄下麵
cp -r /usr/tmp/tool /opt //遞歸剪複製目錄中所有文件和文件夾
3.6 搜索目錄(find)
find /bin -name 'a*' //查找/bin目錄下的所有以a開頭的文件或者目錄
3.7 查看當前目錄(pwd)
pwd //顯示當前位置路徑
四、文件操作
4.1 新增文件(touch)
touch a.txt //在當前目錄下創建名為a的txt文件(文件不存在),如果文件存在,將文件時間屬性修改為當前系統時間
4.2 刪除文件(rm)
rm 文件名 //刪除當前目錄下的文件
rm -f 文件名 //刪除當前目錄的的文件(不詢問)
4.3 編輯文件(vi、vim)
vi 文件名 //打開需要編輯的文件
--進入後,操作界面有三種模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
命令模式
-剛進入文件就是命令模式,通過方向鍵控制游標位置,
-使用命令"dd"刪除當前整行
-使用命令"/欄位"進行查找
-按"i"在游標所在字元前開始插入
-按"a"在游標所在字元後開始插入
-按"o"在游標所在行的下麵另起一新行插入
-按":"進入底行模式
插入模式
-此時可以對文件內容進行編輯,左下角會顯示 "-- 插入 --""
-按"ESC"進入底行模式
底行模式
-退出編輯: :q
-強制退出: :q!
-保存並退出: :wq
## 操作步驟示例 ##
1.保存文件:按"ESC" -> 輸入":" -> 輸入"wq",回車 //保存並退出編輯
2.取消操作:按"ESC" -> 輸入":" -> 輸入"q!",回車 //撤銷本次修改並退出編輯
## 補充 ##
vim +10 filename.txt //打開文件並跳到第10行
vim -R /etc/passwd //以只讀模式打開文件
4.4 查看文件
cat a.txt //查看文件最後一屏內容
less a.txt //PgUp向上翻頁,PgDn向下翻頁,"q"退出查看
more a.txt //顯示百分比,回車查看下一行,空格查看下一頁,"q"退出查看
tail -100 a.txt //查看文件的後100行,"Ctrl+C"退出查看
五、文件許可權
5.1 許可權說明
文件許可權簡介:'r' 代表可讀(4),'w' 代表可寫(2),'x' 代表執行許可權(1),括弧內代表"8421法"
##文件許可權信息示例:-rwxrw-r--
-第一位:'-'就代表是文件,'d'代表是文件夾
-第一組三位:擁有者的許可權
-第二組三位:擁有者所在的組,組員的許可權
-第三組三位:代表的是其他用戶的許可權
5.2 文件許可權
普通授權 chmod +x a.txt
8421法 chmod 777 a.txt //1+2+4=7,"7"說明授予所有許可權
六、打包與解壓
6.1 說明
.zip、.rar //windows系統中壓縮文件的擴展名
.tar //Linux中打包文件的擴展名
.gz //Linux中壓縮文件的擴展名
.tar.gz //Linux中打包並壓縮文件的擴展名
6.2 打包文件
tar -zcvf 打包壓縮後的文件名 要打包的文件
參數說明:z:調用gzip壓縮命令進行壓縮; c:打包文件; v:顯示運行過程; f:指定文件名;
示例:
tar -zcvf a.tar file1 file2,... //多個文件壓縮打包
6.3 解壓文件
tar -zxvf a.tar //解包至當前目錄
tar -zxvf a.tar -C /usr------ //指定解壓的位置
unzip test.zip //解壓*.zip文件
unzip -l test.zip //查看*.zip文件的內容
七、其他常用命令
7.1 find
find . -name "*.c" //將目前目錄及其子目錄下所有延伸檔名是 c 的文件列出來
find . -type f //將目前目錄其其下子目錄中所有一般文件列出
find . -ctime -20 //將目前目錄及其子目錄下所有最近 20 天內更新過的文件列出
find /var/log -type f -mtime +7 -ok rm {} \; //查找/var/log目錄中更改時間在7日以前的普通文件,併在刪除之前詢問它們
find . -type f -perm 644 -exec ls -l {} \; //查找前目錄中文件屬主具有讀、寫許可權,並且文件所屬組的用戶和其他用戶具有讀許可權的文件
find / -type f -size 0 -exec ls -l {} \; //為了查找系統中所有文件長度為0的普通文件,併列出它們的完整路徑
7.2 whereis
whereis ls //將和ls文件相關的文件都查找出來
7.3 which
說明:which指令會在環境變數$PATH設置的目錄里查找符合條件的文件。
which bash //查看指令"bash"的絕對路徑
7.4 sudo
說明:sudo命令以系統管理者的身份執行指令,也就是說,經由 sudo 所執行的指令就好像是 root 親自執行。需要輸入自己賬戶密碼。
使用許可權:在 /etc/sudoers 中有出現的使用者
sudo -l //列出目前的許可權
$ sudo -u yao vi ~www/index.html //以 yao 用戶身份編輯 home 目錄下www目錄中的 index.html 文件
7.5 grep
grep -i "the" demo_file //在文件中查找字元串(不區分大小寫)
grep -A 3 -i "example" demo_text //輸出成功匹配的行,以及該行之後的三行
grep -r "ramesh" * //在一個文件夾中遞歸查詢包含指定字元串的文件
7.6 service
說明:service命令用於運行System V init腳本,這些腳本一般位於/etc/init.d文件下,這個命令可以直接運行這個文件夾裡面的腳本,而不用加上路徑
service ssh status //查看服務狀態
service --status-all //查看所有服務狀態
service ssh restart //重啟服務
7.7 free
說明:這個命令用於顯示系統當前記憶體的使用情況,包括已用記憶體、可用記憶體和交換記憶體的情況
free -g //以G為單位輸出記憶體的使用量,-g為GB,-m為MB,-k為KB,-b為位元組
free -t //查看所有記憶體的彙總
7.8 top
top //顯示當前系統中占用資源最多的一些進程, shift+m 按照記憶體大小查看
7.9 df
說明:顯示文件系統的磁碟使用情況
df -h //一種易看的顯示
7.10 mount
mount /dev/sdb1 /u01 //掛載一個文件系統,需要先創建一個目錄,然後將這個文件系統掛載到這個目錄上
dev/sdb1 /u01 ext2 defaults 0 2 //添加到fstab中進行自動掛載,這樣任何時候系統重啟的時候,文件系統都會被載入
7.11 uname
說明:uname可以顯示一些重要的系統信息,例如內核名稱、主機名、內核版本號、處理器類型之類的信息
uname -a
7.12 yum
說明:安裝插件命令
yum install httpd //使用yum安裝apache
yum update httpd //更新apache
yum remove httpd //卸載/刪除apache
7.13 rpm
說明:插件安裝命令
rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm //使用rpm文件安裝apache
rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm //使用rpm更新apache
rpm -ev httpd //卸載/刪除apache
7.14 date
date -s "01/31/2010 23:59:53" ///設置系統時間
7.15 wget
說明:使用wget從網上下載軟體、音樂、視頻
示例:wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
//下載文件並以指定的文件名保存文件
wget -O nagios.tar.gz http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
7.16 ftp
ftp IP/hostname //訪問ftp伺服器
mls *.html - //顯示遠程主機上文件列表
7.17 scp
scp /opt/data.txt 192.168.1.101:/opt/ //將本地opt目錄下的data文件發送到192.168.1.101伺服器的opt目錄下
八、系統管理
8.1 防火牆操作
service iptables status //查看iptables服務的狀態
service iptables start //開啟iptables服務
service iptables stop //停止iptables服務
service iptables restart //重啟iptables服務
chkconfig iptables off //關閉iptables服務的開機自啟動
chkconfig iptables on //開啟iptables服務的開機自啟動
##centos7 防火牆操作
systemctl status firewalld.service //查看防火牆狀態
systemctl stop firewalld.service //關閉運行的防火牆
systemctl disable firewalld.service //永久禁止防火牆服務
8.2 修改主機名(CentOS 7)
hostnamectl set-hostname 主機名
8.3 查看網路
ifconfig
8.4 修改IP
修改網路配置文件,文件地址:/etc/sysconfig/network-scripts/ifcfg-eth0
------------------------------------------------
主要修改以下配置:
TYPE=Ethernet //網路類型
BOOTPROTO=static //靜態IP
DEVICE=ens00 //網卡名
IPADDR=192.168.1.100 //設置的IP
NETMASK=255.255.255.0 //子網掩碼
GATEWAY=192.168.1.1 //網關
DNS1=192.168.1.1 //DNS
DNS2=8.8.8.8 //備用DNS
ONBOOT=yes //系統啟動時啟動此設置
-------------------------------------------------
修改保存以後使用命令重啟網卡:service network restart
8.5 配置映射
修改文件: vi /etc/hosts
在文件最後添加映射地址,示例如下:
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
配置好以後保存退出,輸入命令:ping node1 ,可見實際 ping 的是 192.168.1.101。
8.6 查看進程
ps -ef //查看所有正在運行的進程
8.7 結束進程
kill pid //殺死該pid的進程
kill -9 pid //強制殺死該進程
8.8 查看鏈接
ping IP //查看與此IP地址的連接情況
netstat -an //查看當前系統埠
netstat -an | grep 8080 //查看指定埠
8.9 快速清屏
ctrl+l //清屏,往上翻可以查看歷史操作
8.10 遠程主機
ssh IP //遠程主機,需要輸入用戶名和密碼
九、統計數量
有時候我們需要在 Linux 伺服器上查看某個文件夾目錄下的文件個數,這個需求可以通過 ls
、grep
、wc
這三個命令來統計某個路徑下文件或者文件夾的數量,下麵老王就分情況介紹下使用方法。
下麵分情況介紹下這 3 個命令的使用方法。
1、統計當前目錄下文件的個數(不包括目錄)
ls -l | grep "^-" | wc -l
2、統計當前目錄下文件的個數(包括子目錄)
ls -lR| grep "^-" | wc -l
3、查看某目錄下文件夾(目錄)的個數(包括子目錄)
ls -lR | grep "^d" | wc -l
4、統計當前文件夾下叫某某的文件的數量
find . -name filename | wc -l
5、統計當前文件夾下指定類型的文件的數量
例如這裡需要找 js 文件的數量:
find -name "*.js" | wc -l
這裡再對使用到的 3 個命令做個介紹。
1、ls -l
長列表輸出該目錄下文件信息(註意這裡的文件是指目錄、鏈接、設備文件等),每一行對應一個文件或目錄,ls -lR 是列出所有文件,包括子目錄。
2、grep “^-”
過濾ls的輸出信息,只保留一般文件,只保留目錄是 grep “^d”。
3、wc -l
統計輸出信息的行數,統計結果就是輸出信息的行數,一行信息對應一個文件,所以就是文件的個數。