linux实用基础一

该博客是Linux运维笔记,涵盖shell命令,如基本命令、重定向、vim使用等;用户、组及权限管理;Web资源下载与yum源配置;系统服务管理;还介绍了Linux资源管理,包括进程、CPU、内存、磁盘和网络IO等方面的查看与操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux shell

cmd 无序基本命令

exit;quit;logout
shutdown -h now; init 0 ;init6
date; uptime;
hostname

全局环境变量配置文件位置 所有用户生效:/etc/profile /etc/bashrc 用户shell环境生效~/.bash_profile ~/.bashrc
改配置文件最好备份{,.bak} 一般在配置文件末配置变量。重命名mv /etc/my.cnf{,.bak}
例:echo “export ming=chuang” >> .bash_profile export关键字声明环境变量
env #当前用户存储环境变量命令
export PS1=‘[\u@\h \w\t]$’ #环境变量自定义提示符格式 刷新源source /etc/profile

一般故障
.swap文件,内存中未保存的缓存文件 可以删除隐藏文件或drop重新编辑
networkNetworkManager 都提供了自己的服务。如果两个服务同时运行并尝试管理同一个网络接口,可能会引起冲突。当 NetworkManager服务正在管理网络接口时,network 可能无法正确配置网络连接。

安全工具
md5sum b c > filename #信息校验完整的唯一值,有碰撞可能,哈希值私钥密钥比对安全
md5sum -c filename #信息校验完整的唯一值,有碰撞可能,哈希值私钥密钥比对安全
安全销毁,粉碎文件
shred -n 7 filedir #red粉碎文件随机写入二进制数据7次 无法找回恢复 默认3次
虚拟机快照作用
备份,节点状态

基本使用命令

