Linux基础入门

Posted by     "Eric" on Sunday, May 10, 2020

1. Linux权限管理

-rw-r--r--
- 文件类型(-文件 d目录 l软链接)
rw- u所有者权限
r-- g所属组权限
r-- o其他人

改变文件权限:

chmod [选项] 模式 文件名
- 常用选项 -R 递归

chmod u+x cangls.av # 所有者赋予x权限
chmod g+w,o+w furong.av  
chmod u=wrx,g=wrx furong.av
chmod a=wrx furong.av # 给所有人都赋予权限

# 以上都不方便 使用数字4 2 1 对应以上权限
chmod 644 cangls.av

权限的作用:

  • 对文件的作用
    1. r:读取文件内容(cat more head tail)
    2. w:编辑、新增、修改文件内容(vi echo)但不能删除文件
    3. x:可执行
  • 对目录的作用
    1. r:可以查看目录下文件名(ls)
    2. w:具有修改目录结构的权限:新建文件和目录,删除此目录下文件和目录,重命名茨木下文件和目录,剪切(touch rm mv cp)
    3. x:可进入目录(cd)
  • 对文件来讲,最高权限是执行,对目录来讲,最高权限是写

其他权限命令:

chown 用户名 文件名
chgrp 组名   文件名

2. Linux软件安装管理

2.1 软件包分类

  • 源码包
  • 二进制包(RPM包、系统默认)

2.2 RPM包的安装

RMP包比较头疼的问题是依赖问题,因此一般不用rpm命令进行软件的安装, 而是使用该命令查看安装了哪些rpm包

rpm -qa | grep xxx(要查询的文件名)

2.3 yum在线安装

# 配置yum的源文件
vi /etc/yum.repos.d/CentOS-Base.repo
[base] 容器名称,一定要写在[]name   容器说明,可以自己随便写
mirrorlist  镜像站点
baseurl     yum源头服务器的地址
enabled     此容器是否生效,如果不写默认生效
# linux中可以在文件名后加.bak使其失效

常用yum命令

yum list
yum search
yum -y install 包名安装  # -y 就是默认输入y
yum -y remove 包名 # 卸载命令,尽量不要卸载
yum -y update 包名 # 升级 如果不加报名则自动全部升级

2.4 源码包的安装

2.4.1 区别

  • 安装之前的区别:概念上的区别
  • 安装之后的区别:安装位置的区别

RPM包的安装位置,建议安装在默认位置下。这样可以使用卸载命令自动删除,也可以使用service命令启动(实际上是执行了*/etc/rc.d/init.d/xxx(包名) start*)

安装目录 解释
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的的函数库保存位置
/usr/share/doc/ 基本的软件使用保存位置
/usr/share/man/ 帮助文件保存位置
rpm -ql 包名 #查看安装位置

源码包安装位置需要自己指定,建议安装在/usr/local/软件名(源码包保存位置:/usr/local/src),源码没有一键卸载命令,如果不指定安装目录,将装的到处都是很难处理。

2.4.2 安装过程

  • 下载源码包

  • 解压缩下载的源码包 tar -zxvf

  • 进入解压缩目录,执行./configure操作

    ./configure --prefix=/usr/local/软件包名
    
  • make(可以使用make clean清除)

  • make install命令安装

3. Linux系统管理

3.1 进程管理

进程管理的作用

  1. 判断服务器健康状态(最主要)
  2. 查看系统中所有进程
  3. 杀死进程

进程的查看命令

ps aux
#查看系统中所有进程,使用BSD操作系统格式
ps -le
#查看系统中所有进程,使用Linux标准命令格式,会显示进程的优先级
pstree
#显示进程树

image-20200510173930705

  • VSZ:占用虚拟内存
  • RSS:占用实际内存
  • TT:该进程在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。?则表示不是由终端执行的进程
  • STAT:状态 S 休眠状态 R 运行状态
  • STARTED:进程启动时间
  • TIME:进程耗费cpu时间
top #类似于windows的任务管理器
-d秒数:指定top命令每隔几秒更新。默认是3秒
-b:使用批处理模式输出,一般和'-n'选项合用
-n次数:指定top命令执行的次数。
top -b -n 1 >> top.txt # 重定向输出
# 在top命令的交互模式中可以执行的命令:
?或h:显示交互模式的帮助
P:以cpu使用率排序
M:以内存的使用率排序
N:以PID排序
q:退出top

image-20200510175510808

系统当前时间 系统运行时间 用户数 系统在之前1分钟,5分钟,15分钟的平均负载

所谓平均负载就是值,在指定时间内,系统处于可运行状态不可中断状态的平均进程数,可运行状态是指正在使用或者等待使用cpu的进程,而不可中断状态是指进程正处于内核态关键流程中的进程,比如,当一个进程向磁盘写数据时,为了保证数据的一致性,在得到磁盘回复前,它是不能被其他进程或者中断打断的,这个时候的进程就处于不可中断状态,如果此时的进程被打断了,就容易出现磁盘数据与进程数据不一致的问题。

平均负载和cpu使用率是不一样的,对于一个io密集型的任务,虽然cpu使用率不高,但是平均负载是高的。

因此如果平均负载是2,那么如果有2个逻辑核心,则cpu被刚好占满,如果有4个逻辑核心,则有两个核心空闲。

进程状态:

CPU状态:us被用户态占用的cpu百分比,sy被内核态占用的百分比,id空闲CPU的CPU百分比

内存状态:buffers缓冲是加速写操作

交换分区:cached缓存加速读操作

杀死进程

kill -l #查看可用的进程信号
	信号名称:HUP 1 平滑重启,重新读取配置文件之后重启
			KILL 9 强制终止
kill -HUP pid号 # 杀死pid进程
killall [选项][信号] 进程名
	-i 交互
	-I 忽略大小写
pkill [选项][信号] 进程名
	-t 终端号:按照终端号踢出用户,终端号可以通过w命令查看

3.2 工作管理

工作管理指的是在单个登录终端中同时管理多个工作的行为(也就是windows中最小化之后开启别的任务),在LInux中使用jobs命令查看工作

注意事项:

  • 后台管理与终端是绑定在一起的
  • 放入后台的命令必须可以持续运行一段时间才有放入后台的意义
  • 放入后台执行的命令如果需要与前台交互,则不会运行,出于暂停状态

放入后台的方法:

  1. 在命令行之后+&,放入后台后出于运行状态(如果需要与前台用户发生交互则仍是出于暂停状态)
  2. 按ctrl+z,放入后台后出于暂停状态

将后台工作恢复:

jobs -l # 显示工作的pid 
fg %工作号 #将后台暂停的工作恢复到前台执行 工作号!=pid 百分号可以省略
bg %工作号 #将后台暂停的工作恢复到后台执行 

4. Linux服务管理

4.1 Linux运行级别

image-20200510202309126

# 可以使用init命令进入Linux某个运行级别
init x

4.2 服务的分类

image-20200510195904602

4.3 查询已安装的服务

RPM包安装的服务

chkconfig --list

image-20200510202752654

上图中的0-6对应Linux的runlevel

源码包安装的服务:

一般是在/usr/local/下查看

4.4 RPM包服务管理

服务的启动

/etc/init.d/独立服务名 start|stop|status|restart
service 独立服务名 start|stop|status|restart    

本质上启动某服务,即运行该程序的启动脚本

服务的自启动

chkconfig --level 服务级别 服务名 on|off 

4.5 源码包服务管理

使用绝对路径,调用启动脚本来启动

5. Linux下环境变量的配置

5.1 创建与查看环境变量

# 创建环境变量
export 变量名=变量值
# 或
变量名=变量值
export 变量名

env #查看环境变量
set #查看所有变量

5.2 PATH变量:系统查找命令的路径

echo $PATH #可以查看环境变量
PATH="$PATH":/root/sh  #增加PATH变量的值,该方法只能临时生效,想要永久生效只能修改配置文件

5.3 环境变量配置文件的修改

# 修改配置文件后,使用source命令使其生效
source 配置文件
. 配置文件

一个正常的启动过程加载配置文件的过程,后一个配置文件可以覆盖前一个配置文件中定义的环境变量

image-20200511100200544

在/etc/profile 中修改历史命令条数 HISTSIZE

在~/.bashrc 中修改别名 alias

在/etc/bashrc 修改登录提示符PS1

在/etc/sysconfig/i18n 修改系统默认语系

6. 常用命令汇总

netstat
	-t:列出TCP协议端口
	-u:列出UDP协议端口
	-n:不使用域名与服务名,而使用ip地址和端口号
	-l:仅列出在监听状态网络服务
	-a:列出所有的网络连接
	# 常用组合 netstat -tuln    netstat -an
	
telnet ip地址 端口号 # 探测端口号

find [搜索范围][搜索条件]  # 在linux中通配符 *匹配任意内容 ?匹配任意一个字符 []匹配任意一个中括号内的字符
	搜索条件:
		-iname 不区分大小写
		-user 按照所有者
		-name 按照文件名搜索
		-size +xx k -xx k #搜索大于xx k的文件 搜索小于xx k的文件(M 单位则为兆)

7. 小tips

  • usr是指的Unix System Resource的缩写,即Unix系统资源的缩写
  • etc一般放置配置文件