Linux 基础3

相逢意气为君饮,系马高楼垂柳边。这篇文章主要讲述Linux 基础3相关的知识,希望能为你提供帮助。
Linux 基础3 5 权限的基本介绍基本介绍:

Linux 基础3

文章图片

使用了 ls -l 指令后,显示如图。途中最后一栏的信息为文件或者目录的名字。第一栏,如-rw-r--r-- 。
第一个字符 \' - \' 表示该文件类型为 普通文件,第一个字符有五种情况:
-:表示该文件类型为普通文件
d:表示该文件类型为目录
l:表示软连接目录
c:为字符设备,例如鼠标键盘cpu等
b:块文件,例如硬盘
之后三个为一组,分为三组,分别表示文件所有者的权限、文件所在组的用户的权限,其他组用户的权限,有四种:
r:表示所有者有读的权限
w:表示所有者有写的权限
x:表示可被执行
-:表示没有权限
后面一个字符,如果是文件,表示硬链接的数,如果是目录,表示子目录的子目录个数。
之后是文件所有者,文件所在组,文件的大小(单位为M,如果是目录,则统一为4096),文件的最后修改时间。
5.1 rwx权限详解
rwx作用在文件上:
r: 表示对该文件可以读取、查看
w: 表示可以修改该文件的内容,但是不一定能删除,想要拥有删除权限得有对该文件所在目录的w权限。
x: 可以执行该文件
rwx作用在目录上:
r:表示读取,ls查看目录内容
w:表示可以对目录下的文件进行创建、删除、重命名等修改
x:表示可以进入该目录
注意:rwx也可以对应数字4 2 1表示。

5.2管理权限
chmod管理权限:
基本说明: 通过 chomod 指令修改文件或者目录权限
修改方式:
第一种:用 +、-、= 变更
其中 u:表示所有者, g:表示所在组 o:表示其他组 a:表示所有人(u+g+o)
chmod u=rwx,g=rw,o=x 文件目录名--给u、g、o赋权限
chmod o+r 文件目录名--给其他组增加读的权限
chmod a-r 文件目录名--给所有人减少读的权限
第二种:通过数字变更权限(rwx 4 2 1)
chmod u=7,g=6,o=1 文件目录名--给u、g、o赋权限
修改文件所有者-chown:
基本语法:
chown newowner file--改变文件的所有者
chown newowner:newgroup file--改变用户的所有者和所有组
-R--如果改变权限的是目录,则可以递归的将目录下文件或目录生效
例如将/home目录下的所有文件所有者改为Tom,并将所在组改为police,则可以使用指令:chown -R Tom kkk/ ,在使用 chgrp -R police kkk/ 即可,或者直接使用一条指令 : chown -R Tom:police kkk/ 也可以改变。
注意:想要进入文件夹,必须同时具有r、x的权限。
6 crond任务调度 6.1 crontab进行定时任务设置
基本介绍:任务调度,是指系统在某个时间执行的特定的命令或程序。
任务调度分类:1、系统工作,有些重要的工作必须周而复始的执行,如病毒扫描等,2、个别用户工作,个别用户可能希望执行某些程序,比如对mysql数据库的备份。
基本语法:
crontab [选项]
常用选项:
-e: 编辑crontab定时任务
-l: 查询crontab定时任务
-r: 删除当前用户所有的crontab
service crond restart--重启任务调度
注意:如果知识简单的任务可以不用写脚本,直接在crontab种加入任务即可。而对于复杂的任务还需要写脚本(shell)

7 Linux磁盘分区、挂载 7.1 分区基础知识
mbr分区
1、最多支持四个主分区
2、系统只能安装在主分区
3、扩展分区要占一个主分区
4、MBR最大值支持2TB,但拥有良好的兼容性
gtp分区
1、支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
2、最大支持18EB的大容量(1EB=1024PB,1PB=1024TB)
3、windows7 64位以后支持gtp

