目录
ctrl + l --相当于clear
ctrl + u --删除当前输入的指令
-r 递归删除文件夹
其他常用指令
ifconfig --IP地址查看
vim 文件名
ll
ls
ll 与 ls -l 效果相同
clear
set +H
echo $PATH --显示环境变量路径
echo 文字 or echo "文字" 效果一致
fsck -y 目录 --Linux自动修复指定目录
ls -a --显示隐藏文件(以.开头的文件)
ls -lh 目录 --能显示文件具体大小(例如20M)
ls -ahl --显示所有文件的所有者(-al效果一致)
init 数字 --切换运行级别(0-6)
source /etc/profile --使刚配置的环境变量立即生效而不需要重新注销用户
logout --注销用户
make --编译
make install --安装
wget URL --从该URL下载资源
env --显示所有变量
export PATH=$PAHT:路径 --临时环境变量
shell
shell开头需要写 #!/bin/bash
脚本名可以不带后缀
变量声明时不用加 $ ,但在调用时需要加 $
等号两侧不能有空格
变量名称一般习惯大写
变量名称可以由字母、数字和下划线组成,但是不能以数字开头
./脚本名 or 脚本绝对路径 --执行shell脚本(需要运行权限),但不能直接输入脚本名(会提示command not found)
sh 脚本名 or sh 脚本路径(相对绝对路径都可以) --执行shell脚本(不推荐,不需要运行权限)
set --查看当前shell中所有变量
unset 变量名 --销毁变量
readonly 变量名 --静态变量不可被unset example : readonly A=100
$(linux中的指令) or `linux中的指令` --可以将指令执行后的内容返回给shell变量
echo $变量名 or echo "$变量名" --输出变量的值
:<<! 一堆shell语句 ! --多行注释
export 环境变量 --定义环境变量(不用加 $)
$n --表示第n个位置参数(n从0开始)
$# --表示有几个参数
在shell中 ./脚本名 & --表示后台运行该脚本
expr 表达式 --计算表达式(shell脚本内外都可以执行) example : expr 2 + 3
$((表达式)) or $[表达式] or `expr 表达式`
yum
yum list --列出yum服务器上所有的rpm包
yum install 软件包名 --从yum服务器上下载指定的rpm包
rpm
rpm -qa | grep 软件名 --查询Linux是否安装该软件
rpm -qi 软件包名 --查询软件包信息
rpm -ql 软件包名 --查询rpm包的文件安装路径
rpm -qf 文件路径 --查询文件所属的软件包
rpm -e 软件包名 --删除该软件包
rpm -ivh 安装包名 --安装
rpm -e --nodeps 软件包名 --强制删除
服务管理
setup --管理服务(tab切换选项,Enter确定,空格切换服务的关闭和开启)
service 服务名 [start | stop | restart | reload | status] --服务管理
ls -l /etc/init.d/ --列出系统所有服务
chkconfig --list --查看系统服务在各个运行级别下的自启动情况
chkconfig 服务名 --list or chkconfig --list | grep sshd --查看该系统服务在各个运行级别下的自启动情况
chkconfig --level n 服务名 on/off --在该运行级别下是否自启动该服务
chkconfig 服务名 on/off --在所有运行级别下是否自启动该服务
netstat -anp --查看系统网络情况 iptables -L -n --line-number --查看端口占用情况
/etc/sysconfig/iptables --端口配置信息文件
进程管理
ps -aux | more --查看所有的进程信息(且为分页查看)
ps -ef --可查看父进程
kill PID --终止进程
kill -9 PID --强制终止进程
Killall 进程名称 --终止所有该进程以及其子进程
pstree -p --以树状形式显示进程和PID
pstree -u --以树状形式显示进程和进程所属的用户
top --动态监控进程(按u:查看指定用户进程,按k:终止进程,按q:退出监控,按P(大写):按CPU占用排序,按M(大写):按内存占用排序,按N(大写):按PID排序)
top -d n --每n秒动态刷新一次进程
磁盘查询
lsblk --查看分区情况
df -h or df -lh or df -l --查看系统整体磁盘使用情况
lsblk -f --查看系统分区和挂载情况(记忆方法:老师不离开)
fdisk -l --查看磁盘信息
tree 目录 --以树状形式查看目录(需要通过yum安装tree包)
du -ach --max-depth=n 文件夹路径 --查询指定文件夹下深度为n的磁盘占用情况
wc -l --统计行数 example : ls -lR /home | grep "^-" | wc -l or ls -l /home | grep "^d" | wc - l
系统磁盘分区
fdisk 磁盘路径 --为磁盘分区
mkfs -t 文件扩展系统类型 分区路径 --格式化分区 example : mkfs -t ext4 /dev/sdb1
mount 分区路径 需挂载的文件夹路径 --挂载分区
/etc/fstab 记录了系统分区信息
mount -a --自动挂载
umount 分区名称或者是挂载目录 --卸载分区(如果启动了自动挂载则重启后依然挂载目录)
注意上图是gpt分区不是gtp分区(图片有误)。
实时任务调度
crontab -e --编辑任务调度(关机之后不会执行,且每个用户独立)
crontab -l --显示所有任务
crontab -r --终止(删除)所有任务
service crond restart --重启任务调度
下图为任务调度参数设置说明:
文件权限管理
x = 1, w = 2, xw = 3, r = 4, rx = 5, rw = 6, rwx = 7
只有x只能进入目录,不能查看目录内容
只有r甚至不能进入目录
更新普通文件的组权限后,该组用户需要重新登录后才能更新该配置
文件所在组和用户所在组不一样
chown 用户名 文件名 --将该文件的所有者转变成该用户 (Root用户才能执行)
chgrp 组名 文件名 --改变该文件所属的组
chmod 权限选项 文件名 --改变文件权限(文件所有者才能执行) example : chmod u=rwx,g+w,o=x abc.txt / chmod a+rx abc.txt / chmod 755 /home/tom/abc
chown -R 用户名 文件夹 --改变该文件夹下的所有文件的文件所有者(文件所在组不变)
chgrp -R 组名 文件夹 --改变该文件夹下的所有文件的文件所在组 example : chgrp -R police . (.表示当前目录)
chown -R 用户名:组名 文件夹 --改变该文件夹下的所有文件的文件所有者和文件所在组 example : chown -R root:root .
解压缩文件
gzip 文件 --压缩文件(.gz,源文件不会保留)
gunzip 文件 --解压缩文件
zip XXX.zip 目标文件 --压缩文件成XXX.zip(源文件保留)
zip -r 目录/m.zip 需要压缩的文件夹路径 --压缩整个文件夹成m.zip(-r 递归压缩,用于压缩文件夹,源文件保留) example :zip -r /root/mypackage.zip /home/
unzip -d 解压后的存放目录 ZIP文件路径 --解压ZIP文件(-d能指定解压后文件的存放目录)
tar -zcvf m.tar.gz 文件名1 文件名2 ... --将文件1、2……打包压缩成m.tar.gz(保留源文件且选项顺序不能变)
tar -zcvf m.tar.gz 需要打包压缩的文件夹 --将整个文件夹打包压缩为m.tar.gz example :tar -zcvf myhome.tar.gz /home/
tar -zxvf m.tar.gz or tar -xvf m.tar.gz --解压m.tar.gz到当前目录(压缩包不消失且选项顺序不能变)
tar -zxvf m.tar.gz -C 解压后文件存放路径 or tar -xvf m.tar.gz -C 解压后文件存放路径 --将m.tar.gz解压到目标目录(压缩包不消失且选项顺序不能变且指定解压的目录必须存在)
tar -xvf m.tar --可解压m.tar压缩包
查找文件
find 目录 -name 文件名 --按名字搜索
find 目录 -user 用户名 --按文件的归属用户名搜索
find 目录 -size +nM/-nM/nM --按文件大小搜索(大于nM/小于nM/等于nM)example : find / -size +20M <单位可为:M,k,c,w,b>
Ctrl + c 可终止搜索
updatedb --更新文件数据库
locate 文件名 --查找文件(效率较高,但需要手动更新文件数据库)
文件内容 | grep -ni m --在该文件内容中匹配m关键字(选项i表示忽略大小写,选项n表示显示匹配行号)
grep表示过滤查找,管道符 | 表示将前一个命令的处理结果输出传递给后面的指令处理
时间日历
date
date "+%Y年%m月%d日 %H:%M:%S" (+ 不可省略)
date -s "2020-9-20 10:11:12" --设置系统时间
cal --日历
cal n --显示n年的一整年日历
软链接
ln -s 目标目录或文件 链接名称 --创建软链接(通过cd 新链接名称切换)
rm -rf 软链接名称 --删除软链接(千万不要在最后加 / ,否则会删除目标目录下的所有文件)example : rm -rf LinkToRoot
历史指令记录
history --查看所有历史指令(不论指令是否错误)
history n --查看最近输入的n条历史指令
!n --执行历史记录中编号为n的指令
系统操作
sync --数据同步(每次重启或者关机前最好要使用以防数据丢失)
halt --关机
reboot --重启
shutdown -h now --立即关机
shutdown -h 1 --一分钟后关机
shutdown -r now --立即重启
Linux帮助指南
man 指令
按q退出帮助文档
help 指令
路径操作
pwd
cd
cd ~ --切换到当前用户的家目录中
cd .. or cd ../
文件目录操作
touch 文件名1 文件名2 ... --一次性可创建多个文件
mkdir
mkdir -p --一次创建多级目录
rm 文件(不能删除文件夹)
\rm 文件 or rm -f 文件 --不提示地删除文件
rm -rf 目录名 --强制删除该文件夹
cp 源文件名 目标文件夹 --复制文件到目标文件夹
cp -r 源文件夹 目标文件夹 --递归复制文件夹中的文件,按y确定,回车或者n是否定
\cp -r 文件夹 文件夹 --强制复制不提示
rm -rf /* --清空磁盘,递归删除系统中所有文件
mv 原文件名 目标文件名 --重命名
mv 原文件名 目标目录 --移动文件(剪切)
文件浏览指令
cat 目录 --查看文件
cat -n 目录 --显示行号
cat -n 目录 | more --分页显示(空格下一页,回车下一行)按q退出
more 目录 --查看文件 (Ctrl + B返回上一屏,Ctrl + F切换到下一屏,=输出当前行号,:f输出文件名和当前行号)
less 目录 --查看文件(根据需要显示的内容来进行加载,对于显示大型文件具有较高的效率)
head -n m 目录 --输出目标文件前m行内容
head 目录 --默认输出目标文件前10行内容
tail 目录 --默认输出目标文件后10行内容
tail -n m 目录 --输出目标文件后m行内容
Ctrl + c --强制退出
tail -f 文件 --实时监控文件
文件写入指令
> 覆写
>> 从文件尾部续写(追加)
echo 内容 > 目标文件名
ls -l >> 目标文件名
cat 目录 > 目标目录
用户和组
useradd -d 家目录 用户名 (若该目录下没有对应文件夹,系统会自动创建该文件夹)
useradd 用户名 (自动创建与该用户名相同的组名和家目录)
passwd 用户名
pwd --显示当前所在路径
su root
su - 用户名 --切换用户
userdel -r 用户名 (家目录一并删除)
userdel 用户名 (保留其家目录)
whoami --显示当前用户
id 用户名
useradd -g 组名 用户名
usermod -g 组名 用户名 (修改用户的组,Root用户才有权限执行,该用户重新登录配置才更新)
usermod -d 目录名 用户名 -改变该用户登录的初始目录
groupadd 组名 --新建组
groupadd 组名 --删除组
/etc/passwd --用户配置信息
/etc/shadow --密码配置信息
/etc/group --组配置信息
/etc/inittab --运行级别配置信息
修改Root密码
开机->按Enter->按e(edit)->高亮第二个选项按e->输入空格和1后按回车(运行级别为1,进入单用户模式)->b(boot开机)
passwd root --修改Root密码
Vim
正常模式 Esc
插入模式(编辑模式,按i或者a进入)
命令模式按 : or / 进入
yy --复制
dd --删除
p --粘贴
数字 + yy
数字 + dd
:wq :q :q!
:noh --取消高亮
/keywords --搜索匹配keywords
n --定位到下一个搜索匹配
G (大写)--定位到文末
gg(小写)--定位到文首
:set nu --显示行号
:set nonu --取消行号显示
u --撤销
Ctrl + r --反撤销
数字 + Enter --到第(光标当前行数+该数字)行
CentOS 7.9 补充命令
ip addr 取代 ifconfig
service firewalld status --查看防火墙状态
firewall-cmd --zone=public --list-ports --查看所有端口
firewall-cmd --zone=public --add-port=80/tcp --permanent --开启80端口
firewall-cmd --reload --重新加载防火墙
systemctl enable 服务名 --设置自启动
curl URL -测试该URL是否能使用
Ubuntu 20.04 补充命令
sudo password --修改root密码
su 用户名 --切换用户
sudo linux指令 --让普通用户以root身份执行该指令(不是所有指令都能执行)
timedatectl --查看当前时区
timedatectl list-timezones --列出所有时区
timedatectl set-timezone 时区名 --修改时区 example :timedatectl set-timezone Asia/Shanghai
apt install 包名 --安装指定包名
apt-get update --更新源配置
apt-get remove 包名 --删除该包
ufw enable --开启防火墙
ufw reload --重启防火墙
ufw allow 端口号 --开启该端口
ufw status --查看端口开放情况
ssh 用户名@ip地址 --远程连接另一台Linux主机 example : ssh root@192.168.182.128
exit or logout --可退出ssh远程连接
ssh为openssh服务的客户端,sshd为openssh服务的服务端
exit or logout --可退出远程连接
dpkg -l --查看所有已安装的软件包
dpkg -L 软件包名 --查看系统中已安装的软件包的位置
dpkg -s 软件包名 --查看系统中已安装的软件包的具体信息