systemctl start foo.service
启动服务
systemctl restart foo.service
重启服务
systemctl stop foo.service
中止服务
systemctl reload foo.service
不重启服务下从新加载配置文件
systemctl status foo.service
查看服务状态
systemctl enable foo.service
设置服务开机自动启
systemctl disable foo.service
设置服务开机不启动
systemctl is-ebabled foo.service
查看服务是否开机自启
systemctl list-unit-files --type=service
查看各个界别下的服务的启动与禁用状况node
man [数字] 命令|配置文件 获取命令,配置文件的帮助信息
whatis 命令 查看命令帮助信息中的NAME字段
help 命令 获取shell内置命令的帮助信息,which等命令找不到路径的命令都是shell内置命令(bash)
apropos 配置文件信息 查看配置文件信息中的name字段
echo 字符
输出字符
echo $变量
输出变量linux
date
查看系统当前时间
date "+%Y-%m-%d %H:%M:%S"
按照年月日小时分钟秒格式
date -s "20190101 8:30:00"
设置当前日期为2019年1月1日8:30分算法
reboot
重启shell
shutdown [选项] 时间 关闭 -c 取消前一个关机命令 -h 关机 now.立刻关机 20:20定时关机 -r 重启
系统运行级别 /etc/inittab数据库
0 关机 1 单用户 2 不彻底多用户,不含NFS服务 3 彻底多用户 4 未分配 5 图形界面 6 重启
runlevel
查询系统的运行级别apache
logout
退出登录vim
poweroff
关机windows
-a 显示全部进程,包括其余用户的进行 -u 用户以及其它详细信息 -x 显示没有控制终端的进程
top
动态监视进程活动与系统负载等信息,相似windows任务管理器缓存
pidof [参数] [服务名]
查询服务进程的PID值安全
kill [参数] [进程ID]
终止某个pid的服务进程
kiliall [参数] [服务名称]
终止某个指定名称的服务所对应的所有进程,相似windows任务管理器的结束进程树
alias rm='rm -i'
定义一个命令的别名
write 用户名 给在线用户发信 Ctrl+D 保存并发送
wall [发送信息] 给全部在线用户发送广播信息
ping [选项] ip地址 -c num 指定ping的次数
mail [用户名] 直接mail是收信,mail 用户名是给用户发信 Ctrl+D 保存发送 h 返回邮件列表 d num 删除邮件 q 退出
ifconfig [网络设备] [参数] 获取网卡配置与网络状态等信息 ifconfig 网卡名 IP地址 给网卡设置IP地址,临时生效,重启失效 ifconfig 网卡名:1 IP地址 增长虚拟网卡,绑定多个IP
uname [-a]
查看系统名称,系统内核,主机名,内核发型版本,节点名,系统时间,硬件名称,硬件平台,处理器类型,操做系统名称等
uptime
查看系统的负载信息
free [-h]
显示系统内存的使用量
who [参数]
查看当前登录主机的用户终端信息
格式:登录的用户名 登录终端(tty本地,pts远程终端) 登录时间 登录的主机地址
w [参数] [用户名]
显示目前登入系统的用户信息
last [参数]
查看全部系统的登录记录
lastlog [选项] [用户] 显示全部系统用户的最后登录信息 -u uid 查看指定用户的最后登录信息
setup 配置网络
netstat [选项] 显示网络相关信息 -t tcp协议 -u udp协议 -l 监听 -r 路由 -n 显示ip地址和端口号 netstat -an 查看本机全部的网络链接 netstat -tlun 查看本机监听的端口 netstat -rn 查看本机路由表
traceroute ip|域名
显示数据包到主机间的路径,windows中的tracert
history [参数]
显示历史执行过的命令 -c 删除历史命令记录
sosreport
收集系统配置和架构信息并输出诊断文档
pwd
显示用户当前所处的工做目录
cd [目录名称] 切换工做路径 cd - 切换上一个目录 cd ~ 切换到家目录 cd ~username 切换到username的家目录
文件类型(d目录,l软连接,-文件) 权限(ugo) 引用计数(连接) 全部者 所属组 文件大小(字节) 文件最后修改时间
ls [选项] [文件] 显示目录文件信息 ls -a all,查看所有文件,包括隐藏文件 ls -d 查看目录属性 ls -l long,查看详细信息 ls -h 显示容易阅读的文件大小 ls -i 查看文件的i节点
cat [参数] [文件名] 查看内容较少的纯文本文件 cat -n 显示行号
tac 文件
倒着显示文本,cat的倒着写
more [选项] 文件
查看内容较多的纯文本文件
|快捷键|功能|
|----|----|
|Q|q|退出|
|enter|换行|
|空格\f|翻页|
less 文件名
分页显示文件内容
|快捷键|功能|
|----|----|
|enter|换行|
|空格\f|翻页|
|向上箭头|向上换行|
|/关键词|搜索关键词|
|n|下一个搜索的关键词|
|pageup|向上翻页|
head [选项] [文件] 查看纯文本文档的前N行 head -n 20 [文件名] 查看前20行
tail [选项] [文件] 查看纯文本文件的后N行 tail -n 20 文件名 查看后20行 tail -f 文件名 持续刷新文件内容
tr [原始字符] [目标字符] 替换文本文件中的字符 cat 1.txt | tr a m 将1.txt中的a替换成m,实际文件中并无改变,只在输出时改变
wc [参数] 文本 统计指定文本的行数 wc -l 只显示行数 wc -w 只显示单词数 wc -c 只显示字节数
stat 文件名
查看文件的具体存储信息和时间等信息
cut [参数] 文本 按列提取文本字符 -d 分隔符 -f 取的列数 cut -d: -f1 /etc/passwd 提取passwd文件中的第一列(用户名)信息
diff [参数] 文件... 比较多个文本文件的差别 --brief 比较两个文件是否相同 diff --brief 1.txt 2.txt -c 详细比较多个文件的差别之处 diff -c 1.txt 2.txt
硬连接至关于 cp -p + 同步更新
经过i节点判断软硬连接,软连接在ls -l时会有箭头指向->
硬连接不能针对目录建立,不能跨分区建立
ln [参数] 源文件 目标文件 -s 建立软连接
touch [选项] [文件...] 建立空白文件或设置文件时间 touch -a 修改文件读取时间(atime) touch -m 修改文件修改时间(mtime) touch -d "2019-09-01" 文件名 同时修改atime和mtime
mkdir [选项] 目录名 建立空白目录 mkdir -p a/b/c 递归建立目录
rmdir 目录名
删除空目录
cp [选项] 源文件1,2,3 目标文件 复制文件或目录 cp -p 保留原始文件的属性 cp -d 若对象为连接文件,保留连接文件的属性 cp -r 递归复制(用于目录) cp -i 若是目标文件存在,则询问是否覆盖 cp -a 至关于-pdr
mv [选项] [源文件] [目标路径|目标文件名] 剪切文件或者文件重命名
rm [选项] 文件 删除文件或目录 rm -f 文件 强制删除,不显示确认信息 rm -r 目录名 删除目录和目录里的文件
dd [参数] 按照指定大小和个数的数据块来复制文件或者转换文件 if 输入的文件名 of 保存的文件名 bs 设置每一个块的大小 count 设置要复制块的个数 dd if=/ect/passwd of=newpass count 1 bs=560m 从passwd文件中取出一个560m的数据块,保存成newpass dd if=/dev/cdrom of=redhat7.0.iso 将光驱设备中的光盘制做成iso格式的镜像文件
file [文件|目录]
查看文件类型
只能压缩文件,不能压缩目录
不保留源文件
默认后缀 .gz
gzip 文件名 压缩 -d 解压缩 解压缩 gunzip 压缩包 解压缩
压缩文件名 file.tar.gz 通常都是先tar而后gzip压缩,tar命令配合-z使用
tar [选项] [压缩后的文件名(配合-f使用)] [文件] 对文件压缩或解压 -c 建立压缩文件 -x 解压 -t 查看压缩包中文件 -z 用Gzip压缩或解压 -f 指定文件名(压缩或解压时均可以使用) -j 用bzip2压缩或解压 -v 显示压缩和解压过程 -f 目标文件名 -P 保留原始权限和属性 -p 使用绝对路径来压缩 -C 指定解压到目录 tar -czvf 文件名.gz 打包目录 将目录使用Gzip方式打包 tar -xzvf 压缩包 -C 解压目录 将压缩包解压到指定目录
zip [选项] [压缩后的文件名] [文件或目录] 压缩文件或目录 -r 压缩目录
unzip [压缩文件] 解压zip文件
bzip2 [选项] [文件] 压缩文件 -k 压缩后保留源文件
grep [选项] [文件] 在文本中执行关键词搜索并显示匹配的结果 -b 将可执行文件(binary)看成文本文件来搜索 -c 仅显示找到的行数 -i 忽略大小写 -n 显示行号 -v 反向选择--仅列出没有关键词的行 grep 1111 1.txt 在1.txt中搜索1111
find [查找路径] 寻找条件 操做 按照指定条件查找文件 -name 匹配名称 -iname 不区分大小写 -perm 匹配权限(mode为彻底匹配,-mode为包含便可) -user 匹配全部者 -group 匹配全部组 -mtine -n +n 匹配修改内容的时间(-n是n天之内,+n是n天之前) -atime -n +n 匹配访问文件的时间 -ctime -n +n 匹配修改文件权限的时间 -nouser 匹配无全部者的文件 -nogroup 匹配无全部组的文件 -newer f1 f2 匹配比文件f1新可是比f2旧的文件 -a 两个条件同时知足 find / -size+1600 -a -size -2000 -o 两个条件知足一个便可 --type b/d/v/p/l/f 匹配文件类型(块设备/目录/字符设备/管道/连接文件/文本文件) -inum 根据i节点查找 -size 匹配文件大仙(+50k是查找超过50k的文件,-50k是查找小于50k的文件,50是等于50k) -prune 忽略某个目录 -exec …… {} \; 后面跟用于进一步处理搜索结果的命令 find / -name inittab -exec ls {} \; -ok …… {} \; 询问是否执行,后面跟用于进一步处理搜索结果的命令 find / -name inittab -ok ls {} \; find /etc -name "host*" 搜索etc目录下全部以host开头的文件 find / -perm -4000 搜索整个系统中权限中包括SUID权限的全部文件 find / -user mrhonest -exec cp -a {} /root/findfile/ \; 在整个文件系统中找出全部归属于mrhonest用户的文件并复制到root/findfile目录,({}表示find命令搜索出的每个文件)
locate 文件名 搜索文件,基于资料库查找文件,/tmp等临时文件目录的文件不会更新到资料库中 -i 不区分大小写 updatedb 更新资料库,此命令直接使用,updatedb不是参数
which 命令 搜索命令所在目录及别名信息
whereis 命令 搜索命令所在目录及帮助信息位置
标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也能够从其它文件或者命令中输入
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕
- 输入重定向
命令 < 文件 将文件做为命令的标准输入 命令 << 分界符 从标准输入中读入,知道碰见分界符才中止 命令 < 文件1 > 文件2 将文件1做为命令的标准输入并将标准输出到文件2 wc -w < 1.txt 把1.txt中的内容交给wc统计
命令 > 文件 将标准输出重定向到一个文件中(清空原有的文件数据) 命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据) 命令 >> 文件 将标准输出重定向到一个文件中(追加到原有的内容后面) 命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有的内容后面) 命令 >> 文件 2>&1 将标准输出与错误输出共同写入到文件中(追加到原来的内容后面) 命令 &>> 文件 同上,将标准输出与错误输出共同写入到文件中(追加到原来的内容后面)
grep "/sbin/nologin" /etc/passwd | wc -l 统计被限制登录用户的数量 ls -l /etc | more 用翻页的形式查看/etc下的文件列表信息 echo "111111" | passwd --stdin root 一条命令修改root用户密码
* 匹配多个字符 ? 匹配单个字符 [0-9] 匹配0-9之间的单个数字字符 [abc] 匹配a,b,c单个字符 [a-z] 匹配a-z的单个字符
\ 反斜杠:后面的变量变为单纯的字符串 '' 单引号:转义其中全部的变量为单纯的字符串 "" 双引号:保留其中的变量属性,不进行转义处理 `` 反引号:把其中的命令执行后返回给结果
mrhonest = 5 定义变量 echo "$mrhonest" 输出变量 echo '$mirhonest' 输出$mrhonest
HOME 用户的主目录 SHELL 用户在使用的shell解释器名称 HISTSIZE 输出的历史命令记录条数 HISTFILESIZE 保存的历史命令记录条数 MAIL 邮件保存路径 LANG 系统语言,语系名称 PANDOM 生成一个随机数字 PS1 Bash解释权的提示符 PATH 定义解释器搜索用户执行的命令路径 EDITOR 用户默认的文本编辑器
WORKDIR=/HOME/WORK 建立变量 export WORKDIR 提高为全局变量
i 输入模式,光标当前位置 a 输入模式,光标后觉得 o 输入模式,光标下面插入一个空行 ESC 退出写入模式
dd 删除(剪切)光标所在的整行 5dd 删除(剪切)光标开始的5行 yy 复制光标所在的整行 5yy 复制光标处开始的5行 n 显示搜索命令定位到的下一个字符串 N 显示搜索命令定位到的上一个字符串 u 撤销上一步的操做 p 将以前删除(dd)或复制(yy)过的数据粘贴到光标后面
:w 保存 :q 退出 :q! 强制退出(放弃对文档的修改内容) :wq! 强制保存退出 :set nu 显示行号 :set nonu 不显示行号 :命令 执行该命令 :整数 跳转到该行 :s/one/two 将光标所在行的第一个one替换成two :s/one/two/g 将光标所在行的全部one替换成two :%s/one/two/g 将全文中的全部one替换成two ?字符串 在文本中从下至上搜索该字符串 /字符串 在文本中从上到下搜索该字符串
运行
bash shell.sh
执行sh脚本$0 当前shell脚本程序的名称 $# 参数的总数 $* 全部位置的参数值 %? 显示上一次命令的执行返回值 $N 第N个参数的值
判断用户的参数
测试语句格式 [ 条件表达式 ] 条件表达式两边均有一个空格
文件测试语句
-d 测试文件是否为目录类型 -e 测试文件是否存在 -f 判断是否为通常文件 -r 测试当前用户是否具备权限读取 -w 测试当前用户是否具备权限写入 -x 测试当前用户是否具备权限执行
逻辑测试语句
&& 与 || 或 ! 非
整数值比较语句
** 0 = true ** ** 非0的数字 = false **
-eq 是否等于 -ne 是否不等于 -gt 是否大于 -lt 是否小于 -le 是否等于或小于 -ge 是否大于或等于
字符串比较语句
= 比较字符串内容是否相同 != 比较字符串内容是否不一样 -z 判断字符串内容是否为空
if条件测试语句
```shell
if [ 表达式 ]
then
若是表达式成立,执行
fi
```shell if [ 表达式 ] then 若是表达式成立,执行 esle 表达式不成立时,执行 fi
if [ 表达式 ] then 若是表达式成立,执行 elif [ 表达式 ] 表达式成立时,执行 else 以上两个表达式均不成立时,执行 fi
for 变量名 in 取值列表 do 命令序列 done
while 条件测试操做 do 命令序列 done
case 变量值 in 模式1 命令序列1 ;; 模式2 命令序列2 ;; …… *) esac
at 23:30 设定任务时间 at>systemctl restart httpd 设定任务详情 at>Ctrl+D结束编写 at -l 查看任务 atrm 任务序号 删除任务
echo "systemctl reatart httpd" | at 23:30
一条命令创建任务
crontab -e 建立,编辑周期任务 crontab -l 查看任务 crontab -u 编辑他人的计划任务
分,时,日,月,星期,命令 任务格式
8,9,12 设置月份,表示8月,9月,12月
12-15 设置日期,表示12日到15日
/2 执行任务的间隔时间,每隔2分钟执行一次
计划任务中的"分"字段必须有数值,不能空或者是号,"日"和"星期"字段不能同时使用
usage: crontab [-u user] file crontab [-u user] [ -e | -l | -r ] (default operation is replace, per 1003.2) -e (edit user's crontab) -l (list user's crontab) -r (delete user's crontab) -i (prompt before deleting user's crontab) -s (selinux context)
*/2 * * * * echo
date>> $HOME>test.txt
每隔2分钟输出时间到文件
管理员UID为0
系统用户UID为1-999
普通用户UID从1000开始
用户组号码:GID
useradd [选项] 用户名 建立新用户 -d 指定用户的家目录(默认为/home/username) -e 帐号到期时间,格式为:YYYY-MM-DD -u 指定用户的默认UID -g 指定一个初始的已存在的用户基本组 -G 指定一个或多个扩展用户组 -s 指定该用户默认的shell解释器
`groupadd [选项] 组名 建立用户组`
usermod [选项] 用户名 修改用户属性 -c 填写用户帐户的备注信息 -d -m -d和-m连用,可从新指定用户的家目录并自动吧旧的数据转移过去 -e 帐户到期时间,格式为:YYYY-MM-DD -g 变动所属用户组 -G 变动扩展用户组 -L 锁定该用户禁止其登录系统 -U 解锁用户,容许登录系统 -s 变动默认终端 -u 修改用户的UID
passwd [选项] [用户名] 修改用户密码,过时时间,认证信息等 -l 锁定用户,禁止登录 -u 解锁用户,容许登录 --stdin 容许经过标准输入修改用户密码,如 echo "newpassword" | passwd --stdin username -d 用户可用空密码登录系统 -e 强制用户在下次登陆时修改密码 -S 显示用的密码是否呗锁定,以及密码所采用的加密算法名称
userdel [选项] 用户名 删除用户 -f 强制删除用户 -r 同时删除用户及家目录
表明符号 | 权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读 | 能够查看文件内容 | 能够列出目录中的内容 |
w | 写 | 能够修改文件内容 | 能够在目录中建立,删除文件 |
x | 执行 | 能够执行文件 | 能够进入目录 |
- : 普通文件
d : 目录文件
l : 连接文件
b : 块设备文件
c : 字符设备文件
p : 管道文件
权限分配 文件全部者 文件所属组 其余用户
r:4 读
w:2 写
x:1 执行
SUID
SUID是一种对二进制程序进行设置的特殊权限,可让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
SGID
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
在某个目录中建立的文件自动继承该目录的用户组(只能够对目录进行设置)
SBIT
设置SBIT(粘滞位|保护位),可确保用户只能删除本身的文件
chmod -R o+t 文件|文件夹
设置SBIT特殊权限
-R 递归
chmod [参数] 权限 文件或目录名 设置文件或目录权限 chmod -R o+t 文件|文件夹 设置SBIT特殊权限 chmod [{ugoa}{+-=}{rwx}] 文件或目录 chmod u+w,g-w,o=rwx 文件或文件名 chmod mode=777 文件或目录
-R 递归
只有管理员才能够执行
chown [参数] 全部者:所属组 文件或目录名 设置文件或目录的全部者和所属组 chown username 文件或目录 将目录的全部者改成username
chgrp [参数] 用户组 文件或目录 更改文件或目录的所属组 -R 递归
默认新建的文件(非目录)没有x执行权限
umask [参数] [缺省权限值] 显示,设置文件的缺省权限 -S 以rwx形式显示 ## 文件的隐藏属性 + chattr ```shell chattr [+|-][参数] 文件 设置文件的隐藏权限 i 没法对文件进行修改,若对美剧设置了该参数,则仅能修改其中的子文件内容,不能新建或删除文件 a 仅容许补充(追加)内容,没法覆盖/删除内容(Append Omy) S 文件内容在变动后当即同步到硬盘(sync) s 完全从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域) A 再也不修改这个文件或目录的最后访问时间(atime) b 再也不修改文件或目录的存取时间 D 检查压缩文件中的错误 d 使用dump命令备份时忽略本文件/目录 c 默认将文件或目录进行压缩 u 当删除该文件后依然保留其在硬盘中的数据,方便往后恢复 t 让文件系统支持尾部合并(tail-merging) X 能够直接访问压缩文件中的内容
lsattr
lsattr [参数] 文件
显示文件的隐藏权限
setfacl
setfacl [参数] 文件名称 管理文件的ACL(访问控制权限)规则getfacl
getfacl 文件名称
显示文件上设置的ACL信息
su [-] 用户名
切换用户身份,-表明把环境表里信息也变动为新用户的相应信息shell sudo [参数] 命令名称 给普通用户提供额外的权限来完成本来root管理员才能完成的任务 -h 列出帮助信息 -l 列出当前用户可执行的命令 -u用户名或UID值 以指定的用户身份执行命令 -k 状况密码的有效时间,下次执行sudo时须要再次进行密码认证 -b 在后台执行指定的命令 -p 更改询问密码的提示语
visudo
相对路径 以当前路径开始
/boot 开机所需文件--内核,开机菜单以及所需配置文件等
/dev 以文件形式存听任何设备与接口
/etc 配置文件,系统内全部采用默认安装方式的服务的配置文件所有保存在这个目录中,如用户帐户密码,服务启动脚本,经常使用服务的配置文件等
/home 用户家目录
/bin 存放单用户模式下还能够操做的命令,全部用户都可以执行
/sbin 保存和系统环境设置相关的命令,只有超级用户可使用,部分命令普通用户容许查看
/usr/bin 存放系统命令的目录,全部用户均可以执行,这些命令和系统启动无关,可是在单用户模式下不能执行
/usr/sbin 存放根文件系统没必要要的系统管理命令,例如多数服务程序
/lib 开机过程当中须要的命令,系统调用的函数库保存位置
/media 用于挂在设备文件的目录,建议挂载软盘,光盘
/opt 放置第三方的软件,不建议使用,建议安装到/usr/local中
/root 系统管理员的家目录
/srv 一些网络服务的数据文件目录,一些系统服务启动后,在这个目录保存所需的数据
/tmp 任何人都可使用的"共享"临时目录
/proc 虚拟文件系统,列入系统内核,进程,外部设备及网络状态等
/usr/local 用户自行安装的软件
/usr/sbin linux系统开机时不会使用到的软件/命令/脚本
/usr/share 帮助与说明文件,也能够放置共享文件
/var 动态数据保存目录,主要存放动态变化的文件,如日志等
/lost+found 当文件系统发生错误时,将一些丢失的文件片断存在在这里,这个目录只在每一个分区中出现
/mnt 挂载目录,建议挂载U盘,移动硬盘等
/misc 挂载目录,建议挂载NFS服务的共享目录
/proc 虚拟文件系统,存在内存中,存在硬件信息
/sys 虚拟文件系统,存放内核相关信息
/usr 系统软件资源目录,相似c:/windows文件夹
IDE设备 /dev/hd[a-d]
SCSI/STAT/U盘 /dev/sd/[a-p]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0或/dev/ht0
逻辑分区从编号5开始
Ext3 是一款日志文件系统,可以在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误
Ext4 Ext3的改进版本,支持的存数容量高达1EB,可以有无限多的子目录,Ext4文件系统可以批量分配block块,提升了读写效率
XFS 是一种高性能的日志文件系统,最大支持存储容量18EB
super block 硬盘地图
mount 文件系统 挂载目录 挂载文件系统 -a 挂载全部在/etc/fstab中定义的文件系统 -t 指定文件系统的类型 mount /dev/sdb2 /backup 把设备/dev/sdb2挂载到/backup目录
etc/fstab
** 设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检**
设备文件 通常为设备的路径+设备名称,也能够写惟一的识别码(UUID)
挂载目录 指定要挂载到的目录,需挂载前建立好
格式类型 指定文件系统的格式,如Ext3,Ext4,XFS,SWAP,iso9600(光盘设备)等
权限选项 若设备为defaults,则默认权限问:rw,suid,dev,exec,auto,mouser,async
是否备份 若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检 若为1则开机后自动进行紫盘自检,为0则不自检
umount
umount [挂载点/设备文件]
撤销已挂载设备文件,如umount /dev/sdb2
fdisk [磁盘名称] 管理磁盘分区 m 查看所有可用的参数 n 添加新的分区 d 删除某个分区信息 l 列出全部可用的分区类型 t 该表某个分区的类型 p 查看分区信息 w 保存并退出 q 不保存直接退出
mkfs.*
mkfs.* 磁盘名称
按照*的文件系统格式格式化磁盘du [选项] [文件] 查看文件数据占用量 du -sh /* 查看系统根目录下全部文件占用多大的硬盘空间
mkswap 目录名 格式化交换分区 swapon 目录名 将SWAP分区挂载到系统中
quota
软限制 当达到软限制时会提示用户,但仍容许用户在限定的额度内继续使用
硬限制 当达到硬限制时会提示用户,并强制终止用户的操做
xfs_quota [参数] 配额 文件系统 -c 以参数的形式设置要执行的命令 -x 专家模式 xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=2 ihard=6 tom' /boot 设置用户tom对/boot目录容量的配额:软限制3MB,硬限制6MB,建立文件数量的软限制3个,硬限制6个
edquota [参数] [用户] 编辑用户的quota配额限制 -u 针对用户设置 -g 针对用户组设置
硬连接(hard link) "指向源文件inode的指针",不能跨分区对目录文件进行连接
软连接(符号连接[symbolic link]) 仅包含连接文件的路径名,可跨文件系统进行连接+ inin [选项] 目标 连接文件 建立连接文件 -s 建立软连接"符号连接",不带-s参数默认建立硬连接 -f 强制建立文件或目录连接 -i 覆盖前询问 -v 显示建立连接的过程
RAIL 0技术可以有效的提高硬盘数据的吞吐速度,但不具有数据备份和错误修复能力
将数据同时写入到多块硬盘设备上(镜像或备份),当其中某一块应硬盘发生故障后,通常当即自动以热交换的方式来恢复数据的正常使用
把硬盘设备的数据奇偶校验信息保存到其它硬盘设备中
RAID 1 + RAID 0的"组合体",该技术至少须要4块硬盘
mdadm [模式] <RAID设备名称> [选项] [成员设备名称] 管理linux系统中的软件RAID硬盘列阵 -a 检测设备名称 -n 指定设备数量 -l 指定RAID级别 -C 建立 -v 显示过程 -f 模拟设备损坏 -r 移除设备 -Q 查看摘要信息 -D 查看详细信息 -S 中止RAID磁盘列阵
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde -C表明建立一个RAID阵列卡,-v显示建立过程,后面跟上设备名/dev/md0 ,-a yes表明自动建立设备文件,-n4 表明使用4块硬盘来部署这个RAID磁盘列阵,-l 10表明使用RAID 10方案,最后加上4块硬盘设备的名称 mkfs.ext4 /dev/md0 将制做好的RAID磁盘列阵格式化为ext4格式 mkdir /RAID 创建目录,建立挂载点 mount /dev/md0 /RAID 将硬盘设备进行挂载 mdadm -D /dev/md0 查看磁盘列阵的相信信息 echo "dev/md0 /RAID ext defaults 0 0" >> /etc/fatab 将挂载信息写入配置文件
mdadm /dev/md0 -f /dev/sdb
在磁盘阵列中移除/dev/sdb磁盘
mdam -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde 建立RAID 5磁盘列阵+备份盘 ,-n 3表明建立这个列阵所需的硬盘数,-l 5表明列阵的级别,-x 1表明有一块备份盘 mlfs.ext4 /dev/md0 格式化
经常使用LVM部署命令
|功能/命令|物理卷管理|卷组管理|逻辑卷管理|
|----|----|----|----|
|扫描|pvscan|vgscan|lvscan|
|创建|pvcreate|vgcreate|lvcreate|
|显示|pvdisplay|vgdisplay|lvdisplay|
|删除|pvremove|vgremove|lvremove|
|扩展| |vgextend|lvextend|
|缩小||vgreduce|lvreduce|
pvcreate /dev/sdb /dev/sdc 让新添加的凉快硬盘设备支持LVM技术 vgcreate storage /dev/sdb /dev/sdc 把两块硬盘设备加入到storage卷组中 lvcreate -n -vo -l 37 storage 切割出一个约为150MB的逻辑卷设备 -l 37等于-L 150M msfs.ext4 /dev/storage/vo 把生成好的逻辑卷格式化 mount /dev/storage/vo 目录名 挂载
扩容前记得卸载设备和挂载点的关联
umount 目录名 卸载挂载 lvextend -L 290M /dev/storage/vo 将vo扩展至290MB e2fsck -f /dev/storage/vo 检查硬盘完整性 resize2fs /dev/storage/vo 重置硬盘容量 mount -a 从新挂载便可
umount 目录名 卸载挂载 e2fsck -f /dev/storage/vo 检查硬盘完整性 resize2fs /dev/storage/vo 128M 把逻辑卷vo的容量减少到128MB mount -a 挂载
快照的容量必须等于逻辑卷的容量
快照仅一次有效,一旦执行怀远操做后则会当即自动删除
vgdisplay 查看卷组的信息 lvcreate -L 120M -s -n SNAP /dev/storage/vo -s参数生产快照,-L指定大小 umount 目录名 先卸载挂载,此部是为了验证是否能恢复 lvconvert --merge /dev/storage/SNAP 恢复vo的快照 monut -a 从新挂载
umonut 目录名 卸载挂载 vim /etc/fstab 编辑fatab文件,删除配置文件中永久生效的设备参数(挂载的设备) lvremove /dev/storage/vo 删除逻辑卷设备,须要输入y来确认操做 vgremove storage 删除卷组,此处只写卷组名称便可,不须要设备的绝对路径 pvremove /dev/sdb /dev/sdc 删除物理卷设备
在进行路由选择前处理数据包(PRERPUTING)
处理流入的数据包(INPUT)
处理流出的数据包(OUTPUT)
处理转发的数据包(FORWARD)
在进行路由选择后处理数据包(POSTROUTING)
DROP 拒绝流量经过(将流量直接丢弃,并不响应它),发送方显示响应超时,默认规则链的拒绝动做只能是这个
-P 设置默认策略 -F 清空规则链 -L 查看规则链 -A 在规则链的末尾加入新规则 -I num 在规则链的头部加入新规则 -D num 删除某一条规则 -s 匹配来源地址IP/MASK,加叹号"!"表示除这个IP外 -d 匹配目标地址 -i 网卡名称 匹配从这块网卡流入的数据 -o 网卡名称 匹配从这块网卡流出的数据 -p 匹配协议,如TCP,UDP,ICMP --dport num 匹配目标端口号 --sport num 匹配来源端口号
iptables -L 查看防洪墙规则链 iptables -F 清空已有的防火墙规则链 iptables -P INPUT DROP 把INPUT规则链的默认策略设置为拒绝 iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT 将INPUT规则链设置为只容许指定网段的主机访问本机的22端口,在INPUT默认规则上添加 iptables -I INPUT -p tcp --dport 12345 -j REJECT 禁止全部人经过tcp协议访问本机12345端口 iptables -I INPUT -p udp --dport 12345 -j REJECT 禁止全部人经过udp协议访问本机12345端口 iptables -A INPUT -p tcp --dport 1000:102 -j REJECT 向INPUT规则链中添加拒绝全部主机访问本机1000-1024端口的策略 service iptables save 防火墙规则永久生效(重启后也不失效)
firewalld中经常使用的区域名称及策略规则
|区域|默认策略规则|
|--|--|
|trusted|容许全部的数据包|
|home|拒绝流入的流量,除非与流出的流量相关,而若是流量与ssh,mdns,ipp-client,amba-client与dhcpv6-client服务相关,则容许流量|
|internal|等同于home区域|
|work|拒绝流入的流量,除非与流出的流量相关,而若是流量与ssh,ipp-client,dhcpv6-client服务相关,则容许流量|
|public|拒绝流入的流量,除非与流出的流量相关,而若是流量与ssh,dhcpv6-client服务相关,则容许流量|
|external|拒绝流入的流量,除非与流出的流量相关,而若是流量与ssh服务相关,则容许流量|
|dmz|拒绝流入的流量,除非与流出的流量相关,而若是流量与ssh服务相关,则容许流量|
|block|拒绝流入的流量,除非与流出的流量相关|
|drop|拒绝流入的流量,除非与流出的流量相关|
firewalld-cmd命令中使用的参数以及做用
|参数|做用|
|-|-|
|--get-default-zone|查询默认的区域名称|
|--get-default-zone= <区域名称> |设置默认的区域,使其永久生效|
|--get-zones|显示可用的区域|
|--ger-services|显示预先定义的服务|
|--get-active-zones|显示当前正在使用的区域与网卡名称|
|--add-source=|将源自此IP或子网的流量导向指定区域|
|--add-interface= <网卡名称> |将源自该忘啦的全部流量都导向某个指定区域|
|--remove-source=|再也不将源自此IP或子网的流量导向某个指定区域|
|--change-interface= <网卡名称> |将某个网卡与区域进行关联|
|--list-all|显示当前区域的网卡配置参数,资源,端口以及服务等信息|
|--list-all-zones|显示全部区域的网卡怕配置参数,资源,端口以及服务等信息|
|--add-service= <服务名> |设置默认区域容许该服务的流量|
|--add-port= <端口号 协议> |设置默认区域容许该端口的流量|
|--remove-service= <服务名> |设置默认区域再也不容许该服务的流量|
|--remove-port= <端口号 协议> |设置默认区域再也不容许该端口的流量|
|--reload|让"永久生效"的配置规则当即生效,并覆盖当前的配置规则|
|--panic-on|开启应急情况模式|
|--panic-off|关闭应急情况模式|
firewalld-cmd --get-default-zone 查看firewalld服务当前所使用的区域 firewalld-cmd --get-zone-of-interface=eno16777728 查看eno16777728网卡在firewalld服务中的区域 firewalld-cmd --permanent --zone=external --change-interface=eno16777728 把friewalld服务中的eno16777728网卡的默认区域修改为external,并在系统重启后剩下
iptables不错
TCPWrappers
nmtui
nmcli
基于口令的验证
基于密钥的验证
sshd服务配置文件中包含的参数以及做用/etc/ssh/sshd_config
|参数|做用|
|-----|-----|
|port 22|默认的sshd服务端口|
|listenAddress 0.0.0.0|设置sshd服务器监听的ip地址|
|protocol 2|ssh协议的版本号|
|HostKey /etc/ssh/ssh_host_key|ssh协议版本为1时,DES私钥存放的位置|
|HostKey /etc/ssh/ssh_host_res_key|ssh协议版本为2时,RSA私钥存放的位置|
|HostKey /etc/ssh/ssh_host_dsa_key|ssh协议版本为2时,DEA私钥存放的位置|
|PermitRootLogin yes|是否容许root管理员直接登录|
|StrictModes yes|当远程用户的私钥改变时直接拒绝链接|
|MaxAuthTries 6|嘴打密码尝试次数|
|MaxSessions 10|最大终端数|
|PasswordAuthentication yes|是否容许密码验证|
|PermitEmptyPasswords no|是否容许空密码登录|
ssh [参数] ip地址
ssh链接
ssh-keygen 在客户端生成"密钥树" ssh-copy-id 服务器ip 把客户端主机中生产的公钥文件传送至远程主机
scp [参数] 本地文件 远程帐户@远程IP地址:远程目录
scp /root/q.txt 192.168.1.1:/home 将本地q.txt传到192.168.1.1的home目录,使用远程的root帐号 scp 192.168.1.1:/etc/passwd /root 将远程的passwd文件下载到本机root目录下
screen
|参数|做用|
|--|--|
|-S|新建会话|
|-d|将会话"离线"|
|-r|恢复指定会话|
|-x|恢复全部会话|
|-ls|查看全部会话|
|-wipe|删除没法使用的会话|
|exit|退出会话|
配置文件的名称 | 存放位置 |
---|---|
服务目录 | /etc/httpd |
主配置文件 | /etc/httpd/conf/httpd.conf |
网站数据目录 | /var/www/httml |
访问日志 | /var/log/httpd/access_log |
错误日志 | /var/log/httpd/error_log |
注释行信息
全局配置
区域配置
|参数|用途|
|----|----|
|ServerRoot|服务目录|
|ServerAdmin|管理员邮箱|
|User|运行服务的用户|
|Group|运行服务的用户组|
|ServerName|网站服务器的域名|
|DocumentRoot|网站数据目录|
|Directory|网站数据目录的权限|
|Listen|监听的ip地址与端口|
|DirectoryIndex|默认的索引页页面|
|ErrorLog|错误的日志文件|
|Customlog|访问日志文件|
|Timeout|网页超市时间,默认为300秒|
htpasswd -c /etc/httpd/passwd mrhonest 生成范文mrhonest我的主页所须要的密码 配置401认证 见书228页
vim /etc/httpd/conf/httpd.conf
编辑配置文件,添加虚拟主机,格式以下:
<VirtualHost 192.168.1.1:80> DocumentRoot /home/wwwrorr/www1 ServerName www.mrhonest.com <Directory /home/wwwroot/www1> AllowOVerride None Require all granted </VirtualHost>
主动模式:ftp服务主动向客户端发起链接请求
被动模式:ftp服务器等待客户端发起链接请求(ftp的默认工做模式)
vsftpd服务程序经常使用的参数以及做用
|参数|做用|
|----|----|
|listen=[YSE|NO]|是否以独立运行的方式监听服务|
|listen_address=IP|设置要监听的IP地址|
|listen_port=21|设置ftp服务的监听端口|
|download_enable=[YES|NO|是否容许下载文件|
|userlist_enable=[YES|NO] userlist_deny=[YES|NO]|设置用户列表为"容许"仍是"禁止"操做|
|max_clients=0|最大客户端链接数,0为不限制|
|max_per_ip=0|同一IP地址的最大链接数,0为不限制|
|anonymous_enable=[YES|NO]|是否容许匿名用户上传文件|
|anon_upload_enable=[YES|NO]|是否容许匿名用户上传文件|
|anon_umask=022|匿名用户上传文件的umask值|
|anon_root=/var/ftp|匿名用户的ftp根目录|
|anon_mkdir_write_enable=[YES|NO]|是否容许匿名用户建立目录|
|anon_other_write_enable=[YES|NO]|是否开放匿名用户的其它写入权限(包括重命名,删除等操做权限)|
|anon_max_rate=0|匿名用户的最大传输速率(字节/秒),0为不限制|
|local_enable=[YES|NO]|是否容许本地用户登录|
|local_umask=022|本地用户上传文件的umask值|
|locao_root=/var/ftp|本地用户的ftp目录|
|chroot_local_user=[YES|NO]|是否将用户权限禁锢在ftp目录,以确保安全|
|local_max_rate=0|本地用户最大的传输速率(字节/秒),0为不限制|
匿名开放模式
本地用户模式
虚拟用户模式
默认目录就/var/ftp目录
245页
/etc/vsftpd/user_list 和 /etc/vsftpd/ftpusers 里存放着禁止登录的用户名
默认目录是用户家目录
249页
虚拟用户数据文件须要建立 奇数行为用户名,偶数行为密码
252页
vim /etc/vsftpd/user.txt db_load -T -t hash -f user.txt user.db 将用户文件内容hash加密 useradd -d 虚拟用户ftp目录 -s /sbin.nologin 虚拟用户名 建立一个禁止登录的用户,指定其家目录(ftp目录)
tftp
UDP协议 无需认证
tftp ip
创建tftp链接
|命令|做用|
|----|---|
|?|帮助信息|
|put|上传文件|
|get|下载文件|
|verbose|显示详细的处理信息|
|status|显示当前的状态信息|
|binary|使用二进制进行传输|
|ascii|使用ASCII码进行传输|
|timeout|设置重传的超时时间|
|quit|退出|
256页
不一样操做系统之间文件共享
Samba服务程序中的参数以及做用
|[global]|参数|做用|
|----|----|----|
||workgroup=MYGROUP|工做组名称|
||server string = Samba Server Version %v|服务器介绍信息,参数%v为显示SMB版本号|
||log file=/var/log/samba/log.%m|定义日志文件的存放位置与名称,参数%m为来访的主机名|
||max log size=50|定义日志文件的最大容量为50KB|
||security=user|安全验证的方式,总共分4种, :
share:来访主机无需验证口令
user:需验证来访主机提供的口令后才能够访问
server:使用独立的远程主机验证来访主机提供的口令(集中管理帐户)
domain:使用域控制器进行身份验证|
||passdb backed=tdbsan|定义用户后台的类型,共3种:
smbpasswd:使用smbpasswd命令为系统用户设置samba服务程序的密码
tdbsam:穿件数据库文件并使用pdbedit命令创建samba服务程序的密码
ldapsam:基于LDAP服务进行帐户验证|
||load printers=yes|设置在samba服务启动时是否共享打印机设备|
||cups options=raw|打印机的选项|
|[homes]||共享参数|
||comment=Home Directories|描述信息|
||browseable=no|指定共享信息是否在"网上邻居"中可见|
||writable=yse|定义是否能够执行写入操做,与"read only"相反|
|[printers]||打印机共享参数|
pdbedit [选项] 帐户 管理SMB服务程序的帐户信息数据库 -a 用户名 创建Samba帐户 -x 用户名 删除samba帐户 -L 列出帐户列表 -Lv 列出帐户详细信息的列表 pdbedit -a -u mrhonest 为系统帐号mrhonest建立smb帐号 mkdir /home/database 建立用于共享资源的文件目录 chown -Rf mrhonest:mrhonest /home/database 设置共享资源的文件目录的全部者和全部组 264页
\\ip
链接文件共享服务器
268页
yum install cifs-utils 安装cifs-utils vim auth.smb 编辑配置文件 username=mrhonest 目标用户名 password=222222 目标密码 domain=MUGROUP 目标所在组 chmod 600 auth.smb 因为密码明文,将文件设置只有root能够读写 mkdir /localdatabae 本机创建用于挂载目标的目录 vim /etc/fstab 编辑配置文件 //目标ip/databse /localdatabase cifs credenttials=root/auth.smb 0 0 写入自动挂载信息
linux之间文件共享
yum install nfs-utils
安装NFS服务
NFS配置文件参数:/etc/exports,格式"共享目录的路径 容许放的NFS客户端(默认权限参数)"
|参数|做用|
|----|----|
|ro|只读|
|rw|读写|
|root_squash|当NFS客户端以root管理员访问时,映射为NFS服务的的匿名用户|
|no_root_squash|当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员|
|all_squash|不管NFS客户端使用什么帐户访问,均映射为NFS服务器的匿名文虎|
|sync|同时将数据写入到内存与硬盘中,保证不丢失数据|
|async|优先将数据保存到内存,而后在写入硬盘,这样效率更高,但可能会丢失数据|
vim /etc/exports /nfsfile 192.168.1.*(rw,sync,root_squash) //IP地址与权限之间没有空格 systemctl restart rpcbind //nfs须要RPC服务,用于将NFS服务器的ip地址和端口等信息发送给客户端 systemctl enable rpcbind 将rpc(远程过程调用)服务加入开机自启 systemctl start nfs-server 启动nfs服务 systemctl enable nsf-server 加入开机自启
客户端showmount命令可用的参数和做用
|参数|做用|
|----|----|
|-e|显示NFS服务器的共享列表|
|-a|显示本机挂载的文件资源状况|
|-v|显示版本号|
|-t|指定挂载的文件系统类型|
showmount -e 192.168.10.10 显示目标ip的共享列表 mkdir /nfsfile 创建用于挂载目标共享文件的目录 mount -t nfs 192.168.10.10:/nfsfile /nfsfile 将目标ip的共享目录nfsfile挂载到本地nfsfile目录 ## autofs自动挂载服务 挂载配置文件:/etc/auto.master格式: "挂载目录 子配置文件" 详见273页 ```shell yum install autofs vim /etc/auto.master 编辑配置文件 /media /etc/iso.misc 编辑内容 vim /etc/iso/misc 编辑子配置文件 iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom 编辑内容 systemctl enable sutofs 加入开机自启
279页
主服务器
从服务器
缓存服务器
bind服务配置文件
|文件|文件名|做用|
|----|----|---|
|主配置文件|/etc/named.conf|定义bind服务程序的运行|
|区域配置文件|/etc/named.rfc1912.zones|保存域名和IP地址对应关系的所在位置|
|数据配置文件目录|/var/named|保存域名和IP地址真是对应关系的数据配置文件|
yum install bind-chroot
安装bind和chroot扩展包
281页
283页
285页
286页
290页
293页
299页