用户与用户组
linux是多用户多任务的操作系统,任何一个要使用系统资源的用户
用户账号的添加,修改,删除以及密码的的管理
用户组的管理
注意三个文件:
/etc/passwd 存储用户的关键信息
/etc/group 存储用户的关键信息
/etc/shadow 存储用户的密码信息
1.用户管理
添加用户
常用语法:#useradd 选项 用户名
常用选项:
-g :表示指定用户的用户组,其选项的值可以是用户id,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户的组id,也可以是组名
-u: uid ,用户的id(用户标识符),系统默认会从500之后分配uid
案例:创建用户不带选项,不带选项
验证是否成功:
a.验证/etc/passwd 的最一行,查看是否有krx的信息
b.验证是否存在家目录(会产生一个家目录);
认识passwd文件 用户名:密码 :用户id:用户组id:注释:家目录:解释器 shell 用户名:创建新用户名称,后期登入的时候需要输入; 密码:此密码位置一般情况都是”x“,表示密码占位 注释: 家目录:系统登入后默认位置 解释器:shell :等待用户进入系统后,用户输入指令后,该解析器会收集用户输入的指令,传递内核处理:
注意:在不添加选项之后,执行useradd之后会执行一系列操作
a。创建同名的家目录
b。创建同名的用户组
修改用户
常用语法:#usermod 选项 用户名
usermod (user modify)用户编辑
常用选项:
-g:用户组
-G:附加组
-u:用户id
-l:用户名(新用户名 旧用户名)
案例:设置用户密码
linux不允许没有密码的用户等入
常用语法:#passwd 用户名
案例:设置krx密码
输入两次
#su 【用户名】
从root普通用户不需要密码,反之需要用户 切换用户之后工作路径不变 普通用户没有办法访问root用户家目录,但反之则可以
删除密码
常用语法:#userdel 选项 用户名
常用选项:
-r:表示删除用户同时删除其家目录
2.用户组的管理
文件结构:
用户组名:密码:用户组ID :组内用户名
密码:X表示占位符
组内用户用户名:表示附加是改组的用户名
用户的添加
常用语法:#group 选项 用户组名
常用选项:
-g:类是用户的添加的-u,表示选择自己设置的自定义的ID数字,如果自己不指定,默认创建
用户组的编辑
常用语法:#groupmod 选项 用户组
常用选项:
-g 类是用户-u
-n:类是用户修改”-l“表示修改用户组的名称 用法类似
删除用户组
常用语法:#group 用户组名
注意:
当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除,如果确实需要删除,则先从组内移出。
网络设置
首先知道网卡的配置文件 /etc/sysconfig/network-scripts/
ONBOOT:是否开机自启动
BOOTPROTO:ip地址分配方式,
DHCP表示动态主机分配协议
HWADDR:硬件地址,MAC地址
如果后续重启网卡
#service network restart
目录下:/etc/init.d
这个目录放着很队服务的快捷方式
#/etc/init.d /network restart
创建快捷方式
#in -s 原始文件的路径 快捷方式的路径
#ls -l 查看快捷方式
拓展2:如何去重启单个网卡?
停止某个网卡:#ifdown 网卡名
开启某个网卡:#ifup 网卡名
shell基础
1.关于shell
什么时shell?
shell (外壳)是一个c语言编写的程序,它是用户使用Linux的桥梁。shell既是一一种命令语言,又是一种程序设计语言。
shell,是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问这个界面访问操作系统内核的服务。
什么是脚本?
简单一条的文字命令。
为什么学习和使用shell脚本
程序开发效率很高,依赖于强大的命令可以迅速的完成任务。
2.shell入门
编写规范:
代码规范: #!/bin/bash [指定告知当前脚本使用的shell解析器] shell指令 文件命名规范: 文件名.sh .sh是linux下bash shell 的默认后缀
使用流程:
1.创建.sh文件 touch/vim 2.编写shell脚本 3.执行shell脚本 脚本必须有执行权限
案例1:创建test.sh,实现一个shell脚本,输出hello world
输出命令:echo
添加权限:#chmod +x 文件
执行:# ./脚本文件
注意:输出的内容和符合,则需要引号包括起来,数组可以不用
3.shell进阶(重点)
变量的含义
什么变量
数据可以发生改变的变量
变量名 =‘ 变量内容’
echo $ 变量名
只读变量
语法:readonly 变量名
案例:定义一个变量a并且其值为10;、
接收用户输入(重点)
语法:read -p 提示信息 变量名
编写一个脚本test.sh ,要求执行之后提示用户输入文件的路径,然后自动为用户创建文件
read -p '输入文件路径' filepath touch $filepath echo '文件创建成功' ls -l $filepath
删除变量
语法:unset 变量名
参数处理 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数。 如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 与$*相同,但是使用时加引号,并在引号中返回每个参数。 如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 |
$- | 显示Shell使用的当前选项,与set命令功能相同。 |
$? | 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |
echo "Shell 传递参数实例!"; echo "第一个参数为:$1";
echo "参数个数为:$#"; echo "传递的参数作为一个字符串显示:$*";
Shell 数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由 0 开始。
Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:
array_name=(value1 value2 ... valuen)
实例
#!/bin/bash # author:菜鸟教程 # url:www.runoob.com my_array=(A B "C" D)
我们也可以使用下标来定义数组:
array_name[0]=value0 array_name[1]=value1 array_name[2]=value2
读取数组
读取数组元素值的一般格式是:
${array_name[index]}
实例
#!/bin/bash # author:菜鸟教程 # url:www.runoob.com my_array=(A B "C" D) echo "第一个元素为: ${my_array[0]}" echo "第二个元素为: ${my_array[1]}" echo "第三个元素为: ${my_array[2]}" echo "第四个元素为: ${my_array[3]}"
执行脚本,输出结果如下所示:
$ chmod +x test.sh $ ./test.sh 第一个元素为: A 第二个元素为: B 第三个元素为: C 第四个元素为: D
获取数组中的所有元素
使用@ 或 * 可以获取数组中的所有元素,例如:
#!/bin/bash # author:菜鸟教程 # url:www.runoob.com my_array[0]=A my_array[1]=B my_array[2]=C my_array[3]=D echo "数组的元素为: ${my_array[*]}" echo "数组的元素为: ${my_array[@]}"
执行脚本,输出结果如下所示:
$ chmod +x test.sh $ ./test.sh 数组的元素为: A B C D 数组的元素为: A B C D
获取数组的长度
获取数组长度的方法与获取字符串长度的方法相同,例如:
#!/bin/bash # author:菜鸟教程 # url:www.runoob.com my_array[0]=A my_array[1]=B my_array[2]=C my_array[3]=D echo "数组元素个数为: ${#my_array[*]}" echo "数组元素个数为: ${#my_array[@]}"
执行脚本,输出结果如下所示:
$ chmod +x test.sh $ ./test.sh 数组元素个数为: 4 数组元素个数为: 4
算术运算符
下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:
运算符 | 说明 | 举例 |
---|---|---|
+ | 加法 | expr $a + $b 结果为 30。 |
- | 减法 | expr $a - $b 结果为 -10。 |
* | 乘法 | expr $a \* $b 结果为 200。 |
/ | 除法 | expr $b / $a 结果为 2。 |
% | 取余 | expr $b % $a 结果为 0。 |
= | 赋值 | a=$b 将把变量 b 的值赋给 a。 |
== | 相等。用于比较两个数字,相同则返回 true。 | [ $a == $b ] 返回 false。 |
!= | 不相等。用于比较两个数字,不相同则返回 true。 | [ $a != $b ] 返回 true。 |
注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]。
Shell echo命令
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:
echo string
您可以使用echo实现更复杂的输出格式控制。
1.显示普通字符串:
echo "It is a test"
这里的双引号完全可以省略,以下命令与上面实例效果一致:
echo It is a test
2.显示转义字符
echo "\"It is a test\""
结果将是:
"It is a test"
Shell test 命令
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
数值测试
参数 | 说明 |
---|---|
-eq | 等于则为真 |
-ne | 不等于则为真 |
-gt | 大于则为真 |
-ge | 大于等于则为真 |
-lt | 小于则为真 |
-le | 小于等于则为真 |