### **1、基礎命令**
```
ls: 查看當前目錄
cd: 切換目錄或直接回到根目錄
cd - : 切換最近使用的兩次目錄
pwd: 查看當前路徑
ctrl+c: 強制中斷命令
crtl+L: 清空當前屏幕
witch ls:查找命令在什么地方
whereis 軟件名: 查找安裝的軟件
du -sh * 查看當前目錄下文件的大小
init 0: 關機
init 6: 重啟
```
### **2、目錄結構**
```
/mnt: 測試目錄
/root: 超級管理員家目錄
/home: 普通用戶家目錄
/tmp: 臨時目錄,重啟后清除
/var: 存放軟件日志
/boot: 系統啟動目錄
/etc: 配置文件目錄
/bin: 所有用戶都能執行的程序目錄
/sbin: 只有root才能執行程序目錄
/usr: 存放用戶軟件目錄
/dev: 存放硬件設備目錄
/media: 掛載光盤目錄
```
### **3、掛載光盤**
```
mount /dev/cdrom /media: 將光驅的文件掛載到media目錄下
設置光驅自動掛載:
vi /etc/fstab
/dev/cdrom /media iso9660 defaults 0 0
```
### **4、文件管理**
```
touch filename:創建文件
rm –rf fileName:刪除文件
cat fileName:查看文件內容
mv fileName1 fileName2: 移動文件(相當于重命名)
vi filename: 編輯文件
touch filename{1..100}: 批量創建文件
cat fileName1 | head -10: 查看文件前十行內容
cat fileName1 | tail -10: 查看文件后十行內容
find /etc -name httpd.conf: 查找文件(查找etc下apache的配置文件)
cat httpd.conf | grep listen:過濾查找(查找httpd.conf里面的listen)
cat httpd.conf | grep -i listen:不區分大小寫
```
### **5、目錄管理**
```
mkdir dirName: 創建目錄
rm -rf dirName:刪除目錄
mv dirName1 dirName2:修改目錄或移動目錄
ls: 查看目錄
mkdir –p a/b/c/d/e/f:遞歸創建目錄
tree a: 遞歸查看目錄
```
### **6、用戶管理**
```
useradd username:創建用戶(只有root才能創建)
passwd userName:為創建用戶添加密碼
userdel -r userName:刪除用戶
id userName:查看用戶
alias chttp='cat/etc/httpd/config':創建別名
unalias aliasName: 刪除別名
alias :查看別名
```
### **7、壓縮管理**
```
tar czf myshop.tar.gz myshop:gz壓縮myshop
zip -r myshop.zip myshop:zip壓縮myshop
tar xzf myshop.tar.gz:解壓gz
uzip myshop.zip:解壓zip
tar tf myshop.tar.gz:查看gz壓縮包,不解壓
unzip -l myshop.zip:查看zip壓縮包,不解壓
```
### **8、網絡設置**
ifconfig:查看ip的詳細信息
ifconfig eth0 :只查看eth0
ifconfig lo:只查看lo
ifconfig eth0 192.168.20.3:臨時設置ip
vi /etc/sysconfig/networt-scripts/ifcfg-eth0 :永久設置ip
IPADDR=192.168.20.3
NETMASK=255.255.255.0
### **9、shell技巧**
```
tab:補全
history:歷史命令
!203: 調用第203行的命令
!h: 調用歷史中最后一次以h開頭的命令
|:管道,用于過濾
ls \--help:獲取ls命令幫助
man ls:獲取ls命令詳細幫助信息
```
### **10、lptables防火墻**
```
iptables \-L:查看
iptables \-F:清空
service iptables save:保存
```
### **11、selinux****防火墻**
```
vi /etc/selinux/config:編輯
SELINUX=disabled
```
### **12、系統啟動流程**
```
bios找到磁盤上的mbr主引導扇區->
進入grub界面選擇相應的啟動內核->
讀取kernel內核文件 /boot/vmlinuz -*->
讀取init的鏡像文件 /boot/initrd -*->
init去讀取/etc/inittab->
讀取啟動級別(id:3:initdefault)->
讀取/etc/rc.d/rc.sysinit,完成時鐘設置,主機名的設置,分區表的掛載(/etc/fstab)->
讀取/etc/rc.d/rc腳本,通過該腳本吸收3級別,然后啟動該目錄下以K開頭的服務-進入登錄界面
```
### **13、時間管理**
```
date:查看時間 例如:date "+%y-%m-%d %H:%M:%S"
date \-s "2019//4/8 9:48:30": 修改時間
hostname:查看主機名
修改主機名:
hostname 名字:臨時修改
vi /etc/sysconfig/network:永久修改
HOSTNAME = 名字
```
### **14、磁盤分區**
```
df -Th:查看已經掛載的分區
fdisk -l:查看分區
從sdb硬盤上分3G大小進行分區:
fdisk /dev/sdb
按n鍵新建分區
按p鍵建立第一個主分區
開始柱面直接回車
結束柱面+3072M
按p鍵查看分區
按t鍵修改文件系統
按w鍵保存退出
mkfs ext3 /dev/sdb1:格式化成ext3文件系統(也可以用mkfs -t ext3 /dev/sdb)
mount dev/sdb1 mnt:掛載/mnt下使用
df:查看掛載情況
umount dev/sdb1:卸載硬盤
mount \-a:測試fstasb中掛載是否成功
```
### **15、RPM和YUM軟件包管理**
```
mount /dev/cdrom /media:掛載光盤(準備yum源(/media)
cd /etc/yum.repos.d/:進入(修改yum配置文件)
mv CentOS.Base.repo CentOS-Base:改名
vi CentOS-Media.repo:修改
baseurl = file://media
gpgcheck = 0 :關閉gpg簽名
enabled = 1 :開啟本yum源
yum list:查看(進行測試)
yum list|grep ^http:按名查看
amp: yum -y install apache\* mysql\* php\*:安裝
yum remove http\*: yum卸載
卸載比較危險,那就使用rmp -e來卸載, --nodeps意義是截斷軟件依賴
rpm -e mysql-5.0.0.77-4.el5\_4.2 –nodeps
```
### **16、用戶權限管理**
```
rwxr-xr-x root root media
- :沒有權限
r :讀權限
w :寫權限
x :執行權限
第一類人:rwx 文件所有者(root用戶)u
第二類人: r-x 所有者所在的用戶組內的其它用戶(root組內其它用戶)g
第三類人:所有者所在組以外的其它用戶(root組以外的其它用戶)o
所有人群:a = u+g+o
目錄的rwx r:查看文件 w:寫入和刪除文件 x:切入目錄
文件的rwx r: 查看文件內容 w:寫內容 x:執行文件(腳本)
設置權限:chmod
chmod g+w,o-w file.txt
查看用戶組:id root
把yujie用戶加入root組:gpasswd -a yujie root
把yujie從root組中刪除:gpasswd -d yujie root
ACL權限分配:
添加權限: setfacl -m u:yujie:rwx -R rootdir
刪除權限: getfacl rootdir
查看權限: setfacl -x u:yujie rootdir
setfacl -b rootdir
```
### **17、服務進程**
```
安裝軟件:yum -y install http\*
查看進程:
ps -ef |grep httpd
pstree -p |grep httpd
查看進程和端口:netstat -tunpl
過濾: netstat -tunpl |grep httpd
查看特定端口: netstat -tunpl |grep 8000
關閉進程:pkill httpd或kill -9 pid
查看服務器的性能:
top :3秒看一次負載
uptime :平均負載
last:查看服務器重要操作
who :查看同時在線用戶
cat /var/log/messages :查看系統日志
```
### **18、任務計劃** **crontab**
```
創建計劃任務:crontab -e
查看計劃任務: crontab -l
刪除計劃任務:crontab -r
12 19 * * * :/sbin/init 6 每天19:12重啟計算機
* * * * * 分 時 日 月 周
00 03 * * * :每天3點
30 23 * * * :每天23:30
* 5 * * * * :每隔5分鐘
59 23 * * 1-5 :每周一到周五
59 23 * * 1,3,5 :周一、周三和周五的23:59
59 23 6 1 * :每年1月6號23:59
例如:用shell腳本去執行(備份網站目錄)
#!/bin/bash
#webbak.sh
date=`date"+%Y-%m-%d"`
zip -r /var/www/web-${date}.zip /var/www/html
mv /var/www/www/web-${date}.zip /mnt/
將這段腳本放到計劃任務中:
crontab -e
00 03 * * * /bin/bash /root/webbak.sh
為shell腳本添加權限: chmod a+w webak.sh
開始執行:/root/webbak.sh
```