Linux常用指令

运行级别
init 0  //切换到系统停机状态;系统默认运行级别不能设为0,否则不能正常启动
init 1  //切换到单用户工作状态;root权限,用于系统维护,禁止远程登录
init 2  //切换到多用户状态(没有NFS),没有网络服务
init 3  //切换到多用户状态有网络服务,登录后进入控制台命令行模式
init 4  //切换到系统未使用,保留给用户
init 5  //切换到图形界面
init 6  //切换到系统重启,系统默认运行级别不能设为6,否则不能正常启动
vim /etc/inittab  //修改服务的运行级别
关机重启
shutdown -h now  //立即关机
shutdown -h 1    //表示1分钟以后关机
shutdown -r now  //立即重启
halt             //直接使用,效果等价于关机
reboot           //重启系统
sync             //把内存中的数据同步到磁盘

当我们关机或者重启时,都应该先执行一下sync指令,把内存中的数据写入磁盘,防止数据丢失

显示网络设备
ifconfig  //显示网络设备
帮助指令
man 命令或配置文件  //获得帮助信息
help 命令           //获得shell内置命令的帮助信息
文件目录类
pwd     //显示当前工作目录的绝对路径
ls -a   //显示当前目录所有的文件和目录,包括隐藏的
ls -l   //以列表的方式显示信息
cd ~    //切换到当前登录用户的主目录
cd ~tom //切换至指定用户的主目录;例切换到指定用户tom的主目录
cd -    //切换至上次所在目录
cd .    //切换至当前目录
cd ..       //切换至上级目录
mkdir dog   //创建一个名为dog的新目录
mkdir -p animal/cat //递归创建所有目录,一次创建多级目录
rmdir dog //删除名为dog的空目录
rmdir animal/cat //删除animal文件夹下名为cat的空目录
rmdir -p animal/pig //递归删除空目录
rm 1.txt //删除名为1.txt的文件,有提示
rm -f 1.txt //强制删除名为1.txt的文件,不提示 
rm -r dog //递归删除整个文件夹,dog为非空目录,有提示
rm -rf dog //递归删除整个文件夹,dog为非空目录,不提示
touch dog/1.txt //在dog文件夹下创建文件1.txt
cp dog/1.txt cat //将dog文件夹下的1.txt复制到cat文件夹下,提示是否覆盖原有文件
cp -r dog cat //递归复制整个文件夹,将dog文件夹整个复制到cat文件夹下
cp dog/1.txt cat //将dog文件夹下的1.txt复制到cat文件夹下,强制覆盖原有文件不提示
cp -r dog cat //递归复制整个文件夹,强制覆盖原有文件不提示
mv dog dog1 //重命名,将目录dog重命名为dog1
mv dog/a.txt cat //移动文件,将dog文件夹下的a.txt移动到cat文件夹下
cat -n config //查看config文件的内容,显示行号
more config  //以全屏幕得方式按页显示文本文件得内容
cat -n config | more //分页查看config文件的内容
less config //分屏查看config文件的内容,q退出
head -n 5 config  //查看文件头5行内容,5可以是任意数
tail -n 5 config  //查看文件后5行内容,5可以是任意数
tail -f config //实时追踪该文档的所有更新,工作经常使用;ctrl+c退出tail命令
ls -l > 1.txt  //将列表的内容写入到文件1.txt(覆盖)
ls -l >> 1.txt  //列表的内容追加到文件1.txt的末尾
cat config > 1.txt  //将文件config的内容覆盖到1.txt
echo Linux  //输出Linux到控制台
ln -s dog/1.txt linkTodog  //创建一个linkTodog的软连接,连接到dog/1.txt
rm -rf linkTodog  //删除软链接linkTodog
history     //、查看已经执行过的历史命令
时间日期类
date //显示当前日期
date +%Y //显示当前年份
date +%m //显示当前月份
date +%d  //显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S" //显示年月日时分秒
date -s "2019-11-22 17:13:50"  //设置系统当前时间为"2019-11-22 17:13:50"
cal //显示本月日历
cal 2020 //显示2020年日历
搜索查找类
find /root/dog -name 1.txt //按照指定的文件名查找模式查找文件
find -user tom //查找属于指定用户名所有文件
find / -size +20M //按照指定的文件大小查找文件
locate 1.txt  //快速定位文件路径
cat config | grep -n yes //请在config文件中,查找yes所在行,并且显示行号,区分大小写
cat config | grep -ni yes  //请在config文件中,查找yes所在行,并且显示行号,不区分大小写

由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库
updatedb

压缩解压类
gzip 1.txt //将1.txt文件进行压缩
gunzip 1.txt.gz   //将文件1.txt.gz进行解压缩
zip -r mypackage.zip /home/  //将home下所有的文件进行压缩成mypackage.zip
unzip -d /opt/tmp/ mypackage.zip  //将mypackage.zip解压到指定/opt/tmp/目录
tar -zcvf a.tar.gz 1.txt 2.txt //压缩多个文件,将1.txt和2.txt压缩成a.tar.gz

当我们使用gzip对文件进行压缩后,不会保留原来的文件

