# **以下操作为centos7系统为准,其他系统可能存在命令不存在等情况

vim基本操作:
:wq 保存退出

:q 退出

:q! 强制退出不保存

命令:

复制粘贴 yy p

删除 dd

:set nu 设置行号

:set nonu 销毁行号

G 移动到末行

gg 移动到首行

u 撤销

行数+shift+g 快速定位

shutdown -h now 立刻进行关机

shutdown -h 1 “hello,1分钟后会关机了”

shutdown -r now 现在重启计算机

halt 关机

reboot 重启

***(先使用sync命令在关机或者重启)sync 把内存数据同步到磁盘

su -用户名 更换用户

添加用户 useradd 用户名

指定密码 passwd

显示当前用户所在目录 pwd

删除用户保留目录 userdel 用户名

删除用户不保留目录 userdel -r 用户名

查询用户信息 id 用户名

查询当前用户信息 whoami

用户组 :类似于角色,系统可以对有共性/权限的多个用户进行统一管理

新增组 groupadd 组名

删除组 groupdel 组名

增加用户直接添加进组 useradd -g 用户组 用户民

运行级别

0:关机

1:单用户

2:多用户没有网络状态

3:多用户有网络状态 multi-user.target

4:系统未使用保留用户

5:图形界面 graphical.target

6:系统重启

命令:init[0123456]

systemctl get-default 显示现在的运行级别

systemctl set-default TARGET.target 更改运行级别

找回root密码 重启按e 在linux16开头行 最后加上 init=/bin/sh ctrl+x进入单用户模式 输入mount -o remount,rw/

输入passwd 输入touch /.autorelabel 输入exec /sbin/init

man[命令或配置文件] (man ls)

help命令:获得shell内置命令的帮助信息

pwd:显示当前工作的绝对路径

cd~或者cd: 回到自己的家目录

cd.. 回到当前目录的上一级

mkdir -p 要创建的目录 创建多级项目

rmdir 要删除的目录 删除目录

rm -rf 删除整个目录

touch 文件名 创建空文件

cp [-r] source dest 拷贝文件

强制覆盖不提示的方法 :\cp [-r] source dest

rm [-r/-rf] 要删除的文件或目录 删除文件或目录(-rf 强制删除不出提示)

mv oldNameFile newNameFile 重命名

mv /temp/movefile /targetFolder 移动文件

cat [-n] 要查看的文件 查看文件内容

cat -n 文件内容 | more (进行交互)

more 要查看的文件 :以全屏的方式按页显示文本文件的内容

less 要查看的文件 : 根据显示需要加载内容,对于大型文件具有较高的效率

echo [] [输出选项] 输出内容到控制台

head -n 数字 文件 用于显示文件开头部分内容,默认为10行 数字指代任意行数

tail -n 数字 文件 用于显示文件结尾部分内容,默认为10行 数字指代任意行数

tail -f 文件 实时追踪文档的所有更新

写入覆盖

写入追加

CTRL+c 退出

ls -l > 文件 列表的内容写入文件a.txt 中

ls -al >> 文件 列表内容追加到文件aa.txt的末尾

cat 文件1 > 文件2 将文件1的内容覆盖到文件2

echo 内容 >> 文件 写入追加

ln -s [原文件或目录] [软链接名] 给原文件创建一个软链接

history 查看已经查看过历史命令

date 显示当前时间

date + %Y 显示当前年份

date + %m 显示当前月份

date + %d 显示当前是哪一天

date "+%Y-%m-%d %H:%M:%S" 显示年月日时分秒

date -s 字符串时间 设置日期

cal [选项] 显示选项年的日历

find [搜索范围] [选项]

选项:

{-name<查询方式>:按照指定的文件名查找模式查找文件

-user<用户名>:查找属于指定用户名的文件

-size<文件大小>:按照指定的文件大小查找文件}

locate 搜索文件 快速定位文件路径 (locate指令无需遍历整个文件系统,第一次运行时,必须使用updatedb指令创建locate数据库)

which 指令 可以查看某个指令在哪个目录下

grep过滤查找,管道符 | ,表示将前一个命令的处理结果输出并传递给后面的命令处理

grep [选项] 查找内容 源文件

选项:

{-n 显示匹配行及行号

-i 忽略字母大小写}

gzip 文件 压缩文件,只能将文件压缩成.gz文件

gunzip 文件.gz 解压文件命令

zip [选项] xxx.zip 将要压缩的内容 压缩文件和目录的命令

-r:递归压缩,及压缩目录

unzip [选项] xxx.zip 解压缩文件

-d<目录>:指定解压文件的存放目录

tar [选项] xxx.tar.gz 打包内容 最后打包的文件是.tar.gz的文件 (压缩 -zcvf ,解压 -zxcf)(解压指定位置:tar -zxvf /home/myhome.tar.gz -C /opt/tmp2)

选项 :

{-c:产生.tar打包文件

-v:显示详细信息

-f:指定压缩后的文件名

-z:打包同时压缩

-x:解包.tar文件}

ls -ahl 查看文件所有者

chown 用户名 文件名 修改文件所有者

chmod 修改文件或目录的权限

chown newowner 文件、目录 改变所有者

chown newowner:newgroup 文件/目录 改变所有者和所在组

crontab 进行定时任务的设置 (给任务权限 chmod u+x 文件)

crontab [选项]

选项:

{-e:编辑crontab任务

-l:查询crontab任务

-r:删除当前用户所有的crontab任务}

service crond restart 重启任务调度

at命令 一次性定时计划任务 (使用at命令时一定要保证atd进程的启动)(ps -ef | grep atd)

at [选项] [时间]

选项:{-m:当前指定任务被完成后,将给用户发送邮件,即使没有标准输出

-I:atq的别名 (查看)

-d:atrm的别名 (删除)

-v:显示任务将被执行的时间

-c:打印任务的内容到标准输出

-V:显示版本信息

-q<队列>:使用指定队列

-f<文件>:从指定文件读入任务而不是从标准输入读入

-t<时间参数>:以时间参数的形式提交要运行的任务}

CTRL+d 结束命令输入

查看所有挂载 情况 lsblk 或 lsblk -f

fdisk /dev/sdb 分区命令

mkfs -t ext4 /dev/sdb1 格式化磁盘

mount /dev/sdb1 目录 挂载

umount 卸载

用命令行挂载后重启会失效

永久挂载 : 通过修改/etc/fstab 实现永久挂载

df -h 查询整体磁盘

du -h /目录 查询指定目录的磁盘占用情况

{-s:指定目录占用大小汇总

-h:带计量单位

-a:含文件

--max-depth=1 :子目录深度

-c :列出明细同时,增加汇总量 }

查看主机名 hostname

ps -a :显示当前终端的所有进程信息

ps -u:以用户的格式显示进程信息

ps -x:显示后台进程运行的参数

kill [选项] 进程号 通过进程终止进程 (-9:表示强制进程立即终止)

killall 进程名 通过进程名终止进程,也支持通配符

pstree [选项] 可以更加直观的来查看进程信息 (-p:显示进程pid -u:显示进程的所属用户)

service管理指令

top [选项] 在执行一段时间可以更新正在运行的进程

{-d秒数:指定top命令每隔几秒更新,默认三秒

-i:使top不显示任何闲置或僵死进程

-p:通过指定监控进程ID来仅仅监控某个进程的状态}

netstat [选项] 查看系统网络情况

{-an:按一定顺序排列输出

-p:显示哪个进程在调用}

rpm -qa | grep 软件名 查看已安装软件的安装包

rpm -qi 软件名 查看软件信息

rpm -ql 软件名 查看安装过后的位置

rpm -qf 文件全路劲名 查看文件归属

rpm -e RPM包的名称 (rpm -e --nodeps RPM包的名称 强制删除)

rpm -ivh RPM包全路径名称

yum list | grep xx软件列表 查询yum服务器是否有需要安装的软件

yum install 安装包 下载安装软件

shell编程

以 #!/bin/bash 开头

shell变量

系统变量 : HOME PWD SHELL USER等 (显示当前shell中所有变量shell)

定义变量: 变量名 = 值

撤销变量: unset 变量

声明静态变量: readonly 变量 (不能被unset)

A=date 运行里面的命令,并把结果返回给变量A

A=$(date)等价于反引号

设置环境变量

export 变量名=变量值 将shell变量输出为环境变量/全局变量

source 配置文件 让修改后的配置信息立即生效

echo $变量名 查询环境变量的值

位置参数变量 :
$n n为数字,0代表命令本身,1-9代表第一到第九个参数,十以上的参数,用{}

$* 代表命令行中的所有参数,把所有参数看作一个整体

$@ 代表命令行中的所有参数,把每个参数区别对待

$# 代表命令行中所有参数的个数

预定义变量 : 事先定义好的变量


$! 后台运行的最后一个进程的进程号PID
$? 最后一次执行的命令的返回状态(结果为0则说明正确执行,非0则不正确)
运算符

  • $((运算式子))
  • $[运算式]
  • expr m + n
    判断语句
    -lt 小于
    -le 小于等于
    -eq 等于
    -gt 大于
    -ge 大于等于
    -ne 不等于
    -r 有读的权限
    -w 有写的权限
    -x 有执行的权限
    -f 文件存在并且是一个常规文件
    -e 文件存在
    -d 文件存在且是一个目录
    read读取控制台输入
    read(选项) 参数
    选项{
    -p 指定读取值时的提示
    -t 指定读取值时的时间}
    函数
    basename [pathname] [suffix] basename命令会删掉所有的前缀包括后一个(/)字符,然后将字符串显示出来
    dirname 和basename相反
    自定义函数
    #!/bin/bash
    #备份目录
    BACKUP=/data/backup/db
    #当前时间
    DATETIME=$(date +%Y-%m-%d_%H%M%S)
    echo $DATETIME
    #数据库的地址
    HOST=localhost
    #数据库用户名
    DB_USER=root
    #数据库密码
    DB_PW=zd081400
    #备份数据库名
    DATABASE=mysql
    #创建目录备份
    [ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"
    #备份数据库
    mysqldump -u${DB\_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz
    #将文件处理为 tar.gz
    cd ${BACKUP}
    tar -zcvf $DATETIME.tar.gz ${DATETIME}
    #删除对应的备份目录
    rm -rf ${BACKUP}/${DATETIME}
    #删除十天前的备份文件
    find ${BACKUP} -atime +10 -name "*.tar.ge" -exec rm rf {} \;
    echo "备份数据库${DATEASE}成功"
    30 2 * sh mysql_db_backup.sh

日志

/var/log 目录就是系统日志文件的保存位置
boot.log :系统启动日志
cron:系统相关定时任务日志
cups:打印信息日志
dmesg:内核自检 用 dmesg 命令
btmp:错误登录 用 lastb 命令
lasllog:最后一次登录 用 astlog 命令
mailog:记录邮件
message:liunx系统信心***
secure:验证和授权方面的信息
wtmp:永久记录所有用户的登录,注销信息,同时记录系统的后动、关机和重启事件,用 last 命令
ulmp:记录已登录用户的信息

日志服务rsyslogd

ps -aux | grep "rsyslog" | grep -v "grep" 查询linux中的rsyslogd服务是否启动
systemctl list-unit-files | grep rsyslog
日志编辑文件格式*.* 第一个*代表日志类型 第二个*代表日志级别
日志文件格式

  1. 事件产生的时间
  2. 产生时间的服务器的主机名
  3. 产生事件的服务名或程序名
  4. 时间的具体信息
    日志轮替
    在/etc/logrotate.conf 配置文件中写入轮替策略
    在/etc/logrotate.d/目录中新建日志轮替文件
    查看内存日志
    journalctl 查看全部
    journalctl -n 3 查看最新3条
    journalctl --since 19:00 --until 19:10 查看起始时间内
    journalctl -p err 报错日志
    journalctl -o verbose 日志详细内容
    journalctl_PID=1234 _COM=sshd 查看包含这些参数的日志
posted on 2022-08-04 15:52  一别正思红豆子  阅读(70)  评论(0编辑  收藏  举报