cd …/ && cd / && cd ~
cd - #两个目录之间来回切换
ls -a /home
ll -dh /home/data
file filename
stat filename #详细信息 访问A 【改变C 修改M】
tail filename
head file
cat ./a|grep love #链接
cat -n afile bfile #-e 显示结尾字符$
more filename #节省内存分页查看 b键 enter键 quit
less filename #节省内存滚动查看 上下滚动 /搜索 quit
du -sh /a /b #-s:sum #文件目录使用大小
进阶使用
mkdir -p {man,fel}/{young,old} 交叉创建
du -ah /opt | sort -rh | head -n 10#【查大文件】disk usage命令 all:自动递归显示file+dir磁盘使用情况 h易读的
watch -n 60 ‘du -h /a | sort -rh’ watch前端工具周期性60s执行一次命令并反馈前端
tail -F -n 20 filename #文件内容持续监控
创建
mkdir -p a/b /mnt/extra
mkdir -m 755 newdir
rm -rf a/b c
rmdir ./emp/empty #删除校验空文件夹
touch /mnt/extra/a.log /mnt/extra/b.log
touch -a -m -t 200012120000 fl #修改a:access访问 m:modify修改的时间戳t:timestamp Change元数据改变的时间
touch ./{1…3}.log #拼接每个序列
ln source linkname #指向同系统数据块
ln -s source linkname #跨系统指向引用 文件路径
cp -rf /data/*.bash /tmp/ -a /tmp/
cp {a,b,c} /tmp/ #cp -rf a /opt/ /tmp/ 属于递归嵌套拷贝不建议使用

重定向作用

定向到或者定向出标准输入流,一般和文件字符信息有关系
其他标准流输出一般在前端交互,常用| command $()配合处理 stdin 0 标准输出 stdout 1 标准错误输出 stderr 2
echo “哈哈” >> /dev/tty #tty显示台设备
chpasswd < shadow.pwd #标准输入设定多组密码 格式username:pass
cat ./a ./b > ./c
echo “!!” >> ./showlastcmd #!! 引用上次命令结果
cat >> new.bash<< EOF 字符 EOF #对文件嵌入式写法 。【坑】^EOF结尾要单独开头起一行

cat > new.bash<< ‘EOF’ 字符 EOF #文档模式 >>追加 >覆盖
cmd >> /dev/null 2>&1 & #避免影响前端 重定向到linux黑洞文件。
vim使用

#默认模式 光标处 gg首 G尾 复制行数3yy+p 删除函数300dd 删除光标行到尾dG u撤退操作 ctrl+r前进操作
#编辑模式 字符前i 字符后a 光标下另起一行o
#底线模式 :set nu :55 :set paste :wq :q! /words同?words+键盘n :%s/words/replace/g
#视图模式 列式批量操作 ctrl+v 光标选定处大写键盘I前A后列式编辑 x列式删除,esc退出模式完成操作

mv

mv ./a ./b
mv -f ./a/c ./b ~/ #-p保留元数据
rename a b /a/*.txt #路径下文件或目录名字符替换 a:oldchar b:newstring

基本数据处理工具

wc -lwmc f1 f2 # l:lines行数 words单词 m字符 c字节 ps:一个字符大于等于一个字节
sort -n #文本处理排序比较 -r字典倒序 -n数值形式排序
uniq #文本处理去重 -c 标识重复次数
grep
grep “pattern” < filename

grep -irl “passwd” /var/log #文本行搜索工具 -c matchlines列出匹配内容行数 -l match-filenames列出匹配内容文件
grep -inr “net” --include “*.bash” / #ignore忽略大小写 显示匹配行号 resursive递归执行

ps -aux |grep ‘pattern’ #引用命令输出 grep a $(ps -aux) grep -R a /递归查找目录文件内容模糊匹配
ls | grep network -v #结果取反

find

find /home/user/docs -path “/archive" #path结合径名称范围查找文件
find / -type f -name ‘apple’| xargs -i grep ‘apple’ {}
find / -maxdepth 5 -size +100M -type f (-name '
.zip’ -o -name '.py’ ) # 注意逻辑顺序,find默认支持查找隐藏文件
find / -name "
.png$” | wc -l
find / -name ‘passwd’|grep ‘username’
find工具组合流式处理参数 -exec cmd +
find / -xdev -type f -size 100k -a -size -2M -exec du -sh {} + #-a:and -xdev 当前挂载点内文件系统中进行搜索
find . -mtime 5 #现在时间为坐标 24小时 -5五天内
find . -name ‘*.txt’ -exec rm {} +

find / -name ‘passwd’ -exec grep ‘root’ {} +

find /g -depth -type d -empty -type d -exec rm -r {} ;#组合操作
find . -name ‘.txt’ -print0 | xargs -0 -i mv {} {}.k #0忽略空格作为默认分隔符,以空字符避免文件名带空格
find . -type f -name '
.jpg’ | xargs -I {} rename a org {} #注意rename针对管道的行字符修改
find . -name ‘*.txt’ -print0 | xargs -0 -I {} cp -f {} {}.bank #单机批量备份

find /path -name “*.txt” -mmin -1 -delete #modifytime-min mtime -1 1天内

find / -maxdepth 5 -type f ( -name ‘.conf’ -o -name '.py’ ) -size +10k -a -size -200k
修改

用户 组及权限管理
直接查看配置数据库文件

getent group == cat /etc/group
getent group
getent hosts
getent passwd
getent shadow

查询用户相关信息

id root #0 [1-999 1000-]
whoami #登录主机的用户
who #已登录 #last -5最近五条登录终端记录 lastlog用户登录记录
w # 有负载信息

切换用户bash环境

su - #信息交互 -shell目录环境
su - use

创建用户及密码

userdd name -M # M:nohome modmin
useradd -u 10086 -g pri -G secG -d -c “测试用户”/home/newuser newuser
useradd deamon -M -s /sbin/nologin
设置密码
passwd newuser # -p shadow密码文件信息!!代表空密码
echo “123123” | passwd --stdin user
chpasswd < shadow.pwd #标准输入设定多组密码 格式username:pass
echo ‘username:password’ | chpasswd #change passwd
etc下文件
etc/ passwd shadow gpasswd gshadow skel sudoers

提权用户设置

【visudo或vi /etc/sudoers username ALL=(ALL:ALL) ALL】

用户管理

usermod -L user # -U解除登录限制
usermod -e ‘2024-10-10’ tang #设置用户过期时间,过期无法登录 日期格式为 YYYY-MM-DD
usermod -G 0 sudoer #更改用户组等属性-uid -gid -l登录用户名 -d工作家目录
userdel -rf user #正确删除 -r 家目录和邮件存储目录一并删除 删除参数必要是名称,名称有更多关联用户名家目录shell等删除操作
chage -e ‘2025-01-01’ tang #shadow相关 格式要对 --list信息 lastdaypasswd d:0 1 2

组对象管理

groupadd gname -g 10000
groupdel gname
groupmod -n newname -g 1006 oldgroup #修改id,name
gpasswd -d gname username #移除组
usermod -aG groupname username 添加组add
getent group nfs 过滤组信息
groups nfsweb 查看成员所属组
useradd -r -u 777 -s /sbin/nologin -m -d /var/lib/vvv -c “Nginx web server” vvv #-r 创建1-999内的系统用户 非-r 1000以上

文件对象权限管理

chmod u+wrx g-x filedir # a:all(u g o) 权限位421
chown user:group file #chown :g file修改组。
chown owner filedir # -r recursive ls -r reverseview -R recursive
chgrp root filedir # 更改主组。chgrp :root filedir 更改附加组

其他场景权限位

chmod u+s #suid只作用在二进制文件上,等同于给其他用户临时获得root主人权限 ,例:修改密码4770
++例子++
#结合 setgid 和 sticky bit粘滞位权限设置,确保了共享文件的基本的管理和保护,防止其他用户随意移除别人的文件。但其他用户仍然可以修改其中的文件,包括文件内容和权限
chmod g+s shared
chmod o+t shared
查找7777权限位文件
find / -type f -perm -7777 -ls # permissions权限位 suid:-4000 setgid:-2000 setgid sticky bit:-1000 list perm

文件管理控制的:扩展展属性限制追加a和永恒

lsattr -R -d -a /etc/soft #Recursive dir all
chattr +i filedir #不可变动, 删除修改需要root -i
chattr +a filedir #a只可以追加内容
其他说明

文件权限位

linux隐私文件一般权限位600 bash脚本一般u+x 虽然bash命令调用解释器 ./则进行内容执行

文件权限控制umask

umask 0022#umask命令控制文件夹目录权限默认root0022 普通0002 文件夹初始777-umask 初始文件666-umask 如果文件权限位奇数则+1因默认文件没有X权限

归档压缩工具tar,zip

-f后面必跟文件名 shell脚本尽量用绝对路径执行
#定时存档 tar -zcf /is/live/mysql.tgz /mysqldata
#清空配置文件 > /conf 重定向空
tar -zvcf opt/tarname.tar.gz ta tb todir/path
tar -zvxf tarname.tar.gz -C /opt # z:gizp C:解压至 支持多种压缩格式-j -J参数处理对应压缩格式
tar -vtf tarname.tar.gz #t 预览压缩内容:preview
zip -r /save/path/a.zip z/c a b #zip归档工具 d递归打包多个文件
unzip a.zip -d /opt/b.zip #zip解压至
gzip -d file #gzip file 压缩 解压-d --decompress

shell声明命令组合自定义

alias shownow=‘date +%F-%T’
shownow

修复用户工作目录

cp -fr /etc/skel /home/worker #删除原工作目录 复制新的模型
usermod -d /home/worker #指定新的工作目录 默认root文件,需改变属主组权限
chown worker:worker /home/worker

草台shell语法

for i in {1…30}; do echo $(expr $RANDOM / 1000); done > random.txt #RANDOM变量 #输出30次随机2位数 循环数 循环体 输出结果到文本文件
for i in $(引用内容);do 操作命令;done # 固定语法 局部var:i in:i输出列表;do:shell命令操作;done;
for i in $(cat /etc/passwd | grep ‘/bin/bash’ | grep -v ‘root’ | cut -d ‘:’ -f 1); do echo $i; done
#输出非root真实用户
for i in $(cat /etc/passwd | grep ‘/bin/bash’ | grep -v ‘root’ | cut -d ‘:’ -f 1); do userdel -rf $i; done
#删除非root用户,前提没有关系数据,gpasswd groupdel建议注释passwd配置信息,

本地终端上载下载传输文件

远程终端和远程设备之间命令工具
Xshell的Xftp工具
yum -y install lrzsz
使用
rz | sz
网络传输
bash
scp -r 本机源数据 root@ip:路径 #scp -r:recursive 【ssh认证文件传输】传文件
#拿文件 scp -r root@ip:/dirfile 虚拟器环境可以传输 私有局域网设备需要配置绑定公网地址才能传输
yum install lrzsz -y
rz -r /dir/file
sz -r /dir/file

Web资源下载 及配置yum源

wget -bc URL #bg后台断电续传 continue
wget -P /dir/todir -ibc file_list.txt #url列表文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo #path+rename
curl -o /my.repo /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#-o 下载网页或文件内容
#配置软件源 运行yum clean all&& yum makecache 解除缓存依赖生成新缓存

系统服务管理及基本服务

检查进程
ps -ef|grep nginx
ps -ef|grep ‘nginx’
ps -ef -aux #full
ps -aux |grep ‘nginx’
杀死进程
kill -9 1628 #守护进程
kill -9 ssh #终端连接产生的进程
pkill nginx #查杀关键字相关进程 容易误杀
其他,停止状态进程无法杀死,因为未运行,需要继续执行再开另一个终端杀死kill -CONT 1946
kill -CONT 1946
kill -9 1946
检查网络端口情况
ss -lnt|grep 80
ss -lntpu #高并发场景性能更高 p:pid
ss -lntp|grep nginx
netstat -lnt|grep 80

linux服务管理运行过程:找文件-读配置!加载功能。
服务管理目录
service服务脚本目录 /etc/rc.d/init.d/【network.service】
service服务使用 service network start
systemctl服务管理脚本目录 /usr/lib/systemd/system/【nginx.service】
systemctl使用
systemctl start nginx
systemctl status nginx #systemctl stop network sshd服务 NetworkManager
systemctl enable nginx #
systemctl is-enabled nginx #是否开机自启

systemctl list-units |grep postfix #查看是否有邮件构建服务运作 查找是否有相关服务find / -type f -name ‘post.service’
网卡基本配置

/etc/sysconfig/network-scripts/ifcfg-name
TYPE=Ethernet
DEVICE=eth0
NAME=eth0
BOOTPROTO=“static” # 等同none
IPADDR=“192.168.98.10”
PREFIX=24 #NETMASK=”“
GATEWAY=“192.168.98.254”
DNS2=‘223.5.5.5’
ONBOOT=yes
网络相关命令
ip a #:ip addr show; ifconfig 生成关联网卡配置文件UUID cat /sys/class/net/eth0/address | uuidgen
nslookup baidu.com #bind-utils查找域名工具 【dig @223.5.5.5 A baidu.com】A:ipv4地址 解析域名IP配置映射关联 加速解析
route -n
yum -y install traceroute
traceroute baidu.com
NTP 时间管理 网络时间协议 (NTP)服务
系统时间管理服务
ntp工具单向暴力同步时间 ,单向暴力同步 影响生成环境 -u普通用户模式
ntpdate -u ntp.aliyun.com
查看时间信息,时区列表
timedatectl status
timedatectl list-timezones |grep -i shanghai
设置时间,时区
timedatectl set-time ‘2023-10-10 10:00’
timedatectl set-timezone Asia/Shanghai

ntp时间服务器源地址配置 及pid文件,日志文件配置
rpm -ql ntp | grep conf #列出rpm工具安装文件路径 query list
cat >> /etc/ntp.conf << ‘EOF’
server 0.cn.pool.ntp.org iburst
server 1.ntp.aliyun.com iburst prefer
logfile /mkdir/ntp.log
pidfile /var/run/ntpd.pid
EOF

ntp服务同步状态查看
ntpstat
ntpq -p
其他同步
timedatectl set-ntp on #本地 默认开启timedatectl和ntp服务同步
hwclock -w #硬件 同步系统时间到硬件时钟时间BIOS

firewalld 区域策略控制 生产环境不用

查规则模板
firewall-cmd --get-templates #列出防火墙预制的规则模板 firewall-cmd --add-service=
查区域配置规则
firewall-cmd --list-all #列出当前防火墙所有配置信息 --zone=public指定区域配置信息
配置规则
PS:防火墙模板以服务名配置规则 若端口变化不能限制被请求流量
firewall-cmd --add-port=80/tcp --permanent #【--permanent 永久性,配置到文件;】
firewall-cmd --remove-port=80/tcp #临时生效
firewall-cmd --add-service=ntp #针对服务名添加规则 PS:允许ntp服务的tp访问流量请求规则udp协议firewall-cmd --remove-service=ntp
查找相关服务规则
PS:firewall-cmd服务里面nginx apache服务统称HTTP
firewall-cmd --get-services ssh

iptables防火墙工具
iptables -F #flush
iptables -L |grep ntp #查找关于ntp防火墙服务配置规则
流量控制
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
其他安全机制 selinux
getenforce
setenforce=0 彻底disable文件位置ls /etc/selinux/config

定时任务
#认准分 时 日 月 周 user-name command
PS:日月和周几不能同时写 取值范围:min0-59 h0-23 week0-6
0 */2 * * * 每个俩小时
0 3,7 * * * 每天3点7点执行
0 1-3 * * * 每天1,2,3执行
创建
crontab -e
编辑路径命令绝对路径避免找不到解释器目录
\usr\bin\bash ls
crontab -u user -e 指定用户创建定时任务
查看任务
crontab -l
所有用户定时任务路径
find /var/spool/cron -type d -name cron
cat /var/spool/cron/root
黑白名单
修改配置文件,限制普通用户操作
etc/cron.allow 格式:username\n PS:默认没有白名单文件,白名单优先级更高
etc/cron.deny

编译安装代码雨cma
准备环境库文件 和编译器

yum -y install ncurses* gcc gcc-c+

准备资源

wget -O /opt/download https://jaist.dl.sourceforge.net/project/cmatrix/cmatrix/1.2a/cmatrix-1.2a.tar.gz
或curl -o /opt/download/cma.giz https://jaist.dl.sourceforge.net/project/cmatrix/cmatrix/1.2a/cmatrix-1.2a.tar.gz
tar -xfv /opt/download/*.gz

构建编译配置,执行编译并安装,声明变量

./configure --prefix=/opt/cma&&make&&make install&&export PATH=$PATH:/opt/cma/bin路径
#cd /解压目录 配置安装路径,编译+安装 cd /安装路径bash到环境PATH
ln -s cma /opt/cma/bin/cmatrix
链接二进制命令文件源路径运行文件直接回车; ./ba.sh当前目录执行文件=bash ba.sh 而系统交互解释器bash无需权限x;source xfile=. xfile
./cma -C yellow

linux资源管理

进程资源

#程序运行:父进程生+子进程生+子子进程:运行中的资源单位 线程:干活单位
#[] linux系统的内核进程
#孤儿进程:父进程故障挂了,被系统进程收留 例:1号系统进程收留,等待子进程结束释放资源
#zombie僵尸进程:子进程非正常挂了父进程无法察觉控制。占用系统资源 解决:杀死或主动退出父进程

查服务进程

列出所有进程 筛进程
ps -ef | grep sshd
ps -aux | grep sshd 更详细%CPU %MEM =ps aux= unix命令写法

top 综合资源查看器概览说明

05:03:13 up 1 day, 34 min, 2 users, load average: 0.10, 0.06, 0.06 #系统1,5,15分钟内的负载情况
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 1802820 total, 1012456 free, 106944 used, 683420 buff/cache #内存情况
KiB Swap: 0 total, 0 free, 0 used. 1489360 avail Mem

Tasks: 107 total, 1 running, 106 sleeping, 0 stopped, 0 zombie
PID USERPRNIVIRTRESSHR S %CPU %MEMTIME+ COMMAND #进程情况

其他资源监控器更好用

htop #以及glances Zabbix工具
进程任务相关资源查看 管理

列出运行中服务 所有进程id

pidof sshd

查看进程相关文件
查进程

lsof -p 10545 #排查 该(进程)异常资源关联的所有文件

查进程文件

lsof +D /etc #排查 存储容量过大的文件夹的进程,
lsof -u username #排查某个系统用户打开的文件
lsof -c nginx #排查 相关服务文件

grep筛查进程日志文件

lsof -p 10545|grep log #查找 服务运行日志文件路径
##查持有端口的进程
lsof -i :80 #排查持有端口的进程
SSH 服务器进程打开的文件使用大小
lsof -c sshd | awk ‘{print $9}’ | grep -v ‘^/proc/’ | xargs du -sh #统计进程相关文件总大小

文件句柄与进程数值文件

/proc//fd/(file descriptor)
文件句柄通常是一个整数值指针文件proc/10545/fd/文件句柄下,标识程序打开引用了哪些文件;
若进程打开文件目录项被删除,因为被系统【引用】资源不满足被释放机制,因此可以【引用】进程句柄链接文件打开恢复被删除的目录文件
lsof /var/log/nginx/error.log 或 pidof nginx 查找进程id10545
ls -l /proc/10545/fd/ 查看进程文件句柄目录
找出日志引用文件重定向即可
cat /proc/10545/fd/5 > /var/log/nginx/access.log #导出引用数据到原处即可

前后端任务,进程操作
kill信号

#默认正常结束信号15 强制结束9危险,可能导致未知错误 1通知主进程重载配置文件pid不变化
kill -1 10543 -1重载等同于 systemctl reload nginx

其他相关进程操作

前台切后台 ctrl+z bg 1
后台切切前台 jobs fg [number]

2种后台运行

nohup cmd >> /dev/null 2>&1 隔离当前会话环境,终端注销中断也会不挂断的。后台系统中运行
ping baidu.com > /dev/null & #正常注销后台仍被接管运行

查看cpu资源
查看几核

cat /proc/cpuinfo | grep 'core id ’
lscpu | grep -i ‘^CPU(s):’

测压(工具)stress

stress --cpu 1 --timeout 600 #满负载测稳定性

内存资源查看

free -h

内存交换分区(Swap)技术:一种在内存不足时,将部分数据存储到硬盘上以释放内存空间的技术。生产环境关闭,虽然可以防止内存溢出程序奔溃。但是和硬盘交互会降低系统性能,安全性低
其他内存硬盘数据交互的俩个概念技术

【内存缓存】
包括cache1,2,3级。通过算法预热数据在内存中从而加速读取减少对硬盘访问次数
【内存缓冲区buffer】
多种存储结构连续的内存空间优化平衡数据的写入,约制存储一定大小再整体依次写入目标位置,减少寻址过程;

查看磁盘系统使用

查看磁盘文件系统使用情况
df -h

查看磁盘IO

iotop -k KB
#应传网络层【网络资源】管理 网络-协议约定-交互集成。

查看网络IO

iftop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值