一、基本指令:
1、基本文件命令:
-
解压文件:tar -zxvf +文件名
-
编辑文件:vim +文件名
-
保存退出::wq
-
不保存退出::q!
-
显示行号::set nu
-
取消显示行号::set nonu
-
删除一行:dd
-
删除当前行下的多少行:行数+dd
-
拷贝当前行:yy
-
拷贝当前行下的多少行:行数+yy
-
粘贴:p
-
查找:/+关键字 (再输入n就是查找下一个)
-
快捷键到文档末尾:G(正常模式)
-
快捷到文档首行:gg(正常模式)
-
撤销:u(正常模式)
-
快捷到某一行:①先显示行号::set nu ②输入要到达的行数 ③shift+g
2、关机、重启命令:
-
立即关机:shutdown -h now
-
1分钟后关机:shutdown -h 1
-
立即重启:shutdown -r now
-
重启:reboot
-
关机:halt
-
sync:将内存中的数据同步到硬盘
3、用户管理:
-
用户注销:logout(图形运行级别无效)
-
创建用户:useradd 新的用户名
-
指定目录创建用户: useradd -d 指定目录 新的用户名
-
给用户指定或修改密码:passwd 用户名
-
删除用户保存家目录:userdel 用户名
-
删除用户不保留家目录:userdel -r 用户名
-
查询用户:id 用户名
-
用户切换:su -用户名
-
返回到原来的用户:exit
-
查看当前是哪个用户:whoami
-
增加用户组:groupadd 组名
-
删除用户组:groupdel 组名
-
创建用户时直接加上组:useradd -g 组名 用户名
-
修改用户的组:usermod -g 组名 用户名
4、帮助指令:
-
帮助指令:man 指令
-
帮助指令:help 指令
5、文件目录类指令:
-
显示当前工作目录的绝对路径指令:pwd
-
显示当前工作目录下的文件:ls
-
以列表的形式显示当前工作目录下的文件:ls -l
-
以列表的形式显示当前工作目录下的文件以及隐藏的.开头的文件:ls -al
-
跳转到指定目录:cd 绝对路径 例如:cd /usr/lib
-
跳转到指定目录:cd 相对路径 例如现在在/usr/lib,要进入/home:cd ../../home
-
回到上一级目录:cd ..
-
回到家目录:cd 或者 cd ~
-
创建一级目录:mkdir 路径+创建目录名
-
创建多级目录:mkdir -p 路径+多级目录名
-
删除空目录:redir 需要删除的目录
-
删除非空目录:re -rf 需要删除的目录
-
创建一个文件:touch 文件名
-
创建多个文件:touch 文件名1 文件名2
-
拷贝文件到指定目录:cp 需要拷贝的文件 需要粘贴的目录
-
拷贝目录下的所有文件到指定目录:cp -r 需要拷贝的目录 需要粘贴的目录
-
拷贝目录下的所有文件到指定目录(指定目录以及存在要拷贝的目录,强制覆盖所有):\cp -r 需要拷贝的目录 需要粘贴的目录
-
删除文件:rm 文件名
-
强制删除,不提示确定信息:rm -f 文件名
-
删除目录下的所有文件:rm -rf 目录名
-
移动文件:mv 要移动的文件 移动到的目录
-
重命名文件:mv 要重命名的文件 重命名后的文件名
-
使用cat指令打开文件并分页查看(只能浏览,不能编辑):cat -n 要查看的文件 | more
-
以全屏的方式按页显示内容:more 文件,快捷键:
-
打开比较大的文件,以一页一页加载:less 文件,快捷键:
-
>指令和>>指令:
>输出重定向:会将原来的文件覆盖;
>>追加:不会覆盖原来的内容,而是追加到文件尾部。
ls -l > a.txt:将ls -l显示的内容覆盖写入到a.txt文件中,如果不存在a.txt文件,就创建该文件。
ls -l >> a.txt:将ls -l显示的内容追加到a.txt文件中。
cat a.txt > b.txt:将a.txt文件内容覆盖写入到b.txt中去。
echo "你好" > a.txt:将“你好”覆盖写入到a.txt中
echo "你好" > a.txt:将“你好”追加写入到a.txt中
-
控制台输出文本:echo 输出内容
-
控制台输出环境变量:echo $PATH
-
显示指定文件前多少行:head -n 行数 文件
-
默认显示指定文件前10行:head 文件
-
显示指定文件后多少行:tail -n 行数 文件
-
默认显示指定文件后10行:tail文件
-
实时监控文件,如果有变化就会看到变化:tail -f 要监控的文件
-
软链接,类似于快捷方式:ln -s 真实文件 链接文件(快捷方式)
-
删除软链接:rm -rf 链接文件
-
查看执行过的所有指令:history
-
查看最近执行过的10个指令:history 10
-
执行编号为122的指令:!122
6、时间日期类指令:
-
查看当前日期时间:date
-
查看当前年月日时分秒:date "+%Y年%m月%d日 %H时:%M分:%S秒"
-
设置时间:date -s "2020-02-02 02:20:02"
-
显示日历:cal
-
显示某一年的日历:cal 年份
7、搜索查找类指令:
-
按文件名查找文件:find 查找的范围 -name(查找参数) 要查找的文件(*代表查找所有)
-
按文件用户查找:find 查找的范围 -user(查找参数) 所属用户(*代表查找所有)
-
按文件大小查找大于20M的文件:find / -size +20M(大于:+,小于:-,等于: )
-
创建locate数据库:updatedb
-
快速查询:locate 文件(第一次使用locate前必须先创建locate数据库)
-
管道符号:| (将前面指令的结果交给后面的指令)
-
查找a.txt文件中的yes:cat a.txt | grep yes
-
查找a.txt文件中的yes,显示行号:cat a.txt | grep -n yes
-
查找a.txt文件中的yes,区分大小写,显示行号:cat a.txt | grep -ni yes
8、压缩和解压缩文件指令:
-
压缩文件:gzip 文件(压缩后不会保留原来的文件)
-
解压缩:gunzip 文件
-
递归压缩整个文件夹:zip -r mypackage.zip(得到的压缩文件) /home/(要压缩的目录)
-
递归解压整个压缩文件:unzip -d /opt/(要解压的目录) mypackage.zip(要解压的压缩文件)
-
将a.txt,b.txt压缩到a.tar.gz:tar -zcvf a.tar.gz a.txt b.txt
-
将整个目录打包到a.tar.gz:tar -zcvf a.tar.gz /home/
-
将a.tar.gz解压到当前目录:tar -zxvf a.tar.gz
-
将a.tar.gz解压到指定目录:tar -zxvf a.tar.gz -C /home/(注意:这里要解压到的目录必须存在)
9、文件/目录所有者:
-
查看文件所有者:ls -ahl
-
修改文件所有者:chown 用户名 文件名
-
递归修改目录下所有文件包括目录的所有者:chown -R 用户名 目录名
-
创建组:groupadd 组名
-
创建一个用户,并放入组:useradd -g 组名 用户名
-
查看文件所在组:ls -ahl
-
修改文件所在组:chgrp 组名 文件名
-
递归修改目录下所有文件包括目录的所在组:chgrp-R 组名 目录名
-
修改用户所在组:usermod -g 组名 用户名
-
修改文件权限:
①给abc文件所有者读写执行的权限,给同一组用户读权限,给其他用户读权限:chmod u=wrx,g=r,o=r abc
②给abc文件所有者除去执行权限,给同一组用户添加写权限:chmod u-x,g+w abc
③给abc文件所有用户添加写权限:chmod a+w abc
-
修改文件权限(数字方式:r:4,w:2,x:1):chmod 751 abc
二、高级指令:
1、定时任务调度:
-
操作步骤:
-
crontab -e
-
*/1 * * * * ls -l /etc >> /tmp/to.txt
-
保存退出后就会开始计时
-
每1分钟,就会执行ls -l /etc >> /tmp/to.txt这个命令
-
第一位代表一小时中的第几分钟,第二位代表一天中的第几小时,第三位代表一月中的第几天,第四位代表一年中的第几月,第五位代表一星期中的星期几(0和7都代表星期日)
-
-
-
-
-
定时调度shell脚本:
-
创建mytask.sh脚本:vim mytask.sh
-
写入要执行的命令:date >> /tmp/to.txt
-
修改mytask.sh脚本的权限为可执行:chmod 744 mytask.sh
-
进入任务调度:crontab -e
-
写任务调度命令:*/1 * * * * /home/mytask.sh
-
保存并退出::wq
-
-
crontab相关命令:
-
查看 当前有哪些任务调度:crontab -l
-
删除当前所有任务调度;crontab -r
-
重启任务调度:service crond restart
-
2、磁盘分区:
例:查询/opt目录的磁盘占用情况深度为1:du -ach --max-depth=1 /opt
-
查看磁盘分区指令:lsblk (记忆:老师不离开)
-
查看磁盘分区挂载指令:lsblk -f
-
磁盘情况查询:df -l 或 df -lh
-
查询某个目录占用磁盘情况:du -h /目录
-
-s 指定目录占用大小汇总
-
-h 带计量单位
-
-a 含文件
-
--max-depth=1 子目录深度
-
3、磁盘情况-工作实用指令:
-
统计/home/文件夹下文件的个数:ls -l /home | grep "^-" | wc -l
-
统计/home文件夹下目录的个数:ls -l /home | grep "^d" | wc -l
-
统计/home文件夹下文件的个数,包括子文件夹里的:ls -lR /home | grep "^-" | wc -l
-
统计文件夹下目录的个数包括子文件夹里的:ls -lR /home | grep "^d" | wc -l
-
以树状显示目录结构:tree(要先安装tree:yum install tree)
4、虚拟机增加硬盘步骤:
-
虚拟机添加硬盘:
-
-
-
分区:fdisk /dev/sdb
-
格式化:mkfs -t ext4 /dev/sdb1
-
挂载:先创建一个/home/newdis,挂载:mount /dev/sdb1 /home/newdisk
-
设置自动挂载(永久挂载):①vim /etc/fstab ②添加:/dev/sdb1 /home.newdisk ext4 defaults 0 0 ③保存并退出::wq
-
5、设置自动连接网络:
-
这样设置后重启即可完成设置,但是ip有可能会改变,所以下面进行固定ip配置:
-
vim /etc/sysconfig/network-scripts/ifcfg-eth0
-
修改文件内容:
-
重启网络服务:service network restart
-
6、显示系统进程:ps -aux
-
查看某一指定进程:ps -aux | grep XXX
-
查看某一进程的父进程:ps -ef | grep XXX
-
终止进程:kill 进程号
-
终止父进程下的所有子进程:killall 父进程
-
强制终止进程:kill -9 进程号
-
以树状显示进程:pstree -u或-p(-u:显示进程pid,-p:显示进程所属用户)
7、服务管理指令:service 服务名 【start | stop | restart | reload | status】(CentOs7.0后不再使用service,而是使用systemctl)
-
查看防火墙状态:service iptables status
-
查看服务两种方法:
-
setup
-
ls -l /etc/init.d/
-
-
查看服务运行级别:chkconfig --list
-
查看某一个服务运行级别:chkconfig --list | grep 服务名 或 chkconfig 服务名 --list
-
修改服务在某一级别下是否自启动状态:chkconfig --level [0,1,2,3,4,5,6] 服务名 on/off
8、服务监控指令:
-
查看指定用户的进程:top,然后按u,输入用户名
-
终止指定的进程:top,然后按k,输入进程号
-
指定系统状态更新的时间:top -d 10(10秒更新一次)
-
排序:在运行过程中,即top命令后,按相应指令(P:以CPU使用率排序,默认就是这个;M:以内存使用率排序;N:以PID排序;q:退出程序)
-
查看所有的网络服务:netstat -anp
-
查看某一个网络服务:netstat -anp | grep 服务名
9、RPM包管理:
-
查询系统安装的所有rpm软件:rpm -qa
-
查询系统是否安装了某个rpm文件:rpm -qa | grep 软件名
-
查询安装的rpm包软件的信息:rpm -qi 软件名
-
查询安装的rpm包软件装了哪些文件,并且查看安装到了哪些目录:rpm -ql 软件名
-
查询文件是输入哪个rpm软件包的:rpm -qf 文件名
-
卸载删除rpm软件:rpm -e 软件名
-
强制卸载删除rpm软件:rpm -e --nodeps 软件名
-
安装rpm包软件:rpm -ivh 软件包
10、yum包管理(需要联网):
-
查询yum服务器中所有的软件包:yum list
-
查询yum服务器中指定的软件:yum list | grep 软件名
-
安装yum包软件:yum install 软件包