Linux进阶内容
1 服务管理
计算机中,一个正在执行的程序或命令,被叫做进程(process)。
启动之后一只存在、常驻内存的进程,一般被称服务(service)。
1.1 centos6及之前
1.1.1 服务操作
# 开启/停止/重启/查看状态 服务
service 服务名start | stop | restart | status
# 查看该服务器有哪些服务
cd /etc/init.d

案例实操
# 查看网络服务的状态
service network status
# 停止网络服务
service network stop
# 启动网络服务
service network start
# 重启网络服务
service network restart
1.1.2 服务自启动配置
基本语法
chkconfig 服务名 操作 (功能描述:操作所有服务器自启配置)
# 关掉指定服务的自动启动
chkconfig 服务名 off
# 开启指定服务的自动启动
chkconfig 服务名 on
# 查看服务开机启动状态
chkconfig 服务名 --list
查看所有服务运行级别

运行级别

开启/关闭network(网络)服务的自动启动
chkconfig network on
chkconfig network off
开启/关闭network 服务指定级别的自动启动
chkconfig --level 指定级别 network on
# 如chkconfig --level 3 network on
chkconfig --level 指定级别 network off
1.2 centos7及之后
1.2.1 服务操作
# 开启/停止/重启/查看状态 服务
systemctl start | stop | restart | status 服务名
# 查看该服务器有哪些服务
cd /usr/lib/systemd/system

案例实操
# 查看防火墙服务的状态
systemctl status firewalld
# 停止防火墙服务
systemctl stop firewalld
# 启动防火墙服务
systemctl start firewalld
# 重启防火墙服务
systemctl restart firewalld
1.2.2 后台服务的自启配置
基本语法
systemctl list-unit-files (功能描述:查看服务开机启动状态)
systemctl disable service_name (功能描述:关掉指定服务的自动启动)
systemctl enable service_name (功能描述:开启指定服务的自动启动)

开启/关闭iptables(防火墙)服务的自动启动
systemctl enable firewalld.service
systemctl disable firewalld.service
系统运行级别

CentOS7 的运行级别简化为:
multi-user.target等价于原运行级别3(多用户有网,无图形界面)graphical.target等价于原运行级别5(多用户有网,有图形界面)
查看当前运行级别
systemctl get-default

修改当前运行级别
# 这里TARGET 取multi-user或者graphical
systemctl set-default TARGET.target
2 帮助命令
2.1 man 获得帮助信息

查看 ls 命令的帮助信息
man ls

2.2 help 获得 shell 内置命令的帮助信息
一部分基础功能的系统命令是直接内嵌在 shell 中的,系统加载启动之后会随着shell 一起加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其它命令被称为“外部命令”。
help cd

3 用户管理命令
3.1 useradd 添加新用户
基本语法
useradd 用户名 (功能描述:添加新用户)
useradd -g 组名 用户名 (功能描述:添加新用户到某个组)
案例实操
# 添加一个tony用户,默认无密码
useradd tony
# 查看该用户所在目录,默认在/home创建一个tony的文件夹
ls /home
# 为该用户设置密码
passwd tony
# 查看该用户是否存在
id tony
# 默认用户组id和用户id相同
uid=1002(tony) gid=1002(tony) groups=1002(tony)

查看该主机拥有哪些用户
# 自创建用户从1000开始
cat /etc/passwd

3.2 su 切换用户
基本语法
不带用户名称,默认切换到root用户,普通用户切换root用户需要输入root用户密码。
su 用户名称(功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)su - 用户名称(功能描述:切换到用户并获得该用户的环境变量及执行权限)
3.3 userdel 删除用户
基本语法
userdel 用户名(功能描述:删除用户但保存用户主目录)userdel -r 用户名(功能描述:用户和用户主目录,都删除)
userdel -r tony
3.4 sudo 设置普通用户具有 root 权限
使用sudo命令来切换root权限时,需要root用户先修改配置文件,赋予该用户切换root权限的权限
vim /etc/sudoers
修改 /etc/sudoers 文件,找到下面一行(91 行),在 root 下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
tony ALL=(ALL) ALL
配置成采用 sudo 命令时,切换root权限时不需要输入tony用户密码
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
tony ALL=(ALL) NOPASSWD:ALL
修改完毕,现在可以用 tony帐号登录,然后用命令 sudo ,即可获得root 权限进行操作。
sudo su切换root身份,不携带当前用户环境变量。sudo su -切换root身份,携带当前用户环境变量。
7.6 文件权限类
7.6.1 文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。
1)从左到右的 10 个字符表示,如图 7-1 所示
图 7-1 文件属性
如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:
(1)0 首位表示类型
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等- 代表文件
d 代表目录
l 链接文档(link file);
(2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User
(3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group
(4)第7-9位确定其他用户拥有该文件的权限 ---Other
2)rwx 作用文件和目录的不同解释
(1)作用到文件:
[ r ]代表可读(read): 可以读取,查看
[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
[ x ]代表可执行(execute):可以被系统执行
(2)作用到目录:
[ r ]代表可读(read): 可以读取,ls查看目录内容
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
[ x ]代表可执行(execute):可以进入该目录

举例
d表示该文件是个目录。rwx表示该文件所属用户对其拥有,读,写,执行权限。r-x表示和root用户同一组的其他用户对该文件拥有,读,执行权限。不具有写权限。r-x表示其他用户对该文件拥有,读,执行权限。不具有写权限。- 第一个
root表示该文件属主,属于root用户,第二个root表示root用户所在的属组。

7.6.2 chmod 改变权限

r=4 w=2 x=1 rwx=4+2+1=7
# 采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。
chmod 777 houge.txt
# 修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。
chmod -R 777 xiyou/
7.6.3 chown 改变所有者
1)基本语法
chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
- 选项:-R 递归操作
# 将houge.txt文件的属主改为atguigu用户
chown atguigu houge.txt
# 查看该文件详细信息
ls -al
# 属主已改变,属组还是root
-rwxrwxrwx. 1 atguigu root 551 5 月23 13:02 houge.txt
递归改变文件夹内所有文件的属主和属组
# 未改变前,查看文件详细信息
ll
# 属主和属组都是root
drwxrwxrwx. 2 root root 4096 9 月3 21:20 xiyou
# 递归改变属主和属组
chown -R atguigu:atguigu xiyou/
# 再次查看
ll
# 已经改变
drwxrwxrwx. 2 atguigu atguigu 4096 9 月3 21:20 xiyou
7.6.4 chgrp 改变所属组
# 将houge.txt文件属组改为root组
chgrp root houge.txt
# 查看
ls -al
# 属组已改变
-rwxrwxrwx. 1 atguigu root 551 5 月23 13:02 houge.txt
7.7 搜索查找类
7.7.1 find 查找文件或者目录
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
1)基本语法
find [搜索范围] [选项]
搜索范围:
- -name<查询方式> 按照指定的文件名查找模式查找文件
- -user<用户名> 查找属于指定用户名所有文件
# 根据名称查找/目录下的以txt结尾的文件。
find xiyou/ -name "*.txt"
# 查找/opt目录下,用户名称为atguigu的文件
find xiyou/ -user atguigu
# 在/home目录下查找大于200m的文件(+n 大于-n 小于 n等于)
find /home -size +200M
7.7.2 locate 快速定位文件路径
locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate 时刻。
- 由于locate 指令基于数据库进行查询,所以第一次运行前,必须使用updatedb 指令创建locate 数据库。
updatedb
locate pdu

7.7.3 grep 过滤查找及“|”管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
例:
- 在mydata.txt文件中多次出现boot关键字,想要快速定位这些关键字在该文件的第几行,可以使用grep
grep -n boot mydata.txt

7.8 压缩和解压类
7.8.1 gzip/gunzip 压缩
1)基本语法
gzip 文件(功能描述:压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
2)经验技巧
(1)只能压缩文件不能压缩目录
(2)不保留原来的文件
(3)同时多个文件会产生多个压缩包
[root@hadoop101 ~]# ls
houge.txt
[root@hadoop101 ~]# gzip houge.txt
[root@hadoop101 ~]# ls
# 不保留原来的文件
houge.txt.gz
# 解压
[root@hadoop101 ~]# gunzip houge.txt.gz
[root@hadoop101 ~]# ls
houge.txt
7.8.2 zip/unzip 压缩
1)基本语法
zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令
压缩文件夹
[root@hadoop101 opt]# touch bailongma.txt
[root@hadoop101 ~]# zip mypackage.zip houge.txt bailongma.txt
adding: houge.txt (stored 0%)
adding: bailongma.txt (stored 0%)
[root@hadoop101 opt]# ls
houge.txt bailongma.txt mypackage.zip
解压压缩文件
[root@hadoop101 ~]# unzip mypackage.zip
Archive: houma.zip
extracting: houge.txt
extracting: bailongma.txt
[root@hadoop101 ~]# ls
houge.txt bailongma.txt mypackage.zip
解压到指定文件夹
[root@hadoop101 ~]# unzip mypackage.zip -d /opt
[root@hadoop101 ~]# ls /opt/
7.8.3 tar 打包
1)基本语法
tar [选项] XXX.tar.gz 将要打包进去的内容(功能描述:打包目录,压缩后的文件格式.tar.gz)
选项功能
-c 产生.tar 打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar 文件
-C 解压到指定目录
打包并压缩多个文件及文件夹
# 将文件 a.txt b.txt 及目录mydir/ 打包并压缩为mytest.tar.gz文件
tar -zcvf mytest.tar.gz a.txt b.txt mydir/
解压到指定目录下
tar -zxvf mytest.tar.gz -C /tmp
7.9 磁盘查看和分区类
7.9.1 du 查看文件和目录占用的磁盘空间
du: disk usage 磁盘占用情况

浙公网安备 33010602011771号