Linux运维基础
# Linux 运维基础
# 1. 系统优化
安装完系统之后需要对一些配置做一些优化设置,下面是几个方面的操作
# 1.1 yum源优化
yum源默认的是国外的,这里可以采用阿里源、清华源、SOHU源等
默认yum源为:/etc/yum.repos.d/CentOS-Base.repo
修改默认的源:
- 修改之前将
/etc/yum.repos.d/CentOS-Base.repo备份 - 下载:
/etc/yum.repos.d/CentOS-Base.repo http://morrors.aliyun.com/repo/Centos-7.repo 
# 1.2 固定IP
配置文件路径 /etc/sysconfig/network-scripts/ifcfg-eth0
修改操作
- BOOTPRORO属性值由DHCP改为static
 - 删除UUID
 - 添加网关GATEWAY
 - 添加IP IPADDR
 - 添加子网掩码NETMASK
 - 添加DNS解析 DNS1、DNS2
 
# 2. 操作命令
# 2.1 介绍命令行模式
命令提示符
[当前用户@主机名称 当前目录名]
#号表示管理员用户
$普通用户
命令行模式的登陆
username: root | other
password: ****
命令行模式的退出
exit | logout | ctrl + d
快捷键
tab : 命令或路径等操作自动补全,Linux 神奇,最有用的快捷键。
光标上: 在命令行可以快速找到上一次或多次 执行的记录
光标下: 向下找执行过得命令的记录
ctrl+a: 光标移动到命令行的行首
ctrl+e: 光标移动到命令行的行尾
ctrl+f: 光标向右移动一个字符
ctrl+b: 光标向左移动一个字符
ctrl+insert: 复制
shift+insert: 粘贴
ctrl+c: 中断信号
ctrl+d: 退出终端
q: 退出帮助
ctrl+l: 清屏相对于clear命令
帮助文档
man
# 2.2 文件和目录的基础命令
特殊目录
/: 根目录
~: 主目录
.: 当前目录
..: 当前目录的上一级目录
目录相关的命令
cd:改变当前工作目录  -  cd /
ls:以列表的形式展示目录内容
ls -l:以详细信息的方式显示目录的可见内容
ls -a:显示当前目录的所有内容,包含隐藏文件
ls -al:上面组合
pwd:在任何目录内显示当前目录的工作路径
mkdir:新建一个目录  - mkdir Day01 Day02 Day03 Day04 ....N
rmdir:删除一个空目录
rm:删除一个文件或目录
- 参数 -r 将目录及以下内容逐一删除/递归删除
 - 参数 -f 强制删除 不需要确认
 - 参数 -i 删除前逐一询问确认
 
cp:复制/拷贝一个文件或目录
cp -r:用来复制目录和文件(目录下的所有子 目录和文件)
mv:移动文件或目录
# 2.3 文件管理命令
touch命令
Linux下创建一个或多个文件或隐藏文件
touch 文件名.文件的扩展名
例子:
- touch a.txt
 - touch a.txt b.txt c.txt
 
echo命令
输出重定向:
>输出重定向覆盖的方式写入>>输出重定向追加的方式写入2>>错误信息追加&>>正确和错误信息均写入同一 个文件
cat命令
从文件的第一行显示文件的内容
echo "HelloWorld" > a.txt
cat a.txt
 2
cat命令高级 - 重定向输入
[root@sec ~/SEC/day07]# cat >c.txt<<EOF
> 北国风光,千里冰封,万里雪飘
> 望长城内外,惟余莽莽,大河上下,顿失滔滔。
> 上舞银蛇,原驰蜡象,欲与天公试比高。
> 须晴日,看红装素裹,分外妖娆。
> 江山如此多娇,引无数英雄竞折腰。
> 再见
> EOF
 2
3
4
5
6
7
8
tac命令
从文件的最后一行显示文件的内容
nl命令
显示行号,从文件的第一行显示文件的内容
more命令
一页一页的翻动显示
space键 就是向下翻页
b键 向上翻页
-num 5
[root@sec ~/SEC/day07]# more -3 c.txt 北国风光,千里冰封,万里雪飘 望长城内外,惟余莽莽,大河上下,顿失滔滔。 上舞银蛇,原驰蜡象,欲与天公试比高。 --More--(51%)1
2
3
4
5
less命令
一页一页的翻动显示
head命令
取出文件的前几行
head -n 3 c.txt
 tail命令
取出文件的后几行
tail -n 3 c.txt
 # 2.4 VI/VIM文本编辑器
使用yum安装vim
yum install -y vim
 使用VIM文本编辑器创建
