LINUX学习(五)

用户与用户组

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 小于等于则为真
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值