
基本命令
Centos7:
终端的组中
[root@localhost 桌面]#
root 是用户 @ 表示 在
#表示 超级管理员 其他用户为 $
关机 命令:
正常关机:
shutdown -h now
关闭内存(非正常关机):
halt
其他关机:(仅限6使用 7不支持)
init 0
VM 备份 :
备份有两种方式
1 快照 (短期备份)
2 克隆 (长期备份)
目录结构:
Bin: 二进制文件
Dev: 该目录主要是存放外接设备 u盘 光盘等 在其中的设备不能直接被访问 需要挂在
etc: 存放 一些配置文件
home: 除了root 之外的 用户的Home目录
proc: process 表示进程
sbin: super binary 存放一些二进制文件 但是必须有 super 权限的才能执行 (超级管理员才能执行的命令存放地)
Tmp: 临时文件 不需要手动删
usr: 存放用户自己安装的软件
var: 存放 日志文件
mnt:当外界设备 需要挂在的时候 就需要挂在到mnt下
基本指令
# ls [选项] [路径] 列表清单列出
选项
-l 表示 list 列表形式展示
-a 表示 全部的文件和文件夹 包含隐藏文件
-h 显示的时候 大小 以 最合适的大小显示 (可读性较高)
#pwd 列出当前工作的路径
#cd change directory 切换工作路径
cd ~ 可切换到家目录
#mkdir [路径] ...[路径] [参数] 创建文件夹 "路径可以是文件夹名称"
-p 强制 "可以创建多层"
#touch [路径] ...[路径] [参数] 创建文件
#cp [路径] [路径] [参数] 复制文件 或 文件夹到指定的位置 (copy)
-r 递归复制 (把文件夹的文件也复制过去)
复制可以改名
#mv [路径] [路径] 移动 剪切 重命名
#rm [路径] [参数] 移除文件 或者文件夹
-f 不提示 (force) 强制删除
-r 删除目录 (递归删除)
#vim [文件路径] 打开一个文件 可以是不存在的文件
shift + : 输入q 回车 退出
#> 输出 重定向 (覆盖输出)
#>> 输出 重定向 (追加输出)
#cat [路径] [...路径] 直接打开文件 (直接输出文件的内容)
可以配合 > 使用
蓝色表示 目录
京蓝色 系统文件
绿色 表示 权限限制为拥有全部权限
黑色 表示文件
进阶指令
#df [参数] 查看磁盘空间
-h 可读性较高的显示
#free [参数] 查看内存空间
-h 可读性较高的显示
-m 显示为MB单位
#head [文件] [参数] 显示文件前10行内容
-n 查看前xx 行
#tail [文件] [参数] 显示文件后10行内容 (主要 看日志)
-n 查看后xx 行
-f 实时更新 (主要是用来看日志 会动态显示)
#less 以较少的内容进行输出
#wc [参数] 统计信息 (包括行数,单词数,字节数)
-l 表示 line 行数
-w 表示 word 单词数 (依照空格进行区分)
-c 表示bates 字节数
#date [参数] 时间
#date + %F 输出 2022-05-10
# date "+%F %T" 输出 2022-05-10 21:31:35
# date "-1dat" "+%F %T" 输出 2022-05-19 21:31:35
#cal [选项] [[[日] 月] 年]
选项:
-1, --one 只显示当前月份(默认)
-3, --three 显示上个月、当月和下个月
-s, --sunday 周日作为一周第一天
-m, --monday 周一用为一周第一天
-j, --julian 输出儒略日
-y, --year 输出整年
-V, --version 显示版本信息并退出
-h, --help 显示此帮助并退出
#clear 清屏 快捷键 Ctrl +L windows (cls)
# | 管道
#ls/|grep o 过滤出 包含o的文件名 前面是输入 后面是输出
列举出 最老的文件
ls -tr | head -1 | xargs
高级命令
# hostname [参数] 输出完整主机名
-f 输出主机名中的 FQDN (全限定域名)
#id 显示ID
#whoami 我是谁? 显示当前登录的用户
#ps [参数] 查看进程
-e 等价于 -A 表示显示全部
-f 列出全部列
#top 查看服务器进程 占用资源
显示的时候 按下
M 按照内存(MEM) 从高到低
P 按照COP使用率 从高到低
1 显示CPU 信息
#du -sh [路径] 查看目录真实大小
#find 路径范围 [选项] [选项值] 查找
选项
-name 按照文件名
-type 按照类型 ( - 表示文件 d 表示文件夹)
例 find ../ -name 123 |wc -l
#service 服务名 "srart |stop | restart" 启动 关闭 重启服务
#kill [进程PID] 杀死进程
#killall [进程名] 根据进程名称杀死进程
#ifconfig 获取网卡信息
#reboot [参数] 重新启动计算机
-w 模拟重启 但是不重启 (只写关机和开机日志)
#shutdown 关机 (慎用) 尽量用 reboot
#up time 输出计算机 持续在线时间
#uname [参数] 获取计算机相关信息
-a 全部信息
#netstat [参数] 查看网络链接状态
-t 列出 TCP协议
-n 列出IP地址 (可读性较好的方式展示)
-l 过滤出 state 状态列中 数值为 listen (监听)的链接
-p 显示 pid 和进程名
#man [命令] 查看命令手册
vim 三种模式
1.命令模式 可以输入快捷键 进行一些操作 (删除行 复制 行 移动光标 粘贴等)
2.编辑模式
3.末行模式 (搜索 替换 保存 推出 撤销 高亮)
VIM 打开三种方式
#vim 文件路径
#vim +数字 文件路径 打开文件 并跳转到 对应行
#vim 路径1 路径2 路径3
vim光标移动
光标移动到行首
shift + 6 ^
光标移动到行尾
shift+ 4 $
光标移动到首行
shift + gg
光标移动到末行
G
翻屏
向上 ctrl +b / pgup
向下 ctrl +f / after
拓展
1.快速把光标移动到指定的行数
# 数字 + G
2.以当前位置快速向上/下移动指定行数
# 数字 + 方向键
3.以当前位置快速向左/右移动指定行数
# 数字 + 方向键
4.末行模式下 移动打指定行
# :数字
vim 复制操作
复制光标所在行
yy
粘贴
p
已光标所在行 复制指定行数
数字 + yy
可视化复制
ctrl + v 上下左右 控制选区 yy复制 p粘贴
vim 撤销 放弃操作
撤销
:u 撤销一步
恢复
:r 恢复到不可撤销的状态
5. 拓展
快速把光标移动到制定的行
1.数字快速移动到指定的行数
vim 各种模式之前的切换

