用户类型:
管理员:0
一般用户:1-65535
系统用户1-499
普通用户:500+
权限管理:owner,group
属主:
属组:
其他:
权限:read(读),write(写),execute(执行)。
r(4) w(2) x(1)
文件:
r:可以使用内容查看类的命令来显示其相关内容
w:可以使用编辑器修改其内容
x:可以将其发起一个进程;
目录:
r:可以使用ls命令查看目录内容的文件信息;
w:可以创建,删除文件。
x:可以使用ls -l命令查看目录内容的文件信息,并且可以使用cd命令切换此目录为工作目录
用户的不拥有某位权限,则使用-占位;
r-x:可读可执行。
r--:只读。
rw-:可读可写。
元数据:属性,inode
修改属主,属组,仅管理员可执行。chown,chgrp。
改文件权限:chmod
chmod命令:
操作三类用户的权限,使用8进制形式。
chmod [-R] OCTAL-MODE file。。。
-R对内部命令生效,符号链接除外。
操作指定类别用户的权限:使用u,g,o,a来赋权,基于=或+/-来进行。
u:属主。
g:属组
o:其他
a:所有
=:操作指定类别用户的权限:u=,ug=,u=,g=
+/-:操作指定类别用户的单个权限。u-x,g+r,o-x,+x
chmod 750 ssl/ = chmod u=rwx,g=x,o= ssl/
参照其他文件的权限为当前文件赋权。
--reference=要参照的文件 要修改权限的文件。
umask默认022 指的是root用户的默认。
创建文件 666-umask
文件默认决不允许出现执行权限。
umask 023
666-023=643如果出现执行权限必须+1就是644
创建目录:777-umask
root:022
如果用户和基本组组名一致:002;否则为-22;
修改文件的属主或属组:chown,chgrp
-R:递归
--reference=参照权限。
chown [option]UserName[{:|.}GroupName]file ...
chown --reference=fedora_dir/ -R pm
权限应用模型:
进程的属主,是否与文件的属主相同,如果相同,进程则以文件属主的权限;来访问文件。
否则进程的属主所属的组,是否其中之一与文件的属组相同,如果相同,进程则以文件属组的权限来访问文件。
否则进程则以文件的其他用户的权限来访问文件。
-M是不创建家目录
bash介绍:
shell:人机交互界面
sh,csh,tcsh,bash,ksh,dash,zsh。
bash:命令解释器
bash:
bash特性之bash的快捷键:
ctrl+a:直接到命令行首
ctrl+e:直接到命令行尾。
ctrl+u:删除光标到行首的位置。
ctrl+l:删除光标到行尾的位置。
ctrl+c终止或取消
ctrl+z将当前命令放置到后台。
bash之:bash补全
命令补全:
shell命令:内部,外部。
外部:在系统某路径下有一个可执行程序、
Path:是一组有冒号分隔的路径。
使用tab键
bash:解释器,解析器。
编程语言:
C:关机字,选择顺序。
编译器:语言平台。
解释器:语言平台。
程序执行逻辑:
顺序执行。
选择执行(条件)
循环执行:
ELF:定义了一个可执行文件。可执行的规范。
变量:强类型的语言,要提前定义。
弱类型语言:不强制区分变量的类型,无论存储何种数据,均已字符格式进行。
无须事先声明,用到时,直接使用,直接赋值。
bash:动态编程语言,是弱类型语言。
编程语言两类:
动态语言
解释型
perl,bash,python
静态语言
编译型
c,c++
变量:
数据存储格式:
ASCII 同时存11 字符它占用32bit
Binary 它占用4位
按照其变量是否需要严格定义其类型来划分。
强类型语言
弱类型语言
定义变量类型的作用:
1,数据存储格式。
2,数据的有效存储范围
3,排序机制不同。
4,参与的运算类型不同;
字符型
数值型:
精确数值型:
整型:
近似数值型:
浮点数:3.14
单精度
双精度
布尔型:
bash特性之-提供编程环境
变量
程序控制
#!/bin/bash
groupadd -g 4002 newgrouppp
useradd -G newgrouppp -u 3011 magedu3
mkdir /tmp/hellodirxyzxx
cp -r /etc/fstab /tmp/hellodirxyzxx
chown -R magedu3:magedu3 /tmp/hellodirxyzxx
chmod -R o= /tmp/hellodirxyzxx
bash特性之-变量
变量的类型:
本地变量:只对当前shell进程有效,对其子shell以及其他shell对等的都无效。
定义变量:[set]var_Name="Value"
引用变量:${var_Name}
撤销变量:unset Var_Name
set能够显示当前进程内部的所有变量。
局部变量:仅对局部代码生效,比本地变量更小。
local Var_name="value";
环境变量:对当前shell进程及其子shell有效。
export var_name=“value”
var_name=“values”
export var_name
位置变量:
$1,...,$n
./firsh.sh 2 8
特殊变量:
$0:脚本名称自身
$?:返回上一个命令的执行状态、
状态用数字来表示:0-255
0:成功
1-255失败
set:
环境变量:用来bash的工作特性,用于保存当前回话的属性信息。
显示所有环境变量:export,env,prinenv
定义:export var_name="values"
export PATH=$PATH:/root/sbin/
$PATH不加这个之前的环境变量都会丢失。
bash的配置文件:持久保存用户配置
profile类:为交互式登陆的用户提供配置。
/etc/profile:全局
/etc/profile.d/*.sh:全局 片段,可以自己随意用要的PATH
~/.bash_profile:个人配置,仅对当前用户有效。
功能:
设定环境变量。
允许命令或脚本
bashrc类:非交互式登陆用户提供配置。
/etc/bashrc:全局
~/.bashrc:个人配置
功用:
设定本地变量
定义命令别名
登陆类型:
交互式登陆:
直接通过终端输入用户信息登陆系统。
su - Username或su -l UserName也叫做登陆用户。
非交互式登陆:
su UserName
图形界面的终端
执行脚本
新增配置的生效方式:
通知shell重读配置文件的命令:
source(.)
.FILE
重新登陆
交互式登陆用户:
/etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc
非交互式登陆用户:
~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh
变量命名要求:
只能使用数字,字母和下划线组成。
不能已数字开头
不能使用程序中的关键字
见名知义:totalWeight
bash脚本:面向过程的编程中
顺序执行:默认法则,逐条执行个语句。
选择执行:分支,条件判断,符合条件的分支予以执行。
循环执行:将同一段代码反复执行有限次,所以,循环必须有退出条件,否则将进入死循环。
程序代码:语句和表达式组成。
控制语句:
bash循环控制语句:
for
while
until
for循环:
for var_Name in 列表; do
语句1
语句2
。。。。
done
for userName in gentoo mandirva debian
useradd $userName
done
语法错误检测
bash -n 脚本文件
列表的生产方法:
生成数字序列:{start..end},seq [start][step]end 1 3 10
#!/bin/bash
for userName in `seq 101 110`;do
useradd user$userName
echo "add user$userName successful"
done
for userName in {101..110};do userdel -r user$userName;done
for:通过使用一个变量去遍历给定列表中的每个元素,在每次变量赋值时执行一次循环体,直至赋值完成所有元素退出循环;
总结:生成列表的方式
1,直接给出列表
2,使用文件名通配的机制生成列表
3,可以使用{}或seq命令生成数字序列
4,使用命令生成
文本处理类的命令:wc,word count:
行 单词数,字节数
-l:表示行
-w:单词
-c:字节
tr:字符转换命令。可以装换字符或删除字符
-d 删除字符指令
tr -d '字符集合'
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
cut:
-d字符1:指定以什么为分隔符
-f#:指定要显示的那个字段
sort:文本排序命令:
默认是升序排序。
sort [option] file
-f:忽略字符大小写。
-n:比较数值大小。
-t指定分隔符
-k:指定分割后进行比较字段
-u重复的行,只显示一次;
列子:
cut -d: -f3 /etc/passwd | sort -n
sort -n -t: -k3 /etc/passwd
uniq:移除重复的行。
-c:为每一行显示出现的次数。
-d:仅显示重复的行。
-u:仅显示不曾重复的行。
转载于:https://blog.51cto.com/shunzi/1359327