用户与用户组

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
​
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
​
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
​
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
​
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小于等于则为真

总结文档下载地址:

自己整理的LINUX学习.md-Linux文档类资源-CSDN下载

Linux 命令大全(此部分转载菜鸟教程菜鸟教程 - 学的不仅是技术,更是梦想!)

Linux 命令大全
1、文件管理
catchattrchgrpchmod
chowncksumcmpdiff
diffstatfilefindgit
gitviewindentcutln
lesslocatelsattrmattrib
mcmdelmdirmktemp
moremmovemreadmren
mtoolsmtoolstestmvod
pastepatchrcprm
slocatesplitteetmpwatch
touchumaskwhichcp
whereismcopymshowfatrhmask
scpawkreadupdatedb
2、文档编辑
colcolrmcommcsplit
edegrepexfgrep
fmtfoldgrepispell
jedjoejoinlook
mtypepicorgrepsed
sortspelltrexpr
uniqwclet
3、文件传输
lprmlprlpqlpd
byeftpuutouupick
uucpuucicotftpncftp
ftpshutftpwhoftpcount
4、磁盘管理
cddfdirsdu
edquotaejectmcdmdeltree
mdumkdirmlabelmmd
mrdmzippwdquota
mountmmountrmdirrmt
stattreeumountls
quotacheckquotaofflndirrepquota
quotaon
5、磁盘维护
badblockscfdiskdde2fsck
ext2edfsckfsck.minixfsconf
fdformathdparmmformatmkbootdisk
mkdosfsmke2fsmkfs.ext2mkfs.msdos
mkinitrdmkisofsmkswapmpartition
swaponsymlinkssyncmbadblocks
mkfs.minixfsck.ext2fdisklosetup
mkfssfdiskswapoff
6、网络通讯
apachectlarpwatchdipgetty
mingettyuuxtelnetuulog
uustatppp-offnetconfignc
httpdifconfigminicommesg
dnsconfwallnetstatping
pppstatssambasetserialtalk
traceroutettynewaliasesuuname
netconfwritestatserialefax
pppsetuptcpdumpytalkcu
smbdtestparmsmbclientshapecfg
7、系统管理
adduserchfnuseradddate
exitfingerfwhiossleep
suspendgroupdelgroupmodhalt
killlastlastblogin
lognamelogoutpsnice
procinfotoppstreereboot
rloginrshsliploginscreen
shutdownrwhosudogitps
swatchtloadlogrotateuname
chshuserconfuserdelusermod
vlockwhowhoamiwhois
newgrprenicesuskill
widgroupaddfree
8、系统设置
resetclearaliasdircolors
aumixbindchrootclock
crontabdeclaredepmoddmesg
enableevalexportpwunconv
grpconvrpminsmodkbdconfig
liloliloconfiglsmodminfo
setmodprobentsysvmouseconfig
passwdpwconvrdateresize
rmmodgrpunconvmodinfotime
setupsndconfigsetenvsetconsole
timeconfigulimitunsetchkconfig
apmdhwclockmkkickstartfbset
unaliasSVGATextModegpasswd
9、备份压缩
arbunzip2bzip2bzip2recover
gunzipunarjcompresscpio
dumpuuencodegzexegzip
lharestoretaruudecode
unzipzipzipinfo
10、设备管理
setledsloadkeysrdevdumpkeys
MAKEDEVpoweroff

更多推荐

LINUX学习(五)