linux:基本指令
指令标准格式
指令主体 【选项】【操作对象】
文件操作
ls
1、ls
列出当前工作目录下的所有文件/文件夹的名称
2、ls 路径
列出指定路径下的所有文件/文件夹的名称
路径:
1、相对路径
会用到 ./ 【表示当前目录】 和 ../【表示上一级目录】
2、绝对路径 :不需要参照物,直接从根寻址
3、ls 【选项】 路径
列出指定路径下的文件/文件夹的名称,并以指定的格式显示
例如:
ls -l 路径 ls -la 路径
-l :表示list,表示以详细表的形式展示
-a:显示所有文件/文件夹(包含隐藏文件/文件夹)
-t:按创建时间进行排序
-R:列出当前目录以及其子目录
注释:“-”表示对应的文档类型为文件,“d”表示文档类型是文件夹
注释:在linux中隐藏文档一般是以 “.”开头
4、ls -lh 路径
列出指定路径下的文件/文件夹的名称,并以列表的格式显示文档大小的时候以可读性较高的形式显示
pwd
print working direction,打印当前工作目录
cd
change directory 改变路径
注释:cd ~:切换到当前用户的家目录
mkdir
mkdir 路径【可以是文件夹名/包含文件夹名的完整路径】:make directory ,创建目录
注释:
mkdir -p 路径 :强行创建没有的文件夹
mkdir 路径1 路径2 路径3 :也同时创建多个文件夹
touch
touch 文件路径 :创建文件
cp
cp 被复制的文档路径 文档要复制到的路径 :复制文件/文件夹到指定位置
-p:复制时,文件的信息(创建时间、所属组、所有者等不变)
注释:
cp -r 被复制的文档路径 文档要复制到的路径:复制文件夹 【目录】
mv
mv 被移动文件/文件夹的位置 移动的位置 :移动、重命名 【不会更改信息(创建时间、所属组、所有者等不变)】
mv -r 目录 目录 :移动目录
rm
rm 选项 需要移除的文档路径
选项:
-f :force,强制删除,不提示
-r:递归,删除文件夹
注释:
删除文件夹下相同特征的文件 :使用通配符 “ * ”
vim
vim 文件路径:打开一个文件(可以不存在)
注释:
退出打开文件:shift+英文冒号,输入 q 回车
echo
输出重定向
将输出结果保存在指定文件中(可以不存在)
> :覆盖输出
>>:追加输出
ln
软硬链接
ln 文件 链接名 :软链接,相当于快捷键
ln -s 文件 链接名 :硬链接 ,相当于复制文件
cat
cat 文件位置 :查看文件
cat 文件1位置 文件2位置 ... > 合并后的文件位置:合并文件
head
head -n 文件路径 :查看一个文件的前n行,如果n不定,则默认前10行
tail
tail -n 文件路径 :查看一个文件的后n行,如果n不定,则默认前10行
tail -f 文件路径 :查看一个文件的动态变化内容【不能是人工修改】
less
less 需要查看文件的路径 :查看文件,以较少的内容输出,按辅助键(数字+回车、空格+上下)
more
more 需要查看文件的路径 :查看文件,以较多的内容输出,按辅助键(数字+回车、空格+上下)
wc
wc -l 需要统计的文件路径:统计文件中的内容信息,行数
-w :单词数
-c :字节数
date
date :输出形式:2020年 05月 27日 星期三 19:42:40 CST
date +%F 相当于:date "+%Y-%m-%d" 输出形式:2020-05-27.
date "+%F %T" 相当于:date "+%Y-%m-%d %H:%M:%S" ,引号表示使 “年月日时分秒”成为一个不可分割的整体 输出形式:2020-05-27 19:46:38
date -d "+1 day" "+%Y-%m-%d %H:%M:%S" :输出之前或之后的某个时间 输出形式:2020-05-28 19:51:34
注释:
符号可选值:+(之后)、-(之前)
单位可选值:day(天)、month(月)、year(年)
ntpdate
需要先安装 :yum install -y ntpdate
ntpdate -u 时间服务器地址 :为本地服务器同步时间地址
cal
cal 相当于:cal -l :直接输出当前月的日历
cal -3 :输出上一个月 、本月、下一个月的日历
cal -y 年份 :输出某一年的日历
clear
clear 或者 Ctrl+L :清除终端中存在的命令和结果(不是真实清除)
注释:
windows下清除:cls
管道符
一般用于“过滤”,不能单独使用、辅助使用
ls / | grep s :输出根目录下包含s字母的文档名
注释:
1、以管道为分界线,前面的命令有输出,后面需要先输入,然后在过滤,最后输出
2、grep:用于过滤
ls | wc -l :统计该目录下文档的个数
查看资源
df
df -h :表示以可读性较高的形式展示磁盘空间大小
free
free -m : 以M为单位查看内存使用情况
注释:swap:用于临时内存,当系统真是内存不够时,可以临时使用磁盘空间使用
hostname
hostname :输出完整主机名
hostname -f :输出当前主机名中的FQDN(全限定域名)
说明:永久修改:/etc/sysconfig/network
id
查询一个用户的基本信息(用户id、用户组id、附加组id)
id :显示当前用户的基本信息
id 用户名 :显示指定用户的基本信息
验证信息正误?
/etc/passwd :验证用户信息
/etc/group :验证用户组信息
history
查看已经执行过的历史命令,也可以执行历史命令
!数字 :执行history中的命令
whoami
whoami :显示当前用户名 一般用于shell脚本,用于记录当前操作的用户名方便记录日志
w
w -f :查看当前登录系统的用户,以及使用时间
uptime
du
du -sh 目录路径 :查看目录的真实大小
-s :只显示汇总大小
-h:以较高可读性的形式显示
du -sh /bin :查询/bin 目录的真实大小
find
find 路径范围 选项 选项值 :查找文件
-name :按文档名称进行搜索 (支持模糊查询)
-type: 按文档类型进行搜索 【“-”表示文件(使用find时用f代替) 、“d”:表示文件夹】
find / -name httpd.conf :查找 / 目录下的 httpd.conf文件
find /etc -type d | wc -l :统计 目录/etc下文件夹的数量
curl
利用URL规则在命令行下工作的文件传输工具,它支持文件的上传和下载。
参考:链接
uptime
uptime :输出计算机的持续运行时间(开机到现在的时间)
uname
uname :获取操作系统的类型
uname -a :获取系统的全部信息(类型、全部主机名、内核版本等)
关机
reboot
reboot :重启
reboot -w :模拟重启,但不重启(只写入关机命令道日志中)
shutdown
shutdow -h now :立刻关机
shutdown -h 指定时间 :定时关机
注释:
1、 centos7之前的,使用ctrl+C取消关机
2、centos7(包含)之后的,使用 shutdown -c 取消关机
日志
服务
1、systemd-journald 日志收集系统
2、rsyslog:归类日志,写入/var/log目录中
/var/log/messages :系统日志
/var/log/secure :身份验证及相关安全类日志
/var/log/maillog :邮件日志
/var/log/cron :计划任务日志
/var/log/boot.log :开机日志
日志优先级
日志配置文件
系统配置文件:/etc/rsyslog.conf
自定义配置文件:将带有.conf后缀的文件放入/etc/rsyslog.d目录
日志文件轮转
使用logrotate工具,防止将含有/var/log中的文件系统填满
轮转大致四次,丢弃原日志文件
分析日志条目
tail /var/log/messages
tail
实时监控事件的一个或多个日志文件
logger
发送消息到rsyslog服务,默认严重性为notice
网络
ifconfig
ifconfig :获取网卡信息
netstat
netstat -tnlp :查看网络状态
netstat -tulpn : 查看所有的端口信息, 包括 PID 和进程名称
解压缩
tar
-c:create 打包成一个文件
-t:查看压缩文档里的所有内容
-C:切换成指定目录
tar -zcvf 文件 :将文件打包压缩成 .tar.gz 文件
tar -zxvf 文件 :将 .tar.gz 打包压缩文件解压缩
tar -jcvf 文件 :将文件打包压缩成 .tar.bz2 文件 , 压缩比更高!
tar -jxvf 文件 :将 .tar.bz2 打包压缩文件解压缩
unzip
用于解压缩由zip命令压缩的“.zip”压缩包
参考:链接
服务管理
service
Centos7.0以上:
开启Apache服务:/bin/systemctl start httpd.service
重启:/bin/systemctl restart httpd.service
停止:/bin/systemctl stop httpd.service
service 服务名 start / stop / restart :服务的启动/停止/重启
service httpd start :启动本机的Apache(网站服务器软件),服务器名为httpd
systemctl
红帽7之后,系统启动和服务器进程由 systemd 系统和服务器进行管理
使用 systemctl 来管理各种类型的 systemd 对象
查看可以管理的单元(被管理的对象叫做单元):systemctl -t help
servicel:系统服务
socket:进程通信的套接字
targe:系统启动后达到的目标
systemctl status 服务名 :查看服务的状态
systemctl is-enabled 服务名 :查看服务是否已开机启动
systemctl stop 服务名 :停止服务
systemctl restart 服务名 :重启服务 【启进程时,进程ID会发生改变】
systemctl reload 服务名 :重新加载服务 【重新加载时,不完全停止和启动服务器,进程ID不变】
systemctl enable 服务名 :设置服务开机启动
systemctl list-dependencies 服务名 :查看服务的依赖关系
systemctl mask 服务名 :隐藏服务
systemctl unmask 服务名 :解除隐藏服务
进程管理
ps
ps -ef :查看服务器的进程信息
说明:
-e:等价于“-A”,列出全部的进程
-f:显示全部的列
ps -ef | grep 进程命令 :从ps结果中过滤成需要的进程信息
ps j :显示与作业相关的信息
PDID :进程组首进程的PID
SID:会话首进程得PID
top
动态 的查看服务器的进程占的资源
注释:
进入:top
退出:按 q 键
快捷键:
1、M:结果按内存从高到低排序
2、P:结果按CPU使用率从高到低排序
3、1:当服务器有多核CPU时,显示全部CPU信息
pstree
列出所有父子进程的关系
kill
kill 进程ID :杀死进程 【需要和ps一起使用】
killall
killall 进程名称 :杀死进程
pkill
使用进程名杀死进程,杀死一组同名的进程,类似 killall
获取帮助信息
man
man 命令 :退出按q键
n:使用/ 或? 来搜索字符串,可以用n来继续下一个搜索
N:继续下一个搜索
g:转到man page的开头
G:转到man page的结尾
q:退出man
获取在线帮助
1、sosreport :生成报告
2、md5sum :检查生成是否正确
3、tar -xvjf 解压报告
4、查看生成的报告
性能分析
vmstat
vmstat(VirtualMeomoryStatistics,虚拟内存统计) 是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视。
vmstat的常规用法:
vmstat interval times
即每隔interval秒采样一次,共采样times次,如果省略times,则一直采集数据,直到用户手动停止为止。简单举个例子:
可以使用ctrl+c停止vmstat采集数据
第一行显示了系统自启动以来的平均值,第二行开始显示现在正在发生的情况,接下来的行会显示每5秒间隔发生了什么,每一列的含义在头部,如下所示:
- procs:r这一列显示了多少进程在等待cpu,b列显示多少进程正在不可中断的休眠(等待IO)。
- memory:swapd列显示了多少块被换出了磁盘(页面交换),free列显示了多少块是空闲的(未被使用),buff块显示正在被用作缓冲区,以及cache显示正在被用作操作系统的缓存。
- swap:显示交换活动:每秒有多少块正在被换入(从磁盘)和换出(到磁盘)。
- io:显示了多少块从块设备读取(bi)和写出(bo),通常反映了硬盘I/O。
- system:显示每秒中断(in)和上下文切换(cs)的数量。
- cpu:显示所有的cpu时间花费在各类操作的百分比,包括执行用户代码(非内核),执行系统代码(内核),空闲以及等待IO。
内存不足的表现:
- free memory急剧减少
- 回收buffer和cacher也无济于事
- 大量使用交换分区(swpd)
- 页面交换(swap)频繁
- 读写磁盘数量(io)增多
- 缺页中断(in)增多
- 上下文切换(cs)次数增多
- 等待IO的进程数(b)增多
- 大量CPU时间用于等待IO(wa)
uptime
能够打印系统总共运行了多长时间和系统的平均负载,uptime命令最后输出的三个数字的含义分别是1分钟,5分钟,15分钟内系统的平均负荷。
ps
ps参数太多,具体使用方法可以参考man ps
ps aux #hsserver ps –ef |grep #hundsun #杀掉某一程序的方法 ps aux | grep mysqld | grep –v grep | awk ‘{print $2 }’ xargs kill -9 #杀掉僵尸进程 ps –eal | awk ‘{if ($2 == “Z”){print $4}}’ | xargs kill -9
htop
htop 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses
安装:
yum install htop
Htop可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。
与top相比,htop有以下优点:
- 可以横向或者纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。
- 在启动上,比top更快。
- 杀进程时不需要输入进程号。
- htop支持鼠标操作。