Linux系统命令学习笔记: 上部.
Linux系统命令学习笔记: 下部.
本文以CentOS7为例
组管理
用户组是用户的容器,用户能从用户组继承权限。
在Linux中,每个用户必须属于一个组,不能独立于组之外。
在Linux中所有文件都有 所有者、所在组、其他组的概念。
文件/目录 所有者
文件/目录的所有者一般为创建者,谁创建了谁就是该文件/目录的所有者。
查看文件所有者
指令: ls -ahl
案例:创建一个组police,并新建一个用户tom添加进组police,使用tom新建一个文件,查看文件详情。
修改文件所有者
指令:chmod [参数] 所有者名称 文件
可选参数:-R 代表某一目录及其子目录的所有者均改变
案例:root用户创建一个root.txt文件,此时root.txt所有者为root,将其的所有者修改为tom用户。
修改文件所在组
指令:chgrp 组名 文件
可选参数:-R 代表某一目录及其子目录的所在组均改变
案例:将属于root组的root.txt文件所在组改为police组。
其他组概念
除了文件的所有者和所在组的用户外,系统其他用户都是文件的其他组。
权限管理
权限介绍
在Linux系统当中,每个文件信息都由这6个部分组成:
①
第一部分如图共有10个字母,可拆分成 1 3 3 3 的形式
第一位:代表文件的类型
- - 代表普通文件
- d 代表目录
- c 代表字符设备 【如 键盘,鼠标等】
- b 代表块文件 【如 硬盘】
- l 代表软链接
第2-4位:代表该文件所有者 对该文件操作的权限
- - 代表无权限
- r 代表读权限
- w 代表写权限
- x 代表执行权限
第5-7位:代表该文件所在组的用户 对该文件操作的权限
- 字符意义同上
第8-10位:代表该文件其他组的用户 对该文件操作的权限
- 字符意义同上
②
第二部分为该文件的硬连接个数或子目录数
- 若是目录 这部分数字则表示该目录的子目录数
- 若是文件 这部分数组则表示该文件的硬连接数
③
第三部分分别表示该文件的所有者和所在组
④
第四部分表示该文件的大小,单位为字节(bytes)(若是目录 则统一为4096)
⑤
第五部分为该文件的最后一次修改时间
⑥
第六部分为文件名
rwx权限详解
① 对于文件
- r 代表可读取 查看该文件
- w 代表可修改该文件 但不能删除 删除的前提是对该文件所在的目录具有r(读)权限
- x 代表可执行该文件
② 对于目录
- r 代表可读取 查看该目录 如 ls
- w 代表可修改该目录 在目录里 创建 + 删除 + 重命名目录
- x 代表可进入该目录
修改文件权限
指令:chmod [参数] 文件目录名
u 所有者 ,g 所在组 ,o 其他组, a 所有人(u g o总和)
① 第一种方式 + - =变更权限
案例:
- 给abc文件的所有者读写执行权限,给所在组读执行权限,给其他组读执行权限
- 给abc文件的所有者除去执行权限,增加组写的权限
- 给abc文件的所有用户除去读的权限
② 第二种方式 数字 变更权限
r=4,w=2,x=1
案例:将abc文件的权限修改为 rwx r-x --x
思路:rwx = 4+2+1 =7 r-x = 4+0+1=5 --x = 0+0+1=1
网络静态ip配置
作为开发人员 服务器经常需要使用 但是服务器的ip地址是不可以随意更改的 所以需要进行静态ip配置 这样每次重启服务器 ip地址也不会改变
① 原信息
网络配置需为NAT模式
链接: 虚拟机设置网络适配器-桥接/NAT/仅主机三种模式介绍
② 修改网络配置文件
TYPE="Ethernet"
BOOTPROTO="static" #ip配置方式 需改为static使用静态IP地址,默认为dhcp协议
DEFROUTE="yes"
EERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="4bfe9980-6a2b-4d4c-94ea-628101ce4663"
DEVICE="eno16777736" #接口名
#添加或修改以下字段即可 以上为参考 无需改动
ONBOOT="yes" #修改为yes 系统启动时网络接口是否有效
IPADDR="192.168.86.100" # 设置的静态IP地址 需要与vmnet8网卡地址同一网段
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.86.2" # 网关地址 需要与vmnet8网卡地址同一网段
DNS1="192.168.86.2" # 域名解析器 与网关地址相同即可
说明:可在虚拟网络编辑器查看到VMnet8的网段信息
③ 重启服务
1、 重启网络服务(推荐)
service network restart
2、重启虚拟机
reboot
④ 测试
使用ping命令查看是否可以上网
进程管理 ▲
概念:
- 每个执行的程序(代码)都称为一个进程。每个进程都分配一个ID号。
- 每个进程都会对应一个父进程,而这个父进程可以复制多个子进程,如www服务器。
- 每个进程都可能以两种方式存在。即 前台 和 后台。所谓前台进程就是用户目前屏幕上可进行操作的;后台进程(也称守护进程)则是屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以 后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
① 进程查询
第一种:使用ps命令查看进程
格式:ps [参数] [管道命令]
常用参数:
- -a 显示当前终端的所有进程信息
- -u 显示较详细的进程信息
- -x 显示所有包含其他使用者的行程
各字段解释
- USER: 用户名称
- PID: 进程ID
- %CPU: CPU使用率
- %MEN:物理内存使用率
- VSZ:虚拟内存占用大小(单位KB)
- RSS:物理内存占用大小(单位KB)
- TTY:终端名称
- STAT:进程启动时间
- S 睡眠
- s 表示该进程是会话的先导进程
- N 表示进程拥有比普通进程更低的优先级
- R 表示正在运行
- D 表示短期等待
- Z 表示僵死进程 已经死亡当还占用内存
- T 表示被跟踪或被停止
- TIME:进程占用CPU时间
- COMMAND:表示进程启动所使用的命令行或参数
第二种:使用pstree树形查看进程
格式:pstree [参数]
常用参数:
- -p 显示进程id
- -u 显示用户id
案例:使用ps命令查询进程并筛选显示
ps -aux | grep [关键字]
筛查含sshd关键字信息的进程
② 终止进程
格式:
kill [参数] 进程id (主要用于杀死某个进程)
killall 进程名 (主要用于杀死大片进程)
常用参数:
- -9:强制停止 有些进程是核心进程 会忽略kill命令
案例:强制下线某个非法用户
开启两个终端,一个登陆root,一个登陆tom。
案例:终止多个gedit进程
案例:强制杀死一个终端
终端属于核心进程,会忽略kill命令,需要使用-9参数终止,执行完成后对应的终端关闭。
③ 服务管理 ▲
服务(service)的本质就是进程,但是是运行在后台的,通常会监听某个端口,等待其他程序的请求(如mysql,sshd等),因此又称为守护进程。
格式:service 服务名 [start | stop | restart | reload | status]
在centOS7后,使用systemctl命令代替service
案例:查看、关闭、启动防火墙(默认使用firewalld防火墙)▲
-
查看防火墙状态:firewall-cmd --state或者systemctl status firewalld
-
关闭防火墙:systemctl stop firewalld.service
永久关闭防火墙 systemctl disable firewalld.service
- 启动防火墙:systemctl start firewalld.service
总结说明:
① 关闭或启动防火墙后,立即生效。(可使用telnet测试某个端口)
② 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置
③ 如果希望设置某个服务自启动或关闭永久生效,需使用chkconfig命令
查看服务名
1、命令:setup
输入命令回车后出现以下界面:
2、命令:ls -l /etc/init.d
3、命令: chkconfig --list
筛查服务
① chkconfig --list | grep 服务名关键字
② chkconfig 服务名 --list
案例:修改服务运行级别
使用chkconfig --list 可以查看当前系统服务在所有运行级别(0-6)下的运行状态
可使用chkconfig --level 级别 服务名 on/off改变服务在某运行级别下是否开启
如:设置network服务在level1级别下关闭
提示:chkconfig命令在重新设置服务后需要重启才能生效
监控服务
动态监控进程
格式:top [参数]
描述:该指令类似与ps 用于查看进程 但不同的是 top指令可以动态刷新当前进程信息(默认3秒) 类似与windows的任务管理器
常用参数:
- -d 设置进程信息刷新时间
- -i 过滤闲置或僵死进程
- -p 仅显示指定PID进程信息
查看当前系统进程信息:
- 案例1:查看某用户进程信息
首先输入命令top进入界面 然后按下键盘 u 按键 出现Which user提示语 输入想要查看的用户名查看其下的进程
- 案例2:终止指定进程
首先输入命令top进入界面 然后按下键盘 k 按键 出现PID to signal/kill提示语 输入想要杀死的进程PID回车就可以结束对应进程
- 案例3:指定刷新时间为10秒(默认3秒)
top -d 10
top界面交互指令
- P 以CPU使用率排序(默认)
- M 以内存使用率排序
- N 以PID从小到大排序
- q 退出top界面
监控网络状态 ▲
格式:netstat [参数]
常用参数:
- -an:按一定顺序排列输出
- -p:显示哪个进程在调用
RPM包管理
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。与Dpkg类似。
① RPM包的查看
1.查看系统中所有rpm包
rpm -qa
2.查看指定软件包是否已安装
rpm -q 软件包名
若有安装 则会返回软件包名
3.查看软件包信息
rpm -qi 软件包名
4.查看软件包所有文件的安装路径
rpm -ql 软件包名
5.查看某文件属于哪个软件包
rpm -qf 文件名
得知,passwd文件属于setup-2.8.71-6.el7.noarch软件包的安装文件
② 卸载RPM包
格式:rpm -e [参数] 软件包名
常用参数:
- –nodeps 强制删除软件包(有些软件包被其他软件包引用 删除会报错误信息)
案例:删除firefox的rpm包
③ 安装RPM包
格式:rpm -ivh 软件包名
参数解释:
- -i 安装
- -v 显示提示信息
- -h 显示进度条
前提:系统磁盘中需要存在该软件包
案例:安装firefox
1.将带有firefox的centos7的iso文件挂载到Linux系统上
2. 进入CentOS7光驱下的Packages目录并查找firefox软件包
路径: /run/media/root/CentOS\ 7\ x86_64/Packages
3.将firefox软件包拷贝到本地磁盘
4.安装firefox
yum管理RPM包
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
① 查询服务器有无需要的rpm包
格式:yum list [| grep 软件包名]
② 安装rpm包
格式:yum install 软件包名
案例:下载安装firefox
前提:虚拟机可联网
1.查询服务器
2.安装firefox