用户和用户组管理类
more /etc/passwd	//在文件 /etc/passwd中查看所有的用户信息
useradd tom //添加用户tom
useradd -d /dog erha //给新创建的用户名erha指定家目录dog
useradd -g root tom //创建tom用户并将tom放入root组中
passwd -S tom //查看用户tom密码的状态
passwd -l tom //锁定用户
passwd -u tom //解锁用户
echo "123" | passwd --stdin tom //调用管道符,给用户tom设置密码"123"
usermod -L tom //临时锁定用户
usermod -U tom //解锁用户
usermod -G root tom //把用户加入组
usermod -c 成为超级用户 tom //修改用户说明
usermod -d /home/jack tom //改变该用户登录的初始目录
chage tom  //修改用户tom密码信息
chage -l tom  //查看用户tom密码状态
userdel tom //删除用户tom
userdel -r tom //删除用户tom及用户的家目录
id tom //查询用户tom的UID、GID和附加组信息
su tom //用户切换
su - tom //用户切换
exit  //返回到原来的用户
groupadd animals //添加animals用户组
groupdel animals //删除用户组
chgrp tom 1.txt //修改文件或目录的所属组
权限管理
chown tom 1.txt //修改文件或目录的所有者
chown tom:tom 1.txt //同时修改文件或目录的所有者和所属组
chmod 权限值 文件或目录 //使用数字修改文件或目录权限
chmod [u/g/o/a][+/-/=][r/w/x] //文件目录名 使用字母修改文件或目录权限
任务调度
crontab -e //编辑crontab定时任务
*/n * * * * //每隔n分钟执行一次任务(分,时,天,月,星期)
crontab -r //终止任务调度
crontab -l //列出当前有哪些任务调度
service crond restart //重启任务调度
************
 例:每隔一分钟将当前日期和日历都追加到mycal文件中
//首先编写文件mytask.sh
data >> mycal
cal >> mycal
//给mytask.sh一个可以执行权限
chmod 744 mytask.sh
//输入任务到调度文件
crontab -e
*/1 * * * * mytask.sh
磁盘管理
lsblk -f //查看系统的分区和挂载的情况
du -ach --max-depth=1 /opt //查询/opt目录的磁盘占用情况,深度为1。
df -h //查询系统整体磁盘使用情况
ls -l /home | grep "^-" | wc -l //统计/home文件夹下文件的个数
ls -l /home | grep "^d" | wc -l //统计/home文件夹下目录的个数
ls -lR /home | grep "^-" | wc -l //统计/home文件夹下文件的个数,包括子文件夹里的
ls -lR /home | grep "^d" | wc -l //统计/home文件夹下目录的个数,包括子文件夹里的
tree //以树状显示目录结构
************
如何增加一块硬盘
fdisk /dev/sdb //对硬盘sdb进行分区
mkfs -t ext4 /dev/sdb1 //格式化
mount /dev/sdb1 /home/newdisk  //挂载
umount /dev/sdb1 /home/newdisk //卸载
软件安装
rpm -qa //查询所安装的所有rpm软件包
rpm -qa | more //分页显示
rpm -qa | grep firefox //查看firefox的rpm软件包
rpm -q 软件名 //查询软件包是否安装
rpm -qi 软件名 //查询软件包信息
rpm -ql 软件名 //查询软件包中的文件
rpm -qf 文件全路径名 //查询文件所属的软件包
rpm -e 软件包名 //删除软件包
rpm -e --nodeps 软件包名 //强制删除软件包
rpm -ivh BPM包全路径名称 //安装rpm包(i=install安装;v=verbose提示;h=hash进度条)
yum list | grep 软件名 //查询yum服务器是否有需要安装的软件
yum install 软件名 //安装指定的yum包
进程管理
ps -aus //查看进程
ps -ef //以全格式显示当前所有的进程
kill 4090 //过进程号杀死进程
kill -9 4090 //通过进程号强迫进程立即停止
killall sshd //通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
pstree -p //查看进程树,显示进程的PID
pstree -u //查看进程树,显示进程的所属用户
服务管理
systemctl 服务名 [start|stop|restart|reload|status] //服务管理指令
service iptables status     //查看防火墙状态
ls -l /etc/init.d/          //列出系统有哪些服务
chkconfig --list                 //查看服务
chkconfig --list | grep sshd    //查看服务
chkconfig sshd --list           //查看服务
chkconfig --level 5 sshd on/off //将服务在运行级别为5下设置为自启动或不启动
sudo service iptables status    //查看防火墙状态
sudo chkconfig iptables off     //永久关闭防火墙
top -d 10       //动态监控进程指定top命令每隔10秒更新
top -i          //动态监控进程使top不显示任何闲置或者僵死进程
top -p          //动态监控进程通过指定监控进程ID来仅仅监控某个进程的状态
P               //与top交互操作,以CPU使用率排序,默认就是此项
M               //与top交互操作,以内存的使用率排序
N               //与top交互操作,以PID排序
q               //与top交互操作,退出top
netstat -an     //查看系统网络情况,按一定顺序排列输出
netstat -p      //查看系统网络情况,显示哪个进程在调用

chkconfig 重新设置服务后自启动或关闭,需要重启机器reboot才能生效


持续更新

原文地址:https://www.cnblogs.com/wangxiaojun1/p/11888356.html