7.2 Linux分区
基本介绍
Linux无论几个分区,分给哪一目录使用,他归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux每个分区都是用来组成文件系统的一部分
Linux采用了一种“载入”的处理方式,他的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将是他的存储空间在一个目录下获得。
硬盘说明:
1、Linux硬盘分IDE硬盘和SCSI,目前基本上是SCSI硬盘。
2、对于IDE硬盘,驱动器标识符为“hdx~”,hd表示分区所在设备的类型,这里指IDE硬盘。x为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”表示分区,前四个分区用数字1-4表示,他们是主分区或扩展分区,5开始是逻辑分区。例如hda3表示第一个IDE硬盘上第三个主分区或扩展分区
3、对于SCSI硬盘则标识 sdx~ ,sd标识分区所在设备类型,其他与IDE一样。
基本指令:
lsblk -f--可以查看Linux 磁盘挂载目录
增加一块硬盘的步骤:
1、虚拟机添加硬盘
2、硬盘分区
3、格式化
4、挂载
5、设置可以自动挂载(永久挂载)

8 LINUX进程管理 8.1 基本介绍
1)在Linux中,每个执行的程序(代码),都成为一个进程,每一个进程都分配一个ID号。
2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程,例如www服务器。
3)每个进程都可能以两种方式存在,前台与后台,所谓前台使用户目前的屏幕上的可以进行操作的,例如打开的一个终端。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行,例如各种服务。
4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,关机后才结束。

8.2 显示系统执行的进程
说明:查看进程使用的指令是 ps ,一般来说使用的选项是 -aux。
-a: 显示当前终端所有进程信息
-u: 以用户的格式显示进程信息
-x: 显示后台进程运行的参数
查看父进程可以使用 ps -ef 指令,可以显示所有的父进程。想查看某个进程的父进程,可以灵活使用管道,如查看sshd服务的父进程,可以使用指令 ps -ef | grep sshd 即可。

8.3 终止进程kill和killall
基本语法:
kill [选项] 进程号
killall 进程名称--支持通配符,通过进程名称终止某种进程。
常用选项:
-9 :强制终止进程。

8.4 服务管理
服务(service)本质就是一个进程,但是运行在后台,通常会监听某个端口,等待其他程序的请求,比如mysql、sshd、防火墙等,因此我们又称为守护进程,是Linux中非常重要的知识。
service管理指令:
service 服务名 (start | restart | stop | status | reload)
但是centOS7之后不使用server,而是使用systemctl,其语法为:
systemd(start | restart | stop | status | reload) 服务名。
(之前版本的防火墙为iptables,之后为firewalld.service)
该方式改变的服务立即生效,但是知识临时生效,如果想要开机自动生效或者永久生效或关闭,得使用chkconfig命令。
每个服务对应的运行级别都可以设置是否自启动。
chkconfig 指令:
介绍:可以给每个服务的各个运行级别设置自启动/关闭
语法:
1)查看服务 chkconfig --list | grep xxx
2)chkconfig 服务名 --list
3)chkconfig --level x 服务名 on/off
注意,centOS7以后该命令不可用,可以通过systemctl list-unit-files 来查看

8.5 动态监控进程
介绍:和 ps 类似,都用来显示正在执行的程序,top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程。
语法:
ps [选项]
常用选项:
-d--秒数,指定top指令每隔几秒更新,默认是三秒在top命令的交互模式当中可以执行的指令。
-i--使top不显示任何限制或者僵死进程。
-p--通过指定健康进程ID来仅仅监控某个进程的状态。
交互操作说明:
P--以cpu使用率排序,默认就是此项
M--以内存的使用率排序
N--以PID排序
q--退出top

8.7 网络监控
语法:
netstat [选项]
选项:
-anp--查看外部连接网络的ip以及占用的端口号

9 RPM和YUM 9.1 RPM包的管理
介绍:
一种用于互联网下载包的打包安装工具,包含于某些Linux的发行版本中去。具有.RPM拓展名的文件。RPM (RedHat Package Manager 红帽公司的软件包管理标志),类似于Windows的setup.exe。
rpm包的简单查询指令:
rpm -qa | grep xx--查询已经安装的rpm列表,查询出来的会显示 名称 版本号 适用的操作系统,如果是 x86_64 则适用64位,如果是 i686、i386,表示32位系统,如果是 noarch表示通用。
rpm -qi 软件名--也可以直接查询安装的rpm包软件的信息
rpm -ql 软件名--查看rpm安装的软件的包都在哪里
rpm -qf 文件名--查询某个文件是哪个rpm软件安装的
卸载rpm包
rpm -e 包的名称--如果删除时发现该包被其他包所依赖,推荐不删除,一定要删除使用强制删除指令 rpm -e --nodeps 包名
安装rpm包:
基本语法:
rpm -ivh RPM包的全名
选项:
-i--i=install 安装
-v--v=vebose 提示
-h--h=hash 进度条

9.2 YUM包管理
介绍: Yum是一个Shell前端软件包管理器,基于RPM包的安装,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。前提是可以联网。
基本语法:
yum list--查询所有安装的yum包,很多,一般配合管道符号 | less/more/grep xx 来查看或者查找对应的包。
yum install xx--安装对应的安装包,会默认安装最新版本

10 Shell 编程 10.1 shell 是什么
硬件上一层是内核,内核能操作硬件,shell命令解释器可以操作内核驱动硬件,用户可以用shell来启动、挂起、停止等应用程序。

10.2 shell 脚本执行方式
脚本格式要求:
脚本以 #!/bin/bash 开头。
脚本需要有可执行文件。
执行时使用指令 ./xxx.sh (相对路径或者绝对路径)
最简单的 HelloWorld:
使用vim 在脚本中写入 echo "HelloWorld"

10.3 shell 变量
介绍:shell变量分为系统变量和用户自定义变量。
系统变量:
例如 $HOME $PWD $SHELL $USER等
比如 echo "$HOME"
显示当前shell中所有变量:
set (一般配合管道使用 set | more)
撤销变量:
unset 变量
静态变量:
readonly 变量 --静态变量下,数据不可撤销变量。
将一个变量的结果返回:
1、 A=`ls -l /home`使用``
2、$(ls -l /home)使用$()

10.4 条件判断
基本语法:
[ 条件 ]--注意,条件的前面和后面都有一个空格。
整数的判断:
-lt--表示小于 little
-le--表示小于等于 little equal
-eq--表示等于 equal
-gt--表示大于 greater
-ge--表示大于等于 greater equal
-ne--表示不等于 not equal
按照文件类型判断:
-f--文件存在并且是一个常规的文件
-e--文件存在
-d--文件存在并且是一个目录
注意:在判定条件中写 & & 或 || 时需要使用双方括号,
如: if [[ a -ge 60 ]] & & [[ a -le 100 ]]

10.4 case 判断
语法:
case $变量名 in
"值1")
如果变量的值等于1则执行程序1
; ;
"值2")
如果变量的值等于2则执行程序2
; ;
"值3")
如果变量的值等于3则执行程序3
; ;
.....省略其他分支......
*)
如果变量的值都不是以上的值,则执行此程序
esac

10.5 for循环语句
语法1:
for 变量 in 值1 值2 值3 ....
【Linux 基础3】do
程序
done
语法2:
for((初始值; 循环控制条件; 变量变化))
do
程序
done

10.6 while循环
语法:
while [ 条件判断式 ]
do
程序
done

10.7 读取控制台的输入
语法:
read [选项] 参数
选项:
-p--指定读取值时的提示符
-t--指定读取值时的等待时间(秒),超时还没有输如,则不再等待
参数:
变量:指定读取值的参数名

10.8 函数
系统函数:
· basename
介绍:
返回完整路径最后/的部分,常用于获取文件名
基本语法:
basename [pathname][suffix]
basename [string][suffix]
· dirname
介绍:
返回完整路径最后/的前面的部分,常用于返回路径部分
自定义函数:
基本语法:
[ function ] funname[()]
{
Action;
[return int; ]
}


    推荐阅读