提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
linux基本命令学习笔记
linux基本命令
More
:f 显示当前行数
Less 适用大型文件阅览
= 显示当前详细信息
Echo
-e 支持\命令编译
\n 换行
\t 制表符
Head 显示头部内容
-n 指定显示行数
Tail
-n 显示行数内容
-f 实时追踪文件内容更新
Ctrl+s 暂停监控
Ctrl+q 开始监控
ln -s软连接
pwd -P 显示实际路径
ln 硬链接
date -s 设置时间
+%y+%m+d 年月日
ntpdate 获取网络时间
chmod -R 指定目录下所有文件赋权
chown 更改目录所有者
find
-name 指定名称或者删除方式
-user 指定用户所有文件
-size 大小 -c -b
Locate 快速定位文件位置
updatadb 更新服务器数据
wc 统计命令
zip 压缩文件(可递归压缩)
-r 压缩目录
-d 指定压缩目录
unzip 解压文件
tar
-c 打包
-v 显示详细信息
-f 指定压缩后文件名
-z 打包同时压缩
-x 解压
-C 解压到指定目录
tree
查看目录树
du 查看磁盘占用大小
-h 以容易阅读的格式显示出来
-a 显示目录以及文件大小
-c显示所有文件和子目录大小,显示总和
-s 只显示总大小
–max-depth= 显示统计到第几层
磁盘命令
df -h 查看磁盘占用大小
lsblk -l 显示当前磁盘挂载情况
-f 查看uuid
/etc/fstab 加入uuid开机自动挂载
硬盘分区操作
fdisk -l 查看分区详细情况
fdisk 分区硬盘
n 开始分区
p 主分区
w 保存退出
分区完成需要格式化分区,才能初始化。
mkfs -t xfs 格式化
格式化完了需要挂载
进程命令
Ps 查看系统进程
a 显示带终端的进程
u 友好显示风格
x 显示当前用户所有进程
-e 显示所有进程
-u 显示指定用户进程
Top 实时监控进程
netstat 显示网络详细信息
netstat -anp | grep 进程号 查看进程网络信息
netstat -nlp | 端口号 查看端口状态
-a
-n拒绝显示别名,只显示数字
-l 只列出监听服务状态
-p 显示哪个进程在调用
crontab 系统定时任务
systemctl restart crond 重启服务
-e编辑任务内容
-l 查询任务
-r 删除所有任务
*/n 每个多久执行一次
格式: * * * * * 任务 (分钟小时日月*星期几)
例子: */1 * * * * echo “hello!” >>/home/test 每隔一分钟写入hello
软件包管理
rpm
-ivh 软件包全名 安装软件
-qa 查询当前安装的软件包
-qi 软件名 查询安装软件信息
-e 软件包 卸载软件包
–nodeps 不检查依赖,强行卸载
yum 软件包管理
yum -y
install 安装
remove 卸载
list 显示已安装软件
read读取控制台输入
read (选项)(参数)
-p读取值时的提示符
-t 指定读取值等待的时间
系统函数
basename 取路径里的文件名
语法:basename 文件名 加上后缀则删掉后缀
dirname 获取绝对路径名
Shell 命令
env 查看当前用户环境变量
set 查看全局变量
export 变量名 变成全局变量
readonly 变量名=变量值 只读变量
unset 变量名 撤销变量
$n n代表数字 代表几个参数
$# 获取输入参数个数
$* 获取所有参数(把参数看成一个整体)
$@ 获取所有参数 (区分每个参数)
$? 最后执行的一个命令返回值 0是正常返回
运行符
$((运算式)) $[运行式]
条件判断
[ 判断式 ] 中括号一定要有空格
-eq 等于
-lt 小于
-gt 大于
-r 是否有可读权限
-w 是否有可写权限
-x 是否有可执行权限
-e 文件是否存在
-d 目录是否存在
&& 都满足
|| 满足一个
-z是否为空
流程控制
if判断 语法:
if [条件判断]
then
程序
elif [条件判断]
then
程序
fi
case 判断 语法:
case $变量名 in
“值1”)
如果为值1执行这条程序;;
“值2” )
如果为值2执行这条程序;;
如果都不是执行这条程序
esac
for循环
语法1:
for ((初始值;循环控制条件;变量变化))
do
程序
done
语法2:
for 变量 in {值1 值2 值3}
do
程序
done
while
while (判断语句)
do
程序
done
正则表达式
^ 匹配一行的开头字符
grep ^root
$ 匹配一行的结尾字符
grep root$
. 匹配一个任意字符
grep r…
- 匹配任意一个出现字符的一行
grep roo*
^a.*bash$ a开头bash结尾的任意一行
[]
[8,9]匹配8或者9
[0-9]*匹配任意长度的数字符串
[0-9]匹配一个0-9的数字
[a-e,f-z]匹配a-e中的任意字符或者f-e中的任意字符
‘$’ 包含KaTeX parse error: Expected group after '^' at position 5: 的文本 ^̲ 空行
文本处理器
cut 文本剪切器
-f 列号,提取第几列
-d 分隔符
-c 按照字符分割
例子:cut -d “:” -f 1 截取:为分隔 的第一列
例子:ifconfig | grep bro | cut -d " " -f 10 获取ip地址
awk 文本分析器
语法: awk [选项参数] ‘/正则表达式{命令} /正则表达式{命令}’ filename
-F 指定输入分隔符
-v 赋值一个用户定义的变量
cat /etc/passwd | awk -F “:” ‘^root {print $7}’ 找到/etc/passwd里面的root开头的第七列
内置变量
FILENAME 文件名
NR (行号)
NF列数
grep 文本筛选
-i 忽略大小写
-m 匹配第几行
vim 文本编辑器
yy 复制一行 8y 复制8行 y$ 从当前复制到一行的最后 yw 复制一个词语
dd 删除一行 3dd 删除3行 dw删除一个词
p 粘贴 5p 粘贴5行
u 回撤
X 删除一个字
r 替换一个字
^ 一行开头
$ 一行结尾
g 文本开头
G 文本结尾
数字+G 跳转第几行
o 换行输入
:set nu 行号
:%s/文字/替换的文字/g 替换所有匹配的文字
chkconfig --list 显示服务开关状态
systemctl list-unit-files 显示服务是否自启动
nmap -sT查看服务状态
jobs 查看后台运行的程序
vmstat 监控系统资源
vmstart 2 3 语法 2代表2秒 3代表 监控3次
demsg 开机内核检查信息
cat /proc/cpuinfo 查看cup信息
file /bin/ls 查看系统位数
lsb_release -a 查看系统发行版本
lsof 查看进程调用的文件
-u 列出某个用户的进程打开的文件
-p 某个PID进程打开的文件
日志管理
ps aux | grep rsyylogs 查看进程
chkconfig --list | grep rsyslog 查看是否自启动
lastb 查看错误登录日志
lastlog 查看用户最后一次登录
last 查看登录信息
who 查看正在登录的用户
日志轮替
dateext 参数 用日期作为日志文件名
logrotate 日志轮替配置文件
apache日志轮替
运行级别
init 3
runlever 查看运行级别
/etc/inittab 配置开机运行级别
备份
dump
恢复备份
三剑客
grep
-E 支持正则
-A -A5显示匹配内容的前五行
-v 排除
-n 行号
-i 忽略大写小写
-w 精确匹配
ps aux | grep -c ‘[c]rand’
sed
sed的常用选项
-n 只显示匹配处理的行(否则会输出所有)
-e 执行多个编辑命令时(一般用;代替)
-i 直接在文件中进行修改,而不是输出到屏幕
-r 支持扩展正则表达式
-f 从脚本文件中读取内容并执行(文件中的编辑命令每行一个,不用;隔开)
sed的常用编辑命令
p 打印匹配行 print
d 删除指定行 delete
a 在匹配行后面追加append
i 在匹配行前面插入insert
c 整行替换
r 将文件的内容读入 read
w 将文本写入文件 write
s 字符串替换(匹配正则表达式)substitute
= 输出行号
sed格式
sed -r ‘s#old#olds#g’ filename
sed 删除p
‘1p’ ‘2p’ 精确删除多少行
‘1,5p’ 1-5 行
‘/liao/p’ 删除//里的liao ,可以填写正则
‘/10:00/,/11:00/p’ 10点到11点的内容
‘3,$p’ 3行到最后一行
sed 删除 d
‘1d’ ‘2d’ 精确删除多少行
‘1,5d’ 1-5 行
‘/liao/d’ 删除//里的liao ,可以填写正则
‘/10:00/,/11:00/d’ 删除10点到11点的内容
‘3,$d’ 删除3行到最后一行
增加 cai
c 替代
a 行后添加
I 行前添加
语法
sed ‘3c 内容’ 文件名 替换第3行
替换 s
格式
sed ‘s###g’ 文件名
反向引用
awk
取行
NR==1 取出第一行
NR>=1&&NR<=5 取出第一到第五行
取列
-F 指定分隔符
$数字 第几列
$0 整行
$NF 最后一列
OFS 每一列之间输出什么
模式匹配
比较符号:<>=!
正则
范围表达式
~包含
!~不包含
awk数组
统计