Linux
CentOS 7.0及以上常用命令
- 防火墙shell
firewall-cmd --zone=public --add-port=8080/tcp --permanent # 开放8080端口 firewall-cmd --zone=public --remove-port=8080/tcp --permanent #关闭8080端口 firewall-cmd --reload # 重启防火墙立即生效 firewall-cmd --zone=public --list-ports # 查看所有开发的端口 firewall-cmd --state # 查看防火墙状态 systemctl stop firewalld.service # 关闭防火墙 systemctl start firewalld.service # 开启防火墙 netstat -lnpt |grep 3306 # 查看端口占用 (centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools)
Linux命令
shell
ln -s 文件路径 软连接路径 类似快捷方式
ln 文件路径 硬链接路径 不能跨分区与对目录使用 类似复制文件并能同步更新
ls 命令功能 参数对象 查看对象下的内容
ls -a 对象 查看所有文件包括隐藏文件
ls -l 对象 查看对象的详细内容
rw r r r(4)读w(2)写x(1)执行
u(所有者) g(所属组) o(其他人) a(所有人)
cd 切换
pwd 显示当前目录绝对路径
.表示当前目录 ..上一级目录
rmdir 对象 删除空目录
cp -r(复制目录) -p(保留文件属性)原对像 目标对象 复制
mv 原文件 目标文件 剪切文件或改名
clear 清屏
echo $LANG 查看编码
$LANG=zh_CN.编码 修改编码格式
ip addr 查询ip地址
mkdir -p(递归) 目录名 创建目录
touch 文件名 创建文件
cat -n(行号) 查看文件内容
tac -n(行号) 倒序查看内容
more (空格)或f翻页 (Enter)换行 Q退出 分页查看内容
less 可上翻(pageup) 可搜索(/) (n遍历所有) 分页查看内容
head -n(指定) 行数(默认前10行) 查看前几行内容
tail -n(指定) 行数(默认后10行) 查看后几行内容
tail -f (监控日志) 查看末尾内容动态更新
chmod 【(wgoa)(+-=)(rwx)】或对应的(数字) 对象 改变文件或目录权限
chmod -R 权限值 对象 改变文件或目录及以下的所有权限
字符 权限 对文件的含义 对目录的含义
r 读 可查看文件内容 可列出目录中的内容
w 写 可修改文件内容 可在目录中创建删除文件
x 执行 可以执行文件 可以进入目录
chown 用户 文件或目录 (只有管理员才能做修改) 改变文件或目录的所有者
chgrp 用户 文件或目录 (只有管理员才能做修改) 改变文件或目录的所属组
groupadd 组名 创建一个组
umask -S(以rwx形式显示新建文件缺省权限) 显示和设置文件的缺省权限
例:【(777)=(rwxrwxrwx)】-【(rwxr-xr--)=(754)】=【(023)=(----w--wx)】
umask 023 设置新建文件夹的缺省权限
find 搜索范围 匹配条件 文件搜索
-name *文件名*(匹配任意字符) ?(匹配单个字符) 根据文件名搜索
-iname 不区分大小写
-size +(大于) -(小于) 根据文件大小搜索
例:数据块=512字节=0.5K 100MB=102400KB=204800(数据块)
-user 根据所有者搜索
-group 根据所属组搜索
-amin 访问时间
-cmin 文件属性
-mmin 文件内容
-a 两个条件同时满足
-o 满足任意一个条件即可
-type f文件 d目录 l软链接 根据文件类型搜索
-exec或者-ok 命令 {} \ 对搜索结果执行操作
-inum 根据i节点搜索
locate 文件名 在文件资料库查找文件
updatedb 更新文件资料库
which 命令 搜索命令所在目录及别名信息
whereis 命令 搜索命令所在目录及帮助文档路径
grep i(不区分大小写) -v(排除指定字串) 文件名路径 搜索文件内容
man 命令或配置文件 获取帮助信息
help 命令 获取Shell内置命令的帮助信息
apropos 配置文件 获取配置文件信息
whatis 命令 获取命令信息
useradd 用户名 创建一个用户
passwd 用户名 设置用户密码
who (tty本地终端 pts远程终端) 查看登录用户信息
w 查看详细登录用户信息
gzip 文件 压缩文件:.gz
gunzip 压缩包 (同gzip -d) 解压缩
tar -c(打包) 压缩后文件名 目录 打包目录:.tar.gz
-v(显示信息)
-f(指定文件名)
-z(打包同时压缩)
-x(解包)
zip -r(压缩目录) 压缩后文件名 文件或目录 压缩文件或目录:.zip
unzip 解压缩
bzip2 -k(产生压缩文件后保留原文件) 文件 压缩文件:.bz2
bunzip2 -k(解压缩后保留原文件) 压缩文件 解压缩
write 用户名 以Ctrl+D保存结束 给用户发信息
wall 内容 发广播信息
ping -c(指定次数) ip地址 Ctrl+C结束 测试网络连通性
ifconfig 网卡名称 ip地址 查看和设置网卡信息
mail 用户名 查看发送电子邮件
last 列出目前与过去登入系统的用户信息
lastlog -u 502 检查特定用户上次登录时间
traceroute 网站 显示数据包到主机间的路劲
netstat 选项 显示网络相关信息
-t TCP协议
-u UDP协议
-l 监听
-r 路由
-n 显示ip地址和端口号
setup 配置网络
mount -t文件系统 设备文件名,挂载点 挂载命令
shutdown -h(关机) -r(重启) -c(取消关机命令) now(时间) 关机重启命令
logout 退出登录
a 在光标所在字符后插入
A 在光标所在行尾插入
i 在光标所在字符前插入
I 在光标所在行行首插入
o 在光标下插入新行
O 在光标上插入新行
:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
$ 移到行尾
0 移到行首
x 删除光标所在处字符
nx 删除光标所在处后n个字符
dd 删除光标所在行,ndd删除n行
dG 删除光标所在行到文件末尾内容
D 删除光标所在处到行尾内容
:n1,n2d 删除指定范围的行
yy 复制当前行
nyy 复制当前行以下n行
dd 剪切当前行
ndd 剪切当前行以下n行
p,P 粘贴在当前光标所在行下或行上
r 取代光标所在处字符
R 从光标所在处开始替换字符,按Esc结束
u 取消上一步操作
/shring 搜索指定字符串
:set ic 搜索时忽略大小写
n 搜索指定字符串的下一个出现位置
:%s/old/new/g 全文替换指定字符串
:n1,n2s/old/new/g在一定范围内替换指定字符串
:w 保存修改
:w new_filename 另存为指定文件
:wq 保存修改并退出
ZZ 快捷键,保存修改并退出
:q! 不保存修改并退出
:wq! 保存修改并退出
:r 文件名 导入文件到当前光标下
:r !命令 导入命令结果
:map 快捷键 触发命令 设置快捷键
例:map ^p(ctrl+v+p) I#<ESC> 设置#注释快捷键
例:map ^b(ctrl+v+b) 0x 设置删除注释快捷键
:n1,n2s/^/#/g 添加连续行以#号注释
:n1,n2s/^#//g 删除连续行首的#号
:n1,n2s/^/\/\//g 添加连续行以//注释
:ab 原内容 替换后内容 替换内容
编辑配置命令文件:.vimrc /home/username/.vimrc /root/.vimrc
源码包
优点:
1.开源,可以修改源代码
2.可以自由选择所需的功能
3.软件是编译安装,更加适合自动系统,更加稳定也效率更高
4.卸载方便
缺点:
1.安装过程步骤多,容易出现拼写错误
2.编译过程时间长,安装时间长
3.因是编译安装,安装过程中新手难以解决
RPM包
优点:
1.包管理系统简单,只需用几个命令完成安装,升级,查询,卸载。
2.安装速度快
缺点:
1.经过编译,不可以看到源代码
2.功能选择不如源码包灵活
3.依赖性
RPM安装:
rpm -ivh 包全名 -i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
--nodeps 不检测依赖性
-U(upgrade) 升级
-e(erase) 卸载
rpm -q(query) 包名 查询包是否安装
-a(all) 查询所有已经安装的包
-i(information) 包名 查询软件信息
-p(package) 包名 查询未安装包信息
-l(list) 包名 查询包的位置
-f(file) 系统文件名 查询系统文件属于哪个软件包
-R(requires) 包名 查询软件包的依赖性
-V(verify) 包名 效验指定RPM包中的文件
——————验证内容的8个信息:
S 文件大小是否改变
M 文件的类型或文件的权限是否被改变
5 文件的内容是否被改变
D 设备的主,从代码是否改变
L 文件路径是否改变
U 文件的属主(所有者)是否改变
G 文件的属组是否改变
T 文件的修改时间是否改变
——————文件类型:
c 配置文件(config file)
d 普通文件(documentation)
g “鬼”文件(ghost file),少见即该文件不该被这个RPM包包含
l 授权文件(license file)
r 描述文件(read me)
cpio 选项 <文件设备 标准工具,用于创建软件档案文件和从档案文件中提取文件
-i copy-in模式,还原
-d 还原时自动新建目录
-v 显示还原过程
rpm2cpio(转换文件格式)包全名 | cpio -idv .文件绝对路径 提取RPM包中文件
解释(转换包格式,将包下的绝对路径文件提取到当前目录)
yum命令:
yum list 查询所有可用软件包列表
yum search 关键字 搜索服务器上所有和关键字相关的包
yum -y install 包名 安装包
yum -y update 包名 升级包
yum -y remove 包名 卸载包
yum grouplist 列出所有可用的软件组列表
yum groupinstall 软件组名 安装指定软件组
yum groupremove 软件组名 卸载指定软件组
./configure 软件配置与检查
1.定义需要的功能选项
2.检测系统环境是否符合安装要求
3.把定义好的功能选项和检测系统环境的信息写入Makefile文件,用于后续编辑
make 编译
make install 编译安装
make clean 清空临时文件
su - root 切换用户
su - root -c “用户操作” 调用root权限执行用户命令
getfacle 文件名 查看ACL权限
setfacl -m 文件名 设定ACL权限
-m m:权限 设定mask权限
-x u:用户名 文件名 删除指定用户的ACL权限
-x g:组名 文件名 删除指定用户组的ACL权限
-m u:用户名:权限 -R 文件名 设定递归ACL权限
-m d:u:用户名:权限 文件名 默认ACL权限
SetUID:命令执行者在执行程序时暂时变成该程序的所有者身份。
-rwsr-xr-x 拥有SetUID权限
chmod 4755 文件名 设定权限(4即S)
chmod u+s 文件名 设定权限
chmod 755 文件名 取消设定权限
chmod u-s 文件名 取消设定权限
SetGID:命令执行在执行程序时暂时升级为该程序的所属组身份(包括目录)。
-rwxr-sr-x 拥有SetGID权限
chmod 2755 文件名 设定权限(2即S)
chmod g+s 文件名 设定权限
chmod 755 文件名 取消设定权限
chmod g-s 文件名 取消设定权限
Sticky BIT:有权限的用户只能删除自己建立的文件,不能删其他用户的文件
-rwxr-xr-t 拥有Sticky BIT权限
chmod 1755 目录名 设定权限(1即T)
chmod o+t 目录名 设定权限
chmod 777 目录名 取消设定权限
chmod o-t 目录名 取消设定权限
lsattr 选项 文件或目录 查看系统属性
-a 查看详细属性
chattr (+-=) 选项 文件或目录 系统属性命令
i: 文件不能删,改,添;不能在目录中建立和删除文件
a: 文件只能增加数据;目录下只能建立和修改
visudo 编写授权命令
%(组用户标识)
sc ALL(本机)=/sbin/shutdown -r now 授权sc用户可以重启服务器
sudo 命令绝对路径 文件 使用授权命令
sudo -l 查看可使用的授权命令
分区类型
1、主分区:总共最多只能分四个
2、扩展分区:只能有一个,也算做主分区,不能存储数据和格式化,必须划分成逻辑分区才可使用
3、逻辑分区:在扩展分区中划分,IDE硬盘,linux最多支持59个逻辑分区
SCSI硬盘,linux最多支持11个逻辑分区
df 选项 挂载点 文件系统查看命令
-a 显示所有文件系统信息包括特殊文件系统
-h 显示容量信息
-T 显示文件系统类型
-m 以MB显示容量
-k 以KB显示容量
du 选项 目录或文件名 统计目录或文件大小
-a 显示每个子文件的占用量
-h 显示磁盘占用量
-s 统计总占用量
fsck 选项 分区设备文件名 文件系统修复
-a 自动修复文件系统
-y 与-a一致,某些文件系统只支持-y
dumpe2fs 显示磁盘状态
mount 【-l】 查询系统中已挂载设备,-l显示卷标名称
-a 依据配置文件/etc/fstab内容自动挂载
/dev/cdrom(sr0) 挂载点 挂载光盘
-t vfat 设备文件名 挂载点 挂载U盘
umount 设备文件名或者挂载点 卸载光盘或U盘
fdisk -l 查看U盘设备文件名
fdisk /dev/sdb(分区ID) 分区
指令: a 设置可引导标记
b 编辑bsd磁盘标签
c 设置DOS操作系统兼容标记
d 删除一个分区
l 显示已知的文件系统类型
m 显示帮助菜单
n 新建分区
o 建立空白DOS分区表
p 显示分区列表
q 不保存退出
s 新建空白SUN磁盘标签
t 改变一个分区的系统ID
u 改变显示记录单位
v 验证分区表
w 保存退出
partprobe 重新读取分区表信息
mkfs -t ext4(文件系统类型)/dev/sdb1 格式化分区
自动挂载操作/etc/fstab文件
1字段:分区设备文件名或UUID(硬盘通用唯一识别码)
2字段:挂载点
3字段:文件系统名称
4字段:挂载参数
5字段:指定分区是否被dump备份 0不备份1每天备份2不定期备份
6字段:指定分区是否被fsck检测 0不检测 其他为优先级1比2高
/etc/fstab文件修复:mount -o remount,rw/
free 查询内存和Swap分区使用情况
cached(缓存):把读出来的数据保存在内存里,再次读取时
直接从内存中读取,加速了数据读取过程
buffer(缓冲):写入数据时,先把分散的写入操作保存到内存中,
达到一定程度再集中写入硬盘,减少了磁盘碎片和硬盘
的反复寻道,加速了数据的写入过程
mkswap 分区 格式化分解(用于Swap分区)
swapon 分区 加入Swap分区
swapoff 分区 取消Swap分区
echo 内容 输出命令
-e 支持\控制的字符转换
\\ 输出本身
\a 输出警告音
\b 向左删除键
\c 取消输出行末的换行符与-n一致
\e escape键
\f 换页符
\n 换行符
\r 回车键
\t 制表符即Tab键
\v 垂直制表符
\0nnn 按八进制ASCII码表输出字符
\xhh 按十六进制ASCII码表输出字符
#!/bin/bash vi编写shell脚本必写项
脚本的绝对路径或相对路径 执行脚本
bash 脚本名 执行脚本
dos2nuix 转换格式
history 选项 历史命令
-c 清空历史命令
-w 缓存中的历史命令写入保存文件~/.bash_history
alias 查询别名
别名=‘命令’ 设置命令别名
标准输出重定向 命令>文件 以覆盖的方式把输出输出到文件中
命令>>文件 以追加的方式把输出输出到文件中
标准错误输出重定向 错误命令2>文件 以覆盖的方式把错误输出输出到文件中
错误命令2>>文件 以追加的方式把错误输出输出到文件中
正确和错误输出同时保存:
命令>文件2>&1 覆盖
命令>>文件2>&1 追加
命令&>文件 覆盖
命令&>>文件 追加
命令>>文件1 2>>文件2 正确的追加到文件1中,错误的追加到文件2中
管道符 命令1 | 命令2 把命令1的正确输出作为命令2的操作对象
grep 选项 搜索内容 文件名 在文件中搜索符合条件的字符串
-i 忽略大小写
-n 输出行号
-v 反向查找
--color=auto 搜索的关键字用颜色显示
命令1;命令2 多个命令顺序执行
命令1&&命令2 逻辑与,1正确执行2才执行,1不正确则2不执行
命令1||命令2 逻辑或,1不正确2才执行,1正确执行则2不执行
dd 拷贝磁盘,硬盘分区命令
if=输入文件 指定源文件或源设备
of=输出文件 指定目标文件或目标设备
bs=字节数 指定一次输入/输出多少字节即数据块
count=个数 指定输入/输出多少个数据块
echo $变量名 调用变量
set 查看变量
unset 变量名 删除变量
pstrcc 查看进程数
export 设置环境变量即全局变量
env 查询环境变量
位置参数变量:
$n $0代表本身,$1-9代表参数,10以上需用大括号
$* 代表所有参数,看成一个整体
$@ 代表所有参数,区分对待
$# 代表所有参数的个数
预定义变量:
$? 判断上一个命令是否正确,0为正确,非0为不正确
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)
命令内容后加& 后台运行
read 选项 变量名 接收键盘输入
-p “提示信息” 在等待输入时,输出提示信息
-t 秒数 指定等待时间
-n 字符数 接受指定的字符数,就会执行
-s 隐藏输入数据,适用于机密信息输入
declare [+/-] 选项 变量名 声明变量类型
- 给变量设定类型属性
+ 取消变量的类型属性
-i 将变量声明为整数型(integer)
-x 将变量声明为环境变量
-p 显示指定变量的被声明的类型
source或. 配置文件 直接生效配置文件
正则表达式:
* 前一个字符匹配0次或者任意多次
. 匹配除了换行符外任意一个字符
^ 匹配行首:例:^hello
$ 匹配行尾:例:hello$
[] 匹配中括号中指定的任意一个字符:例:[0-9][a-z]
[^] 匹配除中括号的字符以外的任意一个字符:例:[^a-z][^0-9]
\ 转义符。用于取消讲特殊符号的含义取消
\{n\} 表示其前面的字符恰好出现n次:[0-9]\{4\}
\{n,\} 表示其前面的字符出现不小于n次:[0-9]\{2,\}
\{n,m\} 表示其前面的字符至少出现n次,最多出现m次:[a-z]\{6,8\}
cut 选项 文件名 字段提取命令(不能在空格分隔符中)
-f列号 提取第几列
-d分隔符 按照指定分隔符分割列
printf ‘输出类型输出格式’输出内容 字符截取命令
%ns 输出字符串,n指代输出几个字符
%ni 输出整数,n指代输出几个数字
%m.nf 输出浮点数,m和n指代输出的整数位数和小数位数
awk‘条件1{动作1}条件2{动作2}。。。’文件名
条件:一般使用关系表达式为条件
动作:格式化输出或流程控制语句
sed 选项 ‘动作’ 轻量级流编辑器
-n 经过sed命令处理的行输出到屏幕
-e 允许对输入数据应用多条sed命令编辑
-i 用sed的修改结果直接修改读取数据的文件
a\ (\代表数据未完结) 追加
c\ 行替换
i\ 插入
d 删除
p 打印
s 字串替换
sort 选项 排序命令
-f 忽略大小写
-n 以数值型进行排序,默认为字符串
-r 反向排序
-t 指定分隔符,默认为制表符
-k n[,m] 指定的字段范围排序,从第n字段开始,m字段结束(默认到行尾)
wc 选项 文件名 统计内容(输入重定向)
-l 只统计行数
-w 只统计单词数
-m 只统计字符数
判断:
【(空格) -e 文件名】 判断文件是否存在
-b 是否为块设备文件
-c 是否为字符设备文件
-d 是否为目录文件
-f 是否为普通文件
-L 是否为链接文件
-p 是否为管道文件
-s 是否为非空文件
-S 是否为套接字文件
-r 是否有读权限
-w 是否有写权限
-x 是否有执行权限
-u 是否有SUID权限
-g 是否有SGID权限
-k 是否有SBit权限
文件1 -nt 文件2 判断1的修改时间是否比2新
-ot 判断1的修改时间是否比2旧
-ef 判断1和2的节点号(lnode)号一致,是否为同一个文件(硬链接)
整数1 -eq 整数2 判断1和2是否相等
-ne 判断1和2是否不相等
-gt 判断1是否大于2
-lt 判断1是否小于2
-ge 判断1是否大于等于2
-le 判断1是否小于等于2
-z 字符串 判断字符串是否为空
-n 字符串 判断字符串是否为非空
字串1 == 字串2 判断字符串1是否和字符串2相等
!= 判断字符串1是否和字符串2不相等
if条件判断语句格式:
if [ 条件判断式1 ]
then
1成立执行程序1
elif[ 条件判断式2 ]
then
2成立执行程序2
else
条件都不成立,执行此程序
fi
exit 返回值 跳出循环并输出返回值
case条件判断语句格式:
case $变量名 in
“值1”)
变量的值等于值1,执行程序1
;;
“值2”)
变量的值等于值2,执行程序2
;;
*)
都不是以上值,执行此程序
;;
esac
for循环语句格式1:
for 变量 in 值1 值2 值3 。。。
do
执行程序
done
for循环语句格式2:
for (( 初始值;循环控制条件;变量变化 ))
do
执行程序
done
while判断循环语句格式:
while [ 判断语句成立则运行 ]
do
执行循环程序
done
until [ 判断语句不成立则运行 ]
do
执行循环程序
done
服务管理:
chkconfig --list 查看rpm包服务自启动状态
/etc/init.d/独立服务名 start|stop|status|restart 独立服务的启动
service 独立服务名 start|stop|status|restart ~
ntsysv 服务自启动
ps aux 查看系统中所有进程,bsd格式
ps -le 查看系统中所有进程,linux格式
pstree 选项 查看进程树
-p 显示进程的pid
-u 显示进程的所属用户
kill -1 进程号 重启进程
-9 强制杀死进程
killall -9 选项 进程名 杀死所有进程名进程
-i 交互式,询问是否杀死
-I 忽略进程名大小写
命令语句后加& 进程放入后台仍执行
命令执行过程中,按ctrl+z 进程放入后台暂停的
jobs 选项 查看进程工作
-l 显示pid
fg 工作号 恢复到前台
bg 工作号 恢复到后台
vmstat 刷新延时 刷新次数 监控系统进程
dmesg 开机时内核检测信息
dump 选项 备份后的文件名 原文件或目录 备份命令
-(0-9) 0-9十个备份级别
-f 文件名 指定备份后的文件名
-u 把备份时间记录在/etc/dumpdates文件
-v 显示备份过程中更多的输出信息
-j 调用bzlib库压缩备份文件,为。bz2格式
-W 显示允许被dump的分区的备份等级和备份时间
restore 模式选项 选项 备份命令
-C 比较备份数据和实际数据的变化
-i 进入交互模式。手工选择
-f 指定文件名
缓存(cache) 加速数据从硬盘中“读取”
缓冲(buffer) 加速数据“写入”
uname 选项 查看系统与内核相关信息
-a 查看系统所有相关信息
-r 查看内核版本
-s 查看内核名称
lsof 选项 列出进程调用打开的文件的信息
-c 字符串 只列出以字符串开头的进程打开的文件
-u 用户名 只列出某个用户的进程打开的文件
-p pid 列出某个pid进程打开的文件
crontab 选项 用户的crontab设置
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
定时任务格式:
* * * * * 命令
分 时 月 年 周
2、启动LAMP相关服务
[root@xuegod63 ~]# systemctl start httpd.service
[root@xuegod63 ~]# systemctl start mariadb.service
3、关闭防火墙
[root@xuegod63 ~]# systemctl stop firewalld
[root@xuegod63 ~]# systemctl disable firewalld
yum可以用于运作rpm包,例如在Fedora系统上对某个软件的管理:
安装:yum install < package_name >
卸载:yum remove < package_name >
更新:yum update < package_name >
apt-get可以用于运作deb包,例如在Ubuntu系统上对某个软件的管理:
安装:apt-get install < package_name >
卸载:apt-get remove < package_name >
更新:apt-get update < package_name >
zgrep ' 输入你要查找的东东' /目录 /文件 .gz 或者.log (当日)
grep ' 输入你要查找的东东' /目录 /文件 .gz 或者.log (非当日的压缩文件)
service --status-all 列出所有rpm包的服务
reboot 重启系统
sudo service network restart 重启网络服务
yum -y install net-tools 安装net-tools包解决sbin不存在