### **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
```