vim 末行模式的操作
进入
# :
退出
# Esc Esc
保存
# :w
另存为
# :w [路径]
退出
# :q
保存并退出
# :wq
强制退出
# :q!
调用外部命令(了解)
# :!s
搜索
# /关键词
搜索结果中切换 上下
# N 向上
# n 向下
取消高亮
# :nohl (no high light)
替换
(string replace)
# :s/[搜索的关键词] /新的内容 只替换关闭所在行 第一个
# :s/[搜索的关键词] /新的内容/g 只替换关闭所在行 全部
# :%s/[搜索的关键词] /新的内容 替换全文 每一行第一个符合条件的
# :%s/[搜索的关键词] /新的内容/g 替换全文
显示行号
# :set nu
取消显示行号
# :set nonu
vim 拓展
打开多个文件
#vim [文件1] [文件2] [文件3]....
切换
:files 查看打开的文件
%a 代表 active 活跃的
# 代表 上一个打开过的文件
切换文件方式
1. # :open [文件名] 打开指定文件
2. # :bn #:bp 切换上一个文件 下一个文件 (back next back prev)
3. #
vim 编辑模式
在光标所在行的前面插入 i (insert)
在光标所在行的后面插入 a (after)
Esc 退出
vim 实用技巧
代码着色:
显示: (默认显示)
:syntax on
关闭:
:syntax off
在vim使用计算器
1.在编辑模式下
2.按下ctrl +R 然后输入 = 此时光标会变到最后一行
3.输入计算的内
vim 的配置
vim 有三种配置:
a. 在末行模式下输入的配置 -- 临时文件
b. 个人配置文件 (在 ~/.vimrc) 没有可以新建
c. 全局配置文件 (在 /etc/vimrc)
配置:
设置默认显示 行号
set nu
别名机制:(创建自定义命令)
文件位置 : (~/.bashrc)
参考写 即可
退出方式:
# :x
如果文件没有编辑 就是保存退出 如果没有编辑就是退出
如果是 :wq 退出 文件时间会被修改
:X 大写X 代表文件进行加密操作
Linux 自有服务
运行级别
# 0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的
# 1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
# 2 多用户模式,没有NFS和网络支持
# 3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式
# 4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
# 5 图形化模式,登陆后进入图形GUI模式,X Window系统
# 6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#
# systemctl set-default multi-user.target
用户与用户组管理
/etc/passwd 存储用户相关信息
/etc/group 存储用户组相关信息
/etc/shadow 存储用户密码相关信息
用户管理
添加用户
# useradd [选项] 用户名
-g: 表示指定用户的用户组 选项值可以是 用户组id 或者用户组名
-G:附加组 选项值可以是 用户组id 或者用户组名
-u: 用户 uid 用户的id (用户标识符) 系统默认会总500 自动分配
-c: "comment" 注释
zaj:x:1001:1001::/home/zaj:/bin/bash
用户名 : 密码:用户组ID :注释:家目录 :解释器shell
密码 : 此处密码是密码占位不代表密码
解释器shell :等待用户进入系统后 输入指令之后 该解释器会收集用户录入的指令传给内核
修改用户
# usermod [选项] 用户名
-g:表示指定用户的用户组 选项值可以是 用户组id 或者用户组名
-G:附加组 选项值可以是 用户组id 或者用户组名
-u:用户 uid 用户的id (用户标识符) 系统默认会总500 自动分配
-l: 用户名 (可以修改用户名)
设置密码
#passwd 用户名
删除用户
#userdel [选项] 用户名
-r :表示删除的时候同时删除Home目录
如果用户已经登录 kill用户全部进程
#ps -ef|grep zaj
#kill 主进程的ID
切换用户
#su 用户名
用户组管理
root:x:0:
用户组名:密码:id:组内用户
添加用户组
#groupadd [选项] 用户组名
-g: 类似于 用户的-u 设置用户组ID
修改用户组
#groupmod [选项] 用户组名
-g: 类似于 用户的-u 设置用户组ID
-n: 类似与用户修改里的 -l 设置新的用户组名称
网络设置
网卡卡配置文件位置:
/etc/sysconfig/network-scripts/
ifcfg-ens33
ifcfg-lo
设置主机名
1.设置临时 主机名
#hostname 主机名
chkconfig
查看开机启动服务
#chkconfig --list
删除 服务
#chkconfig --del 服务名
添加开机启动服务
#chkconfig --add 服务名
设置开机启动服务
#chkconfig --level [连在一起的启动级别] 服务名 [on 或 off]
例如设置apache 开机自动启动 #chkconfig --level 35 httpd on
ntp 服务
ntp 主要是对计算机的时间进行同步管理
查看时间
# date +"%F %T"
一次性 同步时间
#ntpdate 210.72.145.44
#ntpdate ntp.aliyun.com
自动同步时间
#service ntpd start
防火墙 firewalld
启动防火墙
#service firewalld start
关闭防火墙
#service firewalld stop
查看firewalld是否启动
#service firewalld status
一、条件防火墙是开启的
systemctl start firewalld
1
1、查看防火墙的配置
firewall-cmd --state
firewall-cmd --list-all
2、开放80端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload #重新加载防火墙配置才会起作用
3、移除以上规则
firewall-cmd --permanent --remove-port=80/tcp
firewall-cmd --reload
4、放通某个端口段
firewall-cmd --permanent --zone=public --add-port=1000-2000/tcp
firewall-cmd --reload
5、放通某个IP访问,默认允许
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.169 accept'
firewall-cmd --reload
6、禁止某个IP访问
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.42 drop'
firewall-cmd --reload
7、放通某个IP访问某个端口
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.169 port protocol=tcp port=6379 accept'
firewall-cmd --reload
8、移除以上规则
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.169" port port="6379" protocol="tcp" accept'
firewall-cmd --reload
9、放通某个IP段访问
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.0/24 accept'
rpm
类似于 软件管家
管理分为 查询 卸载 安装
查询电脑某软件是否安装
#rpm -qa|grep [关键字]
卸载指定软件
#rpm -e 软件名称
选项:
--nodeps 忽略依赖关系
安装指定软件
#rpm -i 软件名称
rpm -ivh
块状设备[挂载 解挂]:
查看:
# lsblk 查看块状设备
# mkfs [路径] 格式化盘符
挂载:
mount 设备原始地址 挂在路径
解挂:
#umount [当前设备的挂载点]
mount /dev/sdd1 /BackHardDisk1
umount 只会让硬盘停止读写,不会休眠。
hdparm -Y /dev/sdd1
利用 hdparm让硬盘休眠
计划任务
#crontab [选项]
-l : list 列表
-e : edit 编辑
-u : 指定用户 如果不指定就是当前用户
-r :remove 删除指定用户计划任务
计划命令 语法规则
详见百度 crontab
分 时 日 月 周 和 需要执行的命令
取值范围
分:0-59
时:0-23
日:1-31
月:1-12
周:0-6 0是周天
四个符号:
* : 表示取值范围 的每一个数字
- : 区间 例如 1-7
/: 每多少个 例如 想每10分钟一次 */10
,:表示多个取值 例如 1,2,3,4
例如每天的0.0分执行 reboot 指令
0 0 * * * reboot
例如每十分钟执行一次
在时的位置写 */10 代表每十分钟
例如每小时的10分 20分 30分 钟执行一次
在时的位置写 10,20,30 代表每十分钟
问题1:
每月 1 .10 22日 的 4:55重启 network 服务
45 4 1,20,22 * * service network restart
真实案例 Centos7 测试
每隔1分钟 往 root 中的RT中 写入 当前时间:
执行的命令:
date +"%F %T" >> /root/RT
分 时日月周
1 * * * * date +"%F %T" >> /root/RT
注意事项 : 如果加上秒 他会提示不正确
权限操作
查看文件权限信息
#ls -l 等价于 #ll
#chmod 选项 权限模式 文档
选项:
-R 递归设置权限
权限模式:
该文档需要设置的权限信息
十位字符表示含义
第一位 文档类型
d表示文件夹 - 表示文件 l表示软连接 s表示套接字 等
第二到第四位
文档所有者权限情况
第二位 : r读权限 - 不可读
第三位 : w写权限 - 不可写
第四位 : x 可执行 - 不可执行
第五 到 第七位
表示所有者在同一个组的用户权限情况
第五位 : r读权限 - 不可读
第六位 : w写权限 - 不可写
第七位 : x 可执行 - 不可执行
第八到第十位 除了前面两部分 其他用户的权限
第八位 : r读权限 - 不可读
第九位 : w写权限 - 不可写
第十位 : x 可执行 - 不可执行
设置权限
# chmod [选项] 文件或文件夹
-R 递归设置
设置 文件 RT 所有者 所有者所在组的成员 其他用户 权限 为可读 写 执行
chmod u+rwx,g+rwx,o+rwx RT
或
chmod a+rwx RT
:
软件安装
解压:
常用语法:
#tar -zxvf *.tar.gz
#tar -jxvf *.tar.bz2
选项含义:
-z 等价于 --gzip 或 --ungzip :通过gzip指令处理文件
-x 等价于 --extract 或 --get :从文件中还原文件; 解压
-v :显示操作过程
-f 或 --file :指定一个文件
-j :支持bzip2 解压文件
yum
#yum list 列出当前电脑所有软件
#yum search 包名 搜索包
#yum [-y] install 包名
#yum [-y] update [包名] 不指定包 更新全部软件
#yum [-y] remove 包名
Mysql 安装
#yum install mysql-server
shell
编写规范:
#!/bin/bash 告知系统shell解释器
文件命名规范
文件名.sh
expr
` expr 2 + 2 `
与或非
! 非运算
-o 或 运算
-a 与运算
文件运算符
-b file 检测文件是不是块状设备
-c file 检测文件是否是字符设备文件
-d file 检测文件是不是目录
发短信
curl -i -k -X POST 'https://dfsns.market.alicloudapi.com/data/send_sms' -H 'Authorization:APPCODE ba76ad162f6142bdba050f1b779d7d57' --data 'content=code%3A1234&phone_number=13145325870&template_id=TPL_0000'
Linux 查看外网IP 命名
curl ifconfig.me
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员HoneyZ
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果