注意:如果new.txt文件存 在,直接打开它
注意:如果new.txt文件不 存在,先新建再直接打开它
VIM常见模式
# 2.4.1 命令模式 - 默认的模式
按字符i/I进入到插入模式/编辑模式
- i 进入到编辑模式Insert mode 从点前光标处开始插入文本
 - I 进入到编辑模式Insert mode 从点前光标所在行,行首开 始插入文本
 
按字符a/A进入到插入模式/编辑模式
- a 进入到编辑模式Insert mode 从点前光标处下一个字符开 始插入文本
 - A 进入到编辑模式Insert mode 从点前光标所在行,行尾开 始插入文本
 
按字符o/O进入到插入模式/编辑模式
- o 进入到编辑模式Insert mode 从点前光标处下一行,开始 插入文本
 - O 进入到编辑模式Insert mode 从点前光标处上一行,开始 插入文本
 
保存文件 快捷键
ZZ 注意 大写
上下左右 移动光标
yy命令 复制当前光标所在行
nyy命令 复制当前光标所在n行
p命令 在光标所在行的下一行进行粘贴
dd命令 删除光标所在行
ndd命令 删除光标所在n行
gg命令 快速跳转到文件的头部所在行的首字符
G命令 快速跳转到文件尾部所在行的首字符
n+G命令 快速跳转到文件尾部所在第行的首字符
$命令 快速到光标所在行的行尾字符
n+$命令 快速到光标所在第N行的行尾字符
u命令 撤销操作
# 2.4.2 编辑模式 - 插入模式
可以正常输入内容
上下左右移动光标
回车键换行
退格键进行删除
END键 快速移动光标到行尾
HOME键快速到行首
ESC 何回到命令模式
# 2.4.3 底行模式 - 命令行模式
在命令模式下 输入 冒号:
set nu 显示行号
wq 保存并退出
w 数据保存到磁盘
q 退出当前的文件
q! 强制退出,不保存
文本替换
- s/old/new 只替换光标所在行,从左到右第一次出现的位置
 - s/old/new/g 只替换光标所在行,从左到右所有出现的位置
 - %s/old/new/g 替换整个文档中的关键字为新的替换内容
 
搜索查找 /keyword
底行模式回到命令模式
- ESC 等待输入命令的时候
 - w
 
# 3. 文件属性和权限管理
# 3.1 文件属性
常用命令有:ls -al [file],其中:ls是list的意思,显示文件的文件名及相关属性。-al表示列出所有的文件详细的权限和属性(也包含了隐藏文件,即文件名第一个自复位"."的文件)
[root@linux-01 ~/test01]#  ls -al t1.txt 
-rw-r----- 1 root root 33 2月   8 11:07 t1.txt
[root@linux-01 ~/test01]#  ls -al
总用量 20
drwxr-x---   4 root root 4096 2月   8 11:07 .
dr-xr-x---. 11 root root 4096 2月   8 11:07 ..
drwxr-x---   2 root root 4096 2月   8 11:04 t01
drwxr-x---   2 root root 4096 2月   8 11:04 t02
-rw-r-----   1 root root   33 2月   8 11:07 t1.txt
 2
3
4
5
6
7
8
9
rwx:读(r)、写(w)、执行(x)这三种权限一点也不陌生了。对于文件和目录有着不一样的意义
属性说明
drwxr-x--- 2 root root 4096 2月 8 11:04 t01 为例
第1列:表示文件是目录、文件、或链接文件等。后面是3个为一组,即为文件权限,其中r表示read可读,w表示write可写,x表示execute可执行,且位置固定rwx,若无对应权限则为-。第1组为文件所有者权限,第2组为同用户组的权限,第3组为其他非本用户组的权限。
d:表示目录;
rwxr-x---:表示目录所有者权限为(rwx)可读、可写、可执行,同用户组的权限为(r-x)可读、不可写、可执行,其他非本用户组的权限为(---)无。
2:表示有2个目录名连接到此节点(i-node),每个目录都会将它的权限与属性记录到文件系统的i-node中,不过我们使用的目录树却是使用文件名来记录,所以每个目录名就会连接到一个i-node,这个属性就是记录有多少不同的目录名连接到相同的一个i-node中。
root:表示这个目录的所有者账号是root。
root:表示这个目录的所属用户组是root。
4096:表示这个目录的容量大小是4096B,默认单位为B。
2月 8 11:04:表示这个目录的创建文件日期或者最近的修改日期是2月8日11点4分。
t01:表示该目录名为t01
属性修改
chgrp改变所属用户组
被改变的组名必须在/etc/group文件内存在。若不在,使用该命令时,会报错。
[root@linux-01 ~/test01]#  ls -al t1.txt 
-rw-r----- 1 root root 33 2月   8 11:07 t1.txt
[root@linux-01 ~/test01]#  chgrp u3 t1.txt 
[root@linux-01 ~/test01]#  ls -al t1.txt 
-rw-r----- 1 root u3 33 2月   8 11:07 t1.txt
[root@linux-01 ~/test01]#  chgrp u4 t1.txt 
chgrp: 无效的组:"u4"
[root@linux-01 ~/test01]#  ls -al t1.txt 
-rw-r----- 1 root u3 33 2月   8 11:07 t1.txt
 2
3
4
5
6
7
8
9
其中,用户组可以改成u3,但是不可以改成u4。我们查看/etc/group中是否包含这些组
[root@linux-01 ~/test01]#  grep 'u3' /etc/group
u3:x:992:
[root@linux-01 ~/test01]#  grep 'u4' /etc/group
[root@linux-01 ~/test01]#
 2
3
4
chown改变文件所有者
被改变的用户名必须在/etc/passwd文件内存在。若不在,使用该命令时,会报错。
[root@linux-01 ~/test01]#  ls -al t1.txt 
-rw-r----- 1 root u3 33 2月   8 11:07 t1.txt
[root@linux-01 ~/test01]#  chown u3 t1.txt 
[root@linux-01 ~/test01]#  ls -al t1.txt 
-rw-r----- 1 u3 u3 33 2月   8 11:07 t1.txt
[root@linux-01 ~/test01]#  chown u4 t1.txt 
chown: 无效的用户: "u4"
[root@linux-01 ~/test01]#  ls -al t1.txt 
-rw-r----- 1 u3 u3 33 2月   8 11:07 t1.txt
 2
3
4
5
6
7
8
9
其中,所属用户可以改成u3,但是不可以改成u4。我们查看/etc/passwd中是否包含这些组。
当然,我们也可以使用chown对用户和用户组同时赋权。
[root@linux-01 ~/test01]#  ls -al t1.txt 
-rw-r----- 1 u3 u3 33 2月   8 11:07 t1.txt
[root@linux-01 ~/test01]#  chown u1:u1 t1.txt 
[root@linux-01 ~/test01]#  ls -al t1.txt 
-rw-r----- 1 u1 u1 33 2月   8 11:07 t1.txt
 2
3
4
5
递归赋权
若遇到递归目录需要赋权,我们可以通过chown [-R] 账号名称 目录的方式进行赋权。
[root@linux-01 ~/test01]#  chown u2:u2 *
[root@linux-01 ~/test01]#  ls -al
总用量 20
drwxr-x---   4 root root 4096 2月   8 11:07 .
dr-xr-x---. 11 root root 4096 2月   9 00:01 ..
drwxr-x---   2 u2   u2   4096 2月   8 11:04 t01
drwxr-x---   2 u2   u2   4096 2月   8 11:04 t02
-rw-r-----   1 u2   u2     33 2月   8 11:07 t1.txt
[root@linux-01 ~/test01]#  cd t01
[root@linux-01 ~/test01/t01]#  mkdir t0101
[root@linux-01 ~/test01/t01]#  cd ..
[root@linux-01 ~/test01]#  chown u2:u2 *
[root@linux-01 ~/test01]#  ll
总用量 12
drwxr-x--- 3 u2 u2 4096 2月   9 15:18 t01
drwxr-x--- 2 u2 u2 4096 2月   8 11:04 t02
-rw-r----- 1 u2 u2   33 2月   8 11:07 t1.txt
[root@linux-01 ~/test01]#  cd t01
[root@linux-01 ~/test01/t01]#  ll
总用量 4
drwxr-x--- 2 root root 4096 2月   9 15:18 t0101
[root@linux-01 ~/test01/t01]#  cd ..
[root@linux-01 ~/test01]#  chown -R u2:u2 *
[root@linux-01 ~/test01]#  cd t01/
 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 3.2 文件权限
chmod改变文件权限
可以通过使用chmod命令对文件权限作出变更,有两种使用形式,一种是使用数字,另一种使用符号。
chmod数字方式
上述总结中,我们了解到文件的基本权限有9个,分别是owner,group,others三种身份带上各自的read、write、execute权限,如[-rwxrwxrwx],3个一组,每一组我们都可以使用数字来对应。
| 权限 | 说明 | 数字 | 
|---|---|---|
| r | read读权限 | 4 | 
| w | write写权限 | 2 | 
| x | execute执行权限 | 1 | 
每种身份(owner,group,others)对应的(read、write、execute)权限都需要累加。如[-rw-r--r--],该文件的权限数字是644,计算方式如下:
owner=rw-=4+2+0=6;group=r--=4+0+0=4;others=r--=4+0+0=4;
使用语法:
chmod [-R] xyz 文件或目录xyz:表示数字类型的权限属性,即rwx对应的属性数值相加。
示例
[root@linux-01 ~/t1]#  ls -al test1.txt 
-rw-r----- 1 root root 0 3月   7 11:13 test1.txt
[root@linux-01 ~/t1]#  chmod 644 test1.txt 
[root@linux-01 ~/t1]#  ls -al test1.txt 
-rw-r--r-- 1 root root 0 3月   7 11:13 test1.txt
 2
3
4
5
原权限为[-rw-r-----],将其改为本用户可读写,其他都只是可读,那就改为[-rw-r--r--]即数字为644。
chmod符号方式
每种身份owner,group,others,其实还对应缩写u、g、o。另外,a代表all,就是所有身份。
| 命令 | 身份 | 操作 | 权限 | 对象 | 
|---|---|---|---|---|
| chmod | u g o a | +(加入) -(除法) =(设置) | r w x | 文件或目录 | 
使用语法
chmod u=rw,g=r,o=x 文件目录chmod u+rw,g-x,o+r 文件目录chmod a-x 文件目录
示例
[root@linux-01 ~/t1]#  ls -al test1.txt 
-rw-r--r-- 1 root root 0 3月   7 11:13 test1.txt
[root@linux-01 ~/t1]#  chmod u+x,o+w test1.txt 
[root@linux-01 ~/t1]#  ls -al test1.txt 
-rwxr--rw- 1 root root 0 3月   7 11:13 test1.txt
[root@linux-01 ~/t1]#  chmod a+x test1.txt 
[root@linux-01 ~/t1]#  ls -al test1.txt 
-rwxr-xrwx 1 root root 0 3月   7 11:13 test1.txt
[root@linux-01 ~/t1]#  chmod a-wx test1.txt 
[root@linux-01 ~/t1]#  ls -al test1.txt 
-r--r--r-- 1 root root 0 3月   7 11:13 test1.txt
[root@linux-01 ~/t1]#  chmod o+wx test1.txt 
[root@linux-01 ~/t1]#  ls -al test1.txt 
-r--r--rwx 1 root root 0 3月   7 11:13 test1.txt
 2
3
4
5
6
7
8
9
10
11
12
13
14
chmod参数详解
[root@linux-01]#  chmod --help
用法:chmod [选项]... 模式[,模式]... 文件...
 或:chmod [选项]... 八进制模式 文件...
 或:chmod [选项]... --reference=参考文件 文件...
Change the mode of each FILE to MODE.
With --reference, change the mode of each FILE to that of RFILE.
  -c, --changes          like verbose but report only when a change is made
  -f, --silent, --quiet  suppress most error messages
  -v, --verbose          output a diagnostic for every file processed
      --no-preserve-root  do not treat '/' specially (the default)
      --preserve-root    fail to operate recursively on '/'
      --reference=RFILE  use RFILE's mode instead of MODE values
  -R, --recursive        change files and directories recursively
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出
 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 4. 系统用户和用户组
# 4.1 用户管理
查看用户
命令:cat /etc/passwd
添加用户
语法:useradd [参数] 用户名
参数:
-d 声明用户家目录(默认:/home/用户名)
-g 声明所属组(默认自动创建同名组)
-c 设置备注
-s 用户登录后触发的shell指令(注:如果是/sbin/nologin 不能登录)
 2
3
4
用户修改
语法:usermod 参数 用户名
参数:同上四个参数,另外 -l 更改用户名
用户删除
语法:userdel -r 用户名 (注:-r 表示同时删除家目录)
用户密码及状态修改
语法:passwd [参数] 用户名 (注意:不加参数直接回车则设置用户密码)
参数:
-S  查看用户状态(注意S为大写)
-l  冻结,不能登录
-u  解冻
 2
3
# 4.2 用户组管理
查看用户组
命令:cat /etc/group
用户组添加
语法:groupadd [参数] 组名
参数:-g 设置组编号
用户组修改
语法:groupmod 参数 组名
参数:
-g 更改用户组编号
-n 更改用户组名
 2
用户组删除
语法:groupdel 组名 (注:用户组下有用户则不能删除)