基础命令总结
基础命令
nmtui --- 可以图形化修改网卡信息
systemctl start/restart /stop network ---开始网络/重启网络/停止网络
systemctl status network ---查看网络运行状态
systemctl set-default xxx.target ---设置当前运行级别
systemctl get-default ---查看默认运行级别的方式
systemctl disable firewalld ---关闭防火墙
systemctl is-active crond ---查看当前服务是否在运行
systemctl is-enabled crond ---查看crond是否开机自启动
systemctl enable 服务名称 -----让系统中某个服务开机自动运行
setenforce:用于命令行管理SELinux的级别,后面的数字表示设置对应的级别。
getenforce:查看SELinux当前的级别状态。
ip address show eth0 --- 查看eth0网卡地址
ping --- 检查网络链路是否通畅
telnet(测试端口) 主机IP地址 端口号码
ifconfig eth0:1 10.0.0.9/24 up ---添加辅助IP
shutdown --- 关机
shutdown -h(halt停止) --- 关闭系统
shutdown -r(reboot) --- 重启系统
shutdown -c (cancel) --- 取消关机或重启计划
ls --- 列表展示数据信息
ls -l --- 查看数据详细属性信息
ls -a(all) --- 查看所有文件信息(包含隐藏文件)
ls -t --- 查看数据信息按照时间排序
ls -r(reverse颠倒) --- 查看数据信息反向排序
ls -S --- 查看数据信息按照大小排序
ls -F --- 查看目录信息后面会有 /标记
tree ---查看目录中全部目录结构信息
tree -L 1 ---指定显示目录结构层级信息
tree -d ---指定显示目录信息 不显示文件信息
pstree ---进程树
mkdir --- 创建目录
mkdir -p --- 创建多级目录
mkdir -v --- 显示目录创建提示信息
mkdir -m=(r/rw/rwx) --- 创建目录时设置目录权限
cd --- 切换目录
cd .. --- 返回上一级目录
cd ../../ --- 返回上两及目录
cd ./(点表示当前路径)
cd ~ / cd --- 返回到家目录
cd - --- 返回到上一次所在目录
pwd --- 查看当前路径信息
touch --- 创建文件信息
cat --- 查看文件信息
cat -n --- 查看文件行号信息(包括空格)
cat -b ---显示行编号(忽略空行)
利用cat编辑文件内容: cat >> hard.txt <<end (结尾end可以换其他的) (追加)
cat> hard.txt <end (覆盖)
echo=print 将指定信息默认输出到屏幕上(利用特殊符号>)
echo "hello world" > /oldboy/oldboy.txt (>先清空文件内容 在将新内容输出到文件中)
echo "oldboy67" >> /oldboy/oldboy.txt (>>向文件的最后一行后面, 追加新的内容信息)
echo -n ---表示不换行输出
echo -e ---输出转义字符,将转义的内容输出到屏幕上
cp --- 备份文件信息
cp -r (recursive递归) --- 递归备份目录信息
-p ---复制的时候保持属性不变
-d ---复制的时候保持软连接(快捷方式)
-a ---相当于-pdr
mv --- 剪切
mv -t(目标) mv -t /data /oldboy/*
mv -i(会有一个提示) mv -i /oldboy/* /oldgirl
mv: overwrite ‘/oldgirl/oldboy01’? y
mv: overwrite ‘/oldgirl/oldboy.txt’? y
mv: overwrite ‘/oldgirl/oldboy.txt.bak’? y
mv -n 是在/oldboy/oldboy.txt 和 在 /oldgirl/oldboy.txt 都有oldboy.txt文件,如果有不会覆盖(剪切),如果没有就会覆盖(剪切)起到一个保护机制
rm --- 删除(文件信息删除)
rm /oldboy/oldgirl.txt 单个文件信息删除
rm -f 多个文件信息删除
rm -f /oldboy/oldboy* (*是在/oldboy目录中带有oldboy文件都删除)
rm -r 目录删除或者文件删除(会有提示)
[root@lxx ~]# rm -r /data rm: remove directory ‘/data’? y
rm -rf 目录信息删除(意思是强制删除,没有提示)
rm -rf --no-preserve-root / 删根跑路
hostname --- 查看或临时设置主机名称
hostname -I ---查看主机ip地址
hostnamectl --- 设置主机名称
hostnamectl set-hostname 主机名称
init --- 切换启动运行级别
runlevel --- 查看系统当前运行级别
blkid --- 查看磁盘文件UUID信息
source --- 立即加载系统配置文件信息 (profile 环境变量)
iostat ---硬盘的数量及状态
ifup --- 指定某个网卡激活启动
ifdown --- 指定某个网卡关闭
yum --- 安装软件命令
yum install -y 软件名称 --- 安装软件
yum reinstall --- 重新安装软件
yum localinstall xxxx.rpm#本地安装 localinstall 当安装本地软件包时,本地软件包如果有依赖,则自动通过本地仓库搜索软件包依赖进行安装. 如果搜索不到? 报错
yum groupinstall 软件包组 --- 安装软件包组
yum list --- 列出所有的已安装和未安装的软件包
yum list installed #列出系统中已成功安装的软件包
yum grouplist --- 查看yum仓库中的软件包组信息
yum repolist --- 查看可以访问哪些yum仓库
yum provides --- 查看一个命令属于哪个软件包
yum search --- 查看一个命令属于哪个软件包
yum erase --- 卸载软件 慎用
yum remove samba -y ---卸载(不要随便使用)
yum install -y bash-completion* vim tree nc nmap telnet lrzsz dos2unix sysstat(常用软件)
rpm --- 安装软件命令
rpm -ivh 软件包 --- i(install) v(显示详细安装过程) h(显示人类可读信息)(有依赖)
rpm -Uvh ---直接升级 先卸载旧版本-->在安装新版本
rpm -q #查询系统中是否已经安装过该软件
rpm -qa --- #列出所有已安装的软件包 (可以使用grep进行模糊匹配)
rpm -ql --- #列出软件所有的文件所在路径
rpm -qf --- 查看一个文件属于哪个软件包
rpm -qc --- 查看软件程序配置文件信息
rpm -e xx --nodeps --- 卸载软件程序
echo '- - -' > /sys/class/scsi_host/host0/scan --- 添加新硬盘不重启.生效
head --- 查看文件前几行信息(默认前十行)
tail --- 查看文件后几行信息(默认后十行)
tail -f/-F --- 实时查看文件信息变化
more(读书一样看文件 按行 回车↓/往上shift+↑ 按页 空格↓/b↑)
less(读书一样看文件 按行 回车↓/往上↑ 按页 空格↓/b↑)
-N 显示行号
alias --- 查看或者设置别名命令
unalias --- 取消别名设置
uniq --- 将连续信息进行去重显示
uniq -c, --count 在每行前加上表示相应行目出现次数的前缀编号
wc --- 统计文件行数信息 字符信息 单词信息 字节信息
wc -L --- 统计字符串的长度
[root@yida ~]# echo oldboy |wc -L
6
wc -l ---统计行数
grep -c ---grep -c 的作用类似grep | wc -l,不同的是,如果是查找多个文件,grep -c会统计每个文件匹配的行数,每行一个文件的列出来,而wc -l 则列出总的统计数字
sort ---排序
sort -n 根据字符串数值比较
w /uptime/top --- 查看系统硬件信息情况
lscpu ---查看cpu详细情况
free ---查看内存
df ---查看文件系统使用磁盘情况
glances ---系统性能监控工具(可以用它来监控 CPU、平均负载、内存、网络接口、磁盘 I/O,文件系统空间利用率、挂载的设备)
uname --- 查看系统内核 版本 主机名等信息
uname -a ---查看详细信息
useradd --- 创建用户
-u --- 指定用户uid信息
-c --- 设置用户描述信息
-g --- 指定用户属于哪个主要组
-G --- 指定用户属于哪个附属组
-s --- 指定登录方式 /sbin/nologin (虚拟用户)
-M --- 指定不能创建家目录(虚拟用户)
usermod - 修改用户信息
-u --- 修改用户uid信息
-c --- 修改用户描述信息
-g --- 修改用户属于哪个主要组
-G --- 修改用户属于哪个附属组
-s --- 修改登录方式 /sbin/nologin
userdel --- 删除用户家目录
userdel -r 用户信息 --- 彻底删除用户
问题: 删除用户不彻底, 有可能原有家目录会被别人占用
groupadd : 创建指定用户组 -g 指定组id
groupmod : 修改指定用户组 -g 指定组id
groupdel : 删除用户组
passwd --- 修改用户密码
passwd --stdin --- 免交互修改密码(选项可以只输入一遍密码即可更改密码)
id --- 查看用户是否存在
su --- 快速切换用户
su - 用户
whoami --- 查看当前登录系统用户
du ---显示文件或目录所占用的磁盘空间
du -s(summarize 仅显示总计)h
du -sh /* |sort(排序) -h
du -sh /* |sort(排序) -r(颠倒)h
ps -ef --- 查看linux系统所有进程信息
ps -ef|grep "pts/1" --- 找到相应用户连接的会话进程
ps aux |grep nginx 查看端口
kill 进程号 --- 将会话进程进行杀死
killall 软件 ---杀死终端
pkill 软件 ---杀死终端
chmod +x ---- 赋予权限
chmod -(减号)x -----取消权限
属主用户: chmod u +-= s r w x 文件/目录
属组用户: chmod g +-= s r w x 文件/目录
其它用户: chmod o +-= t r w x 文件/目录
针对所有用户修改权限chmod a +-= r w x 文件/目录
按照数值进行修改: chmod 000 ~ 777 文件/目录
chmod 0000 - 7777 文件/目录
chmod -R 777 /oldboy --- 递归修改目录权限以及目录下面所有数据权限
chown -- 修改文件数据属主和属组信息
chown oldgirl oldboy.txt --- 只修改文件属主信息
chown .oldboy01 oldboy.txt --- 只修改文件属组信息
chown oldgirl.oldboy01 oldboy.txt --- 属主和属组信息同时修改
chown oldgirl. oldboy.txt
chown -R oldgirl. /oldboy --- 递归修改目录属主属组以及目录下面所有数据属主和属组
给文件上锁命令
chattr +i 文件信息 --- 给文件上锁
lsattr 文件信息 --- 查看文件是否上锁
chattr -i 文件信息 --- 给文件解锁
说明: 系统中非常重要文件必须上锁
env --- 查看系统中环境变量信息
export ---查看系统中环境变量信息 定义变量
LANG ---字符集
PATH ---/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PS1 ----提示符优化
PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\\$ "
变量的命名规则:
变量名组成---字母 数字 下划线
file --- 查看文件属于什么类型
which --- 查看命令文件所在路径
whereis ---查看命令文件所在路径
locate --- 检索任意文件保存的路径
updatedb --- 更新数据文件
tar --- 压缩数据命令/解压缩数据
zcvf --- 压缩数据
tf --- 查看压缩包
xf --- 解压数据
-C --- 指定解压后数据保存路径
--exclude= --- 排除指定数据不要进行压缩
-h 打包压缩软连接的参数
date --- 查看时间信息/修改时间信息
date -s --- 设置时间信息
date -d --- 显示过去或未来时间
date +格式
%Y year
%m month
%d day
%H hour
%M minute
%S second
+%F === %Y-%m-%d
+%T === %H:%M:%S
+%w week
stat ---命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细
stat -c %a +文件 显示出这个文件的权限(例子644)
history -c 清除历史命令记录
history -w 将内存中保存历史记录永久保存到~/.bash_history文件中
dos2unix --windows装换成linux(解决乱码)
seq -w 10 输出一列 1到10
seq -w 10 生成偶1dao10列
seq -w 0 2 10 生成0 2 4 6 8 10
seq -w 1 2 10 生成1 3 5 7 9
rename "替换的信息" "替换成什么信息" 哪些文件要做名称修改
rename ".jpg" ".txt" oldboy*
lrzsz ---lrzsz上传下载命令
rz ---下载命令
tee用法:把标准输入的内容(例如:从管道前面过来的)传递到标准输出(屏幕)和写入到文件中
tee默认写入到文件是重定向到文件(类似“>”),会清空源文件内容
如果想通过tee进行追加 加上-a(--append)参数即可
last --- 记录谁远程连接破坏过系统
lastlog --- 系统用户登录情况
route -n ----查看路由表信息
netstat -rn ----查看路由表信息
netstat -lntp ---查看tcp建立连接的端口
netstat -lntup ---查看tup,udp建立连接的端口
ss -ant ---系统网络连接数
netstat -ant ---系统网络连接数
mount 挂载
-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型
-a 生效
umount 卸载
umount -lf 强制卸载
curl -I --只看头信息
curl -H Host:域名 + IP
screen ---后台工具
1.yum install screen -y
2.开启一个新的会话---> screen -S Name
3.在screen中使用ctrl+a+d 回到Bash窗口
4.screen -list ---> screen -r pid|name
注意:不能再screen窗口中执行ctrl+d的操作
basename --- 去文件名
basename /etc/sysconfig/networkscripts/ifcfg-eth0
ifcfg-eth0
tr --- 文件信息替换命令(假装替换) 按照字符信息进行替换
find — 查找文件信息(更精确查找文件路径信息)
-type — 根据文件类型查找数
-name — 根据文件名称查找数据
-iname — 根据文件名称查找数据(忽略大小写)
-size — 根据文件大小查找数据
-delete — 删除查找到的数据 (只能删除文件)
-exec — 将查找到的数据进行处理
-a — 多个查找条件是并且的关系 (默认)
-o — 多个查找条件是或者的关系
-not/! — 查找条件进行取反
-maxdepth — 查找文件目录最大的深度(-maxdepth 这个参数要放在其他参数之前。)
-mindepth — 查找文件目录最小的深度
-path — 根据指定路径信息, 确认是否存在指定数据
-print — 输出满足条件的指定信息
-prune — 将指定目录信息进行修剪
-mtime — 根据时间条件查找数据(按天查找)
-atime —根据访问时间查找
-mmin — 根据时间条件查找数据(按分钟查找)
-perm — 根据权限条件查找数据
-inum — 根据inode号码查找数据
vi /vim编辑文件信息
基本用法
01 输入i--编辑
02 输入esc
03 :wq(保存) q(退出) q!(强制退出)
用法:
:%s#oldboy#oldgirl#g --- 替换文件中指定信息v
: s###g --- 将光标所在行内容进行替换
:2,4s###g --- 将第2行到第4行进行替换修改
:2,(shift+4)s###g --- 将第2行到结尾最后一行进行替换修改
:2,$s### --- 将一行中第一个匹配的信息做替换
:1,3copy3 --- 将连续多行内容进行复制操作
:1,3move3 --- 将连续多行内容进行剪切操作
:set ic --- 设置过滤数据时, 忽略大小写进行过滤
:set ignorecase --- 设置过滤数据时, 忽略大小写进行过滤
--- 文件中过滤指定内容(头部开始查找) n 继续向下查找 N 继续向上查找
:set nu 查看编辑内容的行数 :set nonu 取消行号
高级操作方式: 批量编写文件内容 --vim
a 批量多行内容进行添加信息 添加#
第一步: 将光标方编辑行最上面
第二步: 进入批量编辑模式(视图块)
ctrl+v
第三步: 选中编辑多行信息 方向键 上 下
第四步: 回到首行进入编辑模式
shift+i
第五步: 退出编辑模式
esc
b 批量多行内容进行删除信息 删除#
第一步: 将光标方编辑行最上面
第二步: 进入批量编辑模式(视图块)
ctrl+v
第三步: 选中编辑多行信息 方向键 上 下 左 右
第四步: 批量删除选中的信息
d 或者 x
shift + v (可视行)
vim -r 文件名 ( vi编辑器使用工作原理,如果出现编辑突然突然中断情况,恢复原来数据)
高级命令总结
grep
grep — 过滤筛选文件内容信息
–color=auto 对匹配到的文本着色显示
-v 显示不被pattern匹配到的行
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-r(递归)l(指显示文件名) 只显示grep查找的文件名(如果没有指定扩展名则直接使用)
-e 实现多个选项间的逻辑or关系
grep –e ‘cat ’ -e ‘dog’ file
-w 匹配整个单词
-E 使用ERE,相当于egrep
-F 相当于fgrep,不支持正则表达式
sed
sed---
-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑
-f /PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本
-r 支持使用扩展正则表达式
-i 直接编辑文件
-i.bak 备份文件并原处编辑
sed命令指令信息:
p : 输出显示指定信息
d : 删除指定信息
s : 替换指定信息
g : 全局替换信息
a : 添加指定信息在相应行的后面
i : 插入指定信息在相应行的前面
c : 将一行信息进行替换修改
sed命令中sed 'y///'类似于tr一对一替换,但是不能使用a-z A-Z 范围
awk
awk — 擅长分析文件中数据信息
awk 'NR2’ awk 'NR2{print $1 KaTeX parse error: Expected 'EOF', got '}' at position 2: 3}̲' NR表示行信息 NF…(NF-1) $0表示 输出整行,就是全部内容
awk ‘$2~/Xiaoyu/’ awk ‘$3~/^41/’
awk ‘3 /13~/13 /1|5$/’
-F “分隔符号” awk -F “:” ‘{print $3}’ awk -F “[:>]” ‘{print $3}’
gsub : 替换指定的信息 awk ‘KaTeX parse error: Expected '}', got 'EOF' at end of input: …oyu/{gsub(/:/,"",$NF);print $NF}’
awk ‘NR2||NR5||NR==7’
特殊模式
BEGIN: 在文件处理之前完成相应操作
[root@linux67 oldboy]# awk 'BEGIN{print “姓”,“名”,“ID”,“捐款记录”}{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 0}̲' 累加运算:…n
可以实现变量设置
awk 'BEGIN{name="oldgirl"}$2~/Xiaoyu/{print name,$1,$2}'
awk 使用时 筛选内容表示或者时用||
print 在awk中后面什么都不加默认是 print $0
awk '{gsub(/:.*/,"")}1' /etc/passwd 花括号外面1表示前面条件成立,相当于awk '{gsub(/:.*/,"")}{print $0}'