快捷键
tab 补全名称
ctrl + c 停止当前进程
ctrl + r 查看命令历史
ctrl + l 清屏,与clear命令作用相同
ctrl + a 跳到命令头部
ctrl + e 跳到命令尾部
alt + f 向右移一个单词
alt + b 向左移一个单词
ctrl + u 删除光标前的命令串
ctrl + k 删除光标后的命令串
alias
alias ll='ls -l' #别名
一般可写在 ~/.bashrc 中,用户登录后就会生效
apt
basename
basename [pathname] [suffix]
basename [string] [suffix]
suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。
$ basename /tmp/test/file.txt
file.txt
$ basename /tmp/test/file.txt .txt
file
dirname /tmp/test/file.txt 获取目录名字
/tmp/test
cd
#切换目录 ,如果不带参数则切换到用户主目录 ~
cd
#切换上一个工作目录
cd -
date
echo "现在时间:`date '+%Y-%m-%d %T'`"
echo "昨天此时的时间:`date -d last-day '+%Y-%m-%d %T'`"
echo "明天此时的时间:`date -d last-day '+%Y-%m-%d %T'`"
echo "后天此时的时间:`date -d "+2 day" '+%Y-%m-%d %T'`"
date '+%Y-%m-%d %T'
date -d yesterday 查看昨天日期
date'+%Y-%m-%d %H:%M:%S' #接上日期字符串,显示具体的日期,然后通过+转换为具体的格式
date -s "2019-10-11 19:00:00" 修改时间
clock -w
date --help 查看使用说明
date -d yesterday +%y 以固定格式显示
du
#查看当前目录所有文件大小
du -sh /etc
-s: 总数
-h: 更好的显示,有单位
df
#查看系统中文件的使用情况
df -h
df -hT /dev/sda
-T :查看文件系统
expect
#!/bin/bash
expect<<-END
set timeout 600
spawn ssh root@192.100.3.87 "hostname -I"
expect {
"(yes/no)?" { send "yes\r"; exp_continue }
"*assword:" { send "root123\r" }
}
expect eof
END
- 支持tab 缩进
END 标记,可以是任意的字符
free
free -h 查看内存使用状况
iostat
https://www.cnblogs.com/ftl1012/p/iostat.html
iostat属于sysstat软件包。可以直接安装:yum install sysstat
$iostat #查看磁盘io
Linux 3.10.0-123.el7.x86_64 (yum) 07/30/2020 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.51 0.00 1.07 1.58 0.00 96.85
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
scd0 0.02 0.08 0.00 48 0
sda 13.93 252.06 65.42 146431 38002
dm-0 0.38 1.52 0.00 884 0
dm-1 10.76 213.24 61.83 123877 35921
# 【每隔2秒刷新显示,且显示3次】
iostat 2 3
hostname
hostname test 相当于 echo test > /proc/sys/kernel/hostname 临时性更改
永久性更改:
vim /etc/hostname。修改完之后需要reboot重启服务器永久生效。
history
history 查看历史命令
history 10 查看最近十条历史命令
lsblk
lsblk 查看硬盘结构
lsof
查看打开文件数
参考
lsof -i:6379 #指定端口 查看端口是否被占用
lsof -p pid|wc -l # 某个进程打开文件数
lsof
kill
localectl
#系统语系
localectl
#当前可用的语系
locale
#设置语系
localectl set-locale LANG=zh_CN.UTF-8
man
man ps
man cat
查看帮助文档
内部命令:help + 命令(help cd)
外部命令:man + 命令(man ls)
ps
ps -ef 查看系统中当前瞬间的进程信息快照
ps aux | sort -k4nr |head -n 10 #内存排名前十
ps -ef | grep myshell.sh 搜索myshell进程的信息
#使用ps命令找出占用内存资源最多的20个进程(数量可以任意设置)
ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20
ps --help all 查看使用方法
-A,-e:所有进程
-f:全格式,包含命令行
-H:显示树状结构,表示程序间的相互关系。
a:包括其他用户在内的所有tty
x:显示所有程序,不以终端机来区分。
u:以用户为主的格式来显示程序状况。
f:用ASCII字符显示树状结构,表达程序间的相互关系
e:列出程序时,显示每个程序所使用的环境变量。
c:列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
#查看某一个程序线程的cpu的使用率
ps H -eo pid,tid,%cpu|grep 32654
read
#从标准输入读取值
read
#将标准输入值 存到var变量中,不写,默认变量位REPLY
read var
#读入多个变量
read a b
#提示,将值放到var变量中
read -p "Enter name:" var
#把单词清单读入arrayname的数组里。输入信息用空格隔开数组的每个元素。
read -a arrayname
#允许输入包含反斜杠
read -r line
#指定读取等待时间为3秒。
read -t 3
#从输入中读取两个字符并存入变量var,不需要按回车读取
read -n 2 var
#用定界符“:”结束输入行。
read -d ":" var
#输入值,不显示在控制台
read -p "password:" -s pwd
rpm
#查看是否安装了yum工具
rpm -qa|grep yum
# -ivh 安装 -e 卸载
stat
stat test.txt 查看文件状态 如修改时间 访问时间
shutdown
shutdown 系统关机
-r 关机后立即重启
-h 关机后不重新启动
halt 关机后关闭电源
reboot 重新启动
systemctl
实用systemctl -help可以看到该命令可以分成以下部分:
part 1:查询或发送控制命令给systemd服务
part 2:管理单元服务的命令
part 3:服务文件的相关命令
part 4:任务、环境、快照相关命令
part 5:systemd服务的配置重载
part 6:系统开机关机相关的命令
1. 列出所有可用单元
# systemctl list-unit-files
2. 列出所有运行中单元
# systemctl list-units
3. 列出所有失败单元
# systemctl -failed
4. 检查某个单元(如 crond.service)是否启用
# systemctl is-enabledcrond.service
5. 列出所有服务
# systemctl list-unit-files -type=service
6. Linux中如何启动、重启、停止、重载服务以及检查服务(如 httpd.service)状态
# systemctl start httpd.service
# systemctl restart httpd.service
# systemctl stop httpd.service
# systemctl reload httpd.service
# systemctl status httpd.service
注意:当我们使用systemctl的start,restart,stop和reload命令时,终端不会输出任何内容,只有status命令可以打印输出。
7. 如何激活服务并在开机时启用或禁用服务(即系统启动时自动启动mysql.service服务)
# systemctl is-active mysql.service
# systemctl enable mysql.service
# systemctl disable mysql.service
8. 如何屏蔽(让它不能启动)或显示服务(如ntpdate.service)
# systemctl mask ntpdate.service
ln -s ‘/dev/null”/etc/systemd/system/ntpdate.service’
# systemctl unmask ntpdate.service
rm ‘/etc/systemd/system/ntpdate.service’
9. 使用systemctl命令杀死服务
# systemctl killcrond
10. 列出所有系统挂载点
# systemctl list-unit-files –type=mount
11. 挂载、卸载、重新挂载、重载系统挂载点并检查系统中挂载点状态
# systemctl start tmp.mount
# systemctl stop tmp.mount
# systemctl restart tmp.mount
# systemctl reload tmp.mount
# systemctl status tmp.mount
12. 在启动时激活、启用或禁用挂载点(系统启动时自动挂载)
# systemctl is-active tmp.mount
# systemctl enable tmp.mount
# systemctl disable tmp.mount
13. 在Linux中屏蔽(让它不能启用)或可见挂载点
# systemctl mask tmp.mount
ln -s ‘/dev/null”/etc/systemd/system/tmp.mount’
# systemctl unmask tmp.mount
rm ‘/etc/systemd/system/tmp.mount’
14. 列出所有可用系统套接口
# systemctl list-unit-files –type=socket
15. 检查某个服务的所有配置细节
# systemctl showmysql
16. 获取某个服务(httpd)的依赖性列表
# systemctl list-dependencies httpd.service
17. 启动救援模式
# systemctl rescue
18. 进入紧急模式
# systemctl emergency
19. 列出当前使用的运行等级
# systemctl get-default
20. 启动运行等级5,即图形模式
# systemctl isolate runlevel5.target
或
# systemctl isolate graphical.target
21. 启动运行等级3,即多用户模式(命令行)
# systemctl isolate runlevel3.target
或
# systemctl isolate multiuser.target
22. 设置多用户模式或图形模式为默认运行等级
# systemctl set-default runlevel3.target
# systemctl set-default runlevel5.target
23. 重启、停止、挂起、休眠系统或使系统进入混合睡眠
# systemctl reboot
# systemctl halt
# systemctl suspend
# systemctl hibernate
# systemctl hybrid-sleep
对于不知运行等级为何物的人,说明如下。
Runlevel 0 : 关闭系统
Runlevel 1 : 救援,维护模式
Runlevel 3 : 多用户,无图形系统
Runlevel 4 : 多用户,无图形系统
Runlevel 5 : 多用户,图形化系统
Runlevel 6 : 关闭并重启机器
type
type service cd systemctl 查看这三个命令所在的目录,
-p :输出命令的路径
top
top 查看实时刷新的系统进程信息
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
内容解释:
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
P:按%CPU使用率排行
T:按TIME+排行
M:按%MEM排行
top
之后按相应按键
timedatectl
#查看当前时区与时间等信息
timedatectl
#列出时区
timedatectl list-timezones
#设置时区
timedatectl set-timezone Asia/Shanghai
#设置时间
timedatectl set-time "2019-09-01 23:00"
uname
uname 系统信息
uname
-a 所有信息
-s print the kernel name
-r 打印内核版本
vmstat
vmstat 查看整个机器的 CPU,内存,IO的使用情况
vmstat 2 5 每2秒采集一次 总共采集五次
输出参数解释:
(1)进程procs:
r:在运行队列中等待的进程数 。
b:在等待io的进程数 。
(2)Linux 内存监控内存memoy:
swpd:现时可用的交换内存(单位KB)。
free:空闲的内存(单位KB)。
buff: 缓冲去中的内存数(单位:KB)。
cache:被用来做为高速缓存的内存数(单位:KB)。
(3) Linux 内存监控swap交换页面
si: 从磁盘交换到内存的交换页数量,单位:KB/秒。
so: 从内存交换到磁盘的交换页数量,单位:KB/秒。
(4)Linux 内存监控 io块设备:
bi: 发送到块设备的块数,单位:块/秒。
bo: 从块设备接收到的块数,单位:块/秒。
(5)Linux 内存监控system系统:
in: 每秒的中断数,包括时钟中断。
cs: 每秒的环境(上下文)转换次数。
(6)Linux 内存监控cpu中央处理器:
cs:用户进程使用的时间 。以百分比表示。
sy:系统进程使用的时间。 以百分比表示。
id:中央处理器的空闲时间 。以百分比表示。
wall
通知所有用户
wall `date`
wall 马上关机
watch
#默认1s执行一次lvs命令
watch lvs
watch -n 2 lvs
watch -n2 lvs
-n :指定秒数
which
which service
which pwd
#which命令的原理是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
#也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令,可以通过echo命令显示PATH变量的值,即是which命令查找的路径范围。
whereis
whereis service
whereis pwd
-b:显示可执行文件
who
查看所有登录的用户
[root@lms-test ~]# who
root pts/0 2021-01-21 15:49 (192.100.5.115)
root pts/1 2021-01-21 17:32 (192.100.5.115)
#我是谁
who am i
whoami
yum
yum remove docker 卸载
yum install docker 安装
yum info docker 查看docker包的仓库信息
yum search docker 搜索
yum repolist 列出yum源
yum upgrade
yum list [docker] 列出一个或一组软件包
yum list installed [docker]列出一个或一组软件包(已安装) rpm -qa |grep openstack