Linux 常用指令学习
- 一、vim
- 行首
- 服务器端间隔 30 秒向客户端发送心跳
- 每隔多少秒客户端向服务端发送一次心跳(alive 检测)
- 二、用户管理
- 删除用户目录
- 创建组
- 六、运行级别
- 七、文件目录指令
- 创建单个目录
- 覆盖
- 文件查找 find
- 指令查找 which
- grep 过滤查找,一般与 管道符 " | " 一起使用 常用搭配 wc:(word count 计数)
- 八、rpm以及yum
- 过滤查找rpm 软件包
- 查看yum服务器是否有安装包
- 九、文件目录权限管理
- 十、磁盘挂载
- 通过UUID 挂载
- 总览
- 十一、网卡编辑
- 显示
- 十二、进程管理
- 进程全格式信息
- 进程树 -p: 进程PID -u:用户
- 十三、服务管理
- 常用
- 查看端口是否开放
- shift + P cpu排序
- shift + M 内存排序
- shift + N 进程号排序
- -an 按序排列输出 -p:输出进程信息
- 十四、shell 脚本编写
- !/bin/bash
- !/bin/bash
- 定义变量
- !/bin/bash
- !/bin/bash
- !/bin/bash
- -t 10: 等待10秒
- !/bin/bash
- create backHome
- back up the mysql database name of
$DB_SCHEMA - move to tar.gz then delete directory
- finally delete back over ten days
- 十五、定时任务
- 定时每天23点30分执行脚本
- 十六、ssh
一、vim
-
复制、粘贴
yy
p -
删除
dd
-
行号,跳转指定行
set nu
set nonu -
跳转
行首
gg
# 行末
shift + g -
全选
-
替换
:%s/源字符串/目的字符串/g
-
修改ssh连接超时时间
-
vim /etc/ssh/sshd_config
服务器端间隔 30 秒向客户端发送心跳
ClientAliveInterval 30
# 120 次后关闭
ClientAliveCountMax 120
120 * 30 = 3600 秒 -
vim /etc/ssh/ssh_config
每隔多少秒客户端向服务端发送一次心跳(alive 检测)
ServerAliveInterval:30
# 服务端多少次心跳无响应之后,客户端才会认为与服务器的 SSH 连接已经断开,然后断开连接
ServerAliveCountMax:120
二、用户管理
1.添加用户
useradd 用户名
2.设置密码【需要登录到至该用户下】
passwd 自定义密码
3.删除用户
删除用户目录
userdel -r 用户名
# 不删除用户目录
userdel 用户名
4.用户组
创建组
groupadd 组名
# 指定组名创建用户
useradd -g 组名 用户名
# 用户切换组
usermod -g 组名 用户名
# 为已存在用户添加新的权限组
usermod -a -G 组名 用户名
-
相关文件
/etc/passwd
/etc/shadow
/etc/groupvim /etc/sudoers
# 切换用户不需要密码 [username ALL=(ALL) ALL]vim /etc/pam.d/su
# 去掉注释: auth sufficient pam_wheel.so trust use_uid
# 将用户加入 wheel组[管理组] ,此后用户 su root 不需要密码
六、运行级别
init [级别]
- 0 停机,默认值不能设为0 无法正常启动
- 1 单用户工作状态
- 2 多用户无网络
- 3 无界面,完全体多用户(有网络)
- 4 未使用,保留状态
- 5 图形化GUI模式
- 6 正常关闭并重启重启,默认值不能设为6 无法正常启动
七、文件目录指令
-
创建目录
创建单个目录
mkdir -p /dir1
# 创建多级目录
mkdir -p /dir1/dir2/dir3 -
删除
rmdir 和 rm -rf
-
创建空文件
touch fileName.fileType
-
文件查看
echo cat less more head tail
# echo $JAVA_HOME
# tail -f 实时
# tail -n 100 filename.xxx -
输出重定向
覆盖
echo "内容" > fileName.xxx
# 追加
echo "内容" >> fileName.xxx -
文件查找
文件查找 find
find / -name xxx
find / -user xxx指令查找 which
which netstat
which rebootgrep 过滤查找,一般与 管道符 " | " 一起使用 常用搭配 wc:(word count 计数)
cat fileName.xxx | grep "love you" | wc
-
目录大小统计
du -h --max-depth=0 *
八、rpm以及yum
rpm 用于从互联网下载以及安装包,它包含在某些linux分发版本中,它生成具有rpm拓展名的文件。
-
信息查询
过滤查找rpm 软件包
rpm -qa | grep python
# 查找软件是否安装
rpm -q python
# 详细信息
rpm -qi python
# 查询rpm 包中的文件
rpm -ql python
# 查询文件所属的软件包
rpm -qf /etc/my.cnf -
删除
rpm -e firefox-91.4.0-1.el7.centos.x86_64
-
安装
rpm -ivh rpm包全路径名称
# i:install
# v:verbose
# h:hash 进度条 -
yum
-
yum 是shell 前端软件包管理器,基于rpm包管理,能从指定服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包
查看yum服务器是否有安装包
yum list|grep python
# yum 安装
yum install python
# 基础组件安装
yum groupinstall base
九、文件目录权限管理
-
chmod 修改权限
4 + 2 + 1 = 7 (r + w + x)
# u:user g:group o:other a:all
chmod g+wx /home/any_file_or_directory
chmod 724 /home/any_file_or_directory -
chown change owner
chown root:root /any_file_or_directory
-
chgrp
chgrp root /any_file_or_directory
十、磁盘挂载
-
显示磁盘分区:
fdisk -l
fdisk -f -
磁盘分区:fdisk /dev/sdb
-
格式化:mkfs -t ext4 /dev/sdb2
-
磁盘挂载: mount /dev/sdb2/ /ranchen [重启会失效]
-
永久挂载,修改:/etc/fstab 文件
通过UUID 挂载
UUID=b35480fb-0cf8-45b5-a449-70277f85200b /ranchen ext4 defaults 0 0
# 通过名称挂载
/dev/sdb2 /ranchen ext4 defaults 0 0 -
卸载(取消挂载),重启生效: umount /dev/sdb2
-
磁盘容量
总览
df -h
# 特定目录
df -h /home
# du h:计量单位 a(all):含文件 c(count):怎加汇总 --max-depth=x:深度
du -h
du -h --max-depth=1 /home
du -hac --max-depth=1 /home
tree /opt
十一、网卡编辑
-
查看网卡
ifconfig
-
编辑网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
-
网卡信息
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp dhcp-动态分配 static-静态IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=30fc8be6-7ebd-420d-baa6-6880c196d039
DEVICE=ens33 # 网卡名
ONBOOT=yes
IPADDR=192.168.126.132 # IPv4 地址
PREFIX=24
GATEWAY=192.168.126.2 # 网关
DNS1=8.8.8.8 # DNS
IPV6_PRIVACY=no -
重启网络服务
systemctl restart network
-
主机名
显示
hostname
# 修改
vim /etc/hostname -
hosts 映射,支持通过主机名进行网络交互
vim /etc/hosts
-
dns 解析顺序
浏览器缓存 >> dns解析缓存 >> hosts文件映射 >> 查询网段上的dns服务器
十二、进程管理
-
查看进程
进程全格式信息
ps -ef
# -a:所有进程 -u:显示用户信息 -x:进程运行参数 -
进程树 pstree,yum安装:
-
yum install psmisc
进程树 -p: 进程PID -u:用户
pstree -u root
pstree -p 1
十三、服务管理
概念: 系统服务 (守护进程)
-
服务管理 systemctl
常用
systemctl start|stop|restart|reload|status 服务名
# 重启mysql
systemctl restart mysqld
# 查看mysql服务开启启动状态
systemctl list-unit-files grep | mysqld
# 设置mysql开启自启
systemctl enable mysqld
# 关闭开机自启
systemctl disable mysqld
# 查看是否自动启动
systemctl is-enbaled mysqld -
防火墙服务:firewalld
查看端口是否开放
firewall-cmd --query-port=8080/tcp
firewall-cmd --query-port=8080/udp
# 开放端口
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=8080/udp
# 关闭端口
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --permanent --remove-port=8080/udp
# 重新加载
firewall-cmd --reload -
动态监控:top
shift + P cpu排序
shift + M 内存排序
shift + N 进程号排序
-
系统网络状况:netstat
-an 按序排列输出 -p:输出进程信息
netstat -anp | grep 3306
十四、shell 脚本编写
-
vim love_you.sh
!/bin/bash
echo "I love you"
-
sh love_you
-
shell 变量:系统变量、用户自定义变量
!/bin/bash
定义变量
BOKERR_HOME=/home/bokerr
# 撤销变量
unset BOKERR_HOME
# 静态变量,不能撤销
readonly BOKERR_HOME=/home/bokerr -
变量赋值
-
vim bokerr.sh
!/bin/bash
IDATA="2022-01-05"
echo $IDATA
IDATA=date# 命名执行结果赋值变量
echo $IDATA
IDATA=$('pwd') # 命名执行结果赋值变量
echo $IDATA -
sh bokerr
- 环境变量
-
export 将shell 变量输出为环境变量[全局变量]
export IDATA=/home/bokerr
-
source 刷新配置文件,让其立即生效
source /etc/profile
-
echo 将变量输出的控制台
echo $JAVA_HOME
-
位置参数变量
!/bin/bash
echo $0 # 命令本身:bokerr.sh
echo $1 # 参数-1: 2
echo $2 # 参数-2: 1
echo $* # 全部参数视为整体
echo $@ # 代表全部参数,但是每个参数区分对待
echo $# # 代表参数个数
- sh bokerr.sh 2 1
-
预定义变量,shell 本真自带变量
echo $$ # 进程号
echo $! # 后台运行的最后一个进程号
echo $? # 最后一次执行的命令的返回状态 -
运算符
IDATA=$((3 + 8))
echo $IDATA
IDATA=$[3+9]
echo $IDATA
IDATA=expr 3 + 10# 支持 * (乘:转义加星号) / (除) % (取余)
echo $IDATA -
条件判断&流程控制
VA=2
VB=3
if [ $VA -lt $VB ]
then
echo "aaaa"
elif [ $VA -le $VB ]
then
echo "bbbb"
elif [ $VA -eq $VB ]
then
echo "cccc"
fia.整数比较
lt -little
le -little equal
# eq -equal
# gt -大于
# ge -大于等于
# ne -不等于
# b.文件权限
-r
-w
-x
# c.判断文件类型
-f # 常规文件
-e # 文件存在
-d # 是一个目录 -
read获取输入
!/bin/bash
-t 10: 等待10秒
read -t 10 -p "input some words:" IDATA
echo $IDATA -
系统函数
-
basename 返回完整路径中最后一个 / 之后的内容[文件名]
IDATA=
basename /home/rsy/love.md
echo $IDATA
--- 输出: love.md
IDATA=basename /home/rsy/love.md .md
echo $IDATA
--- 输出: love -
dirname 返回完整路径中最后一个 / 之前的内容[文件路径]
-
自定义函数
function addNumber(){
SUM=$[$n1+$n2]
echo "SUM=$SUM"
}
read -p "n1=" n1
read -p "n2=" n2
addNumber $n1 $n2 -
执行 mysqldump 备份mysql库
!/bin/bash
BACKUP=/home/uData/bak_home
DATENOW=$(date +%Y-%m-%d_%H%M%S)
echo $DATENOW
HOST=localhost
DB_USER=root
DB_PASS=bokerr.com
DB_SCHEMA=supervisecreate backHome
[ ! -d "${BACKUP}/${DATENOW}" ] && mkdir -p "${BACKUP}/${DATENOW}"
back up the mysql database name of
$DB_SCHEMAmysqldump -u${DB_USER} -p${DB_PASS} --host=${host} -q -R --databases ${DB_SCHEMA} | gzip > ${BACKUP}/${DATENOW}/$DATENOW.sql.gz
move to tar.gz then delete directory
cd ${BACKUP}
tar -czvf $DATENOW.tar.gz ${DATENOW}/
rm -rf ${DATENOW}/finally delete back over ten days
find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} ;
echo "back database $DB_SCHEMA success!"
十五、定时任务
-
crontab -e
定时每天23点30分执行脚本
30 23 * * * ./home/uData/rsy.sh
-
crontab -l 显示所有任务
-
crontab -r 删除所有任务
十六、ssh
1.生成ssh秘钥
ssh-keygen
- 发送公钥配置ssh免密:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@xx.xx.xx.xxx

浙公网安备 33010602011771号