用户与用户组
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、文件管理 | |||
cat | chattr | chgrp | chmod |
chown | cksum | cmp | diff |
diffstat | file | find | git |
gitview | indent | cut | ln |
less | locate | lsattr | mattrib |
mc | mdel | mdir | mktemp |
more | mmove | mread | mren |
mtools | mtoolstest | mv | od |
paste | patch | rcp | rm |
slocate | split | tee | tmpwatch |
touch | umask | which | cp |
whereis | mcopy | mshowfat | rhmask |
scp | awk | read | updatedb |
2、文档编辑 | |||
col | colrm | comm | csplit |
ed | egrep | ex | fgrep |
fmt | fold | grep | ispell |
jed | joe | join | look |
mtype | pico | rgrep | sed |
sort | spell | tr | expr |
uniq | wc | let | |
3、文件传输 | |||
lprm | lpr | lpq | lpd |
bye | ftp | uuto | uupick |
uucp | uucico | tftp | ncftp |
ftpshut | ftpwho | ftpcount | |
4、磁盘管理 | |||
cd | df | dirs | du |
edquota | eject | mcd | mdeltree |
mdu | mkdir | mlabel | mmd |
mrd | mzip | pwd | quota |
mount | mmount | rmdir | rmt |
stat | tree | umount | ls |
quotacheck | quotaoff | lndir | repquota |
quotaon | |||
5、磁盘维护 | |||
badblocks | cfdisk | dd | e2fsck |
ext2ed | fsck | fsck.minix | fsconf |
fdformat | hdparm | mformat | mkbootdisk |
mkdosfs | mke2fs | mkfs.ext2 | mkfs.msdos |
mkinitrd | mkisofs | mkswap | mpartition |
swapon | symlinks | sync | mbadblocks |
mkfs.minix | fsck.ext2 | fdisk | losetup |
mkfs | sfdisk | swapoff | |
6、网络通讯 | |||
apachectl | arpwatch | dip | getty |
mingetty | uux | telnet | uulog |
uustat | ppp-off | netconfig | nc |
httpd | ifconfig | minicom | mesg |
dnsconf | wall | netstat | ping |
pppstats | samba | setserial | talk |
traceroute | tty | newaliases | uuname |
netconf | write | statserial | efax |
pppsetup | tcpdump | ytalk | cu |
smbd | testparm | smbclient | shapecfg |
7、系统管理 | |||
adduser | chfn | useradd | date |
exit | finger | fwhios | sleep |
suspend | groupdel | groupmod | halt |
kill | last | lastb | login |
logname | logout | ps | nice |
procinfo | top | pstree | reboot |
rlogin | rsh | sliplogin | screen |
shutdown | rwho | sudo | gitps |
swatch | tload | logrotate | uname |
chsh | userconf | userdel | usermod |
vlock | who | whoami | whois |
newgrp | renice | su | skill |
w | id | groupadd | free |
8、系统设置 | |||
reset | clear | alias | dircolors |
aumix | bind | chroot | clock |
crontab | declare | depmod | dmesg |
enable | eval | export | pwunconv |
grpconv | rpm | insmod | kbdconfig |
lilo | liloconfig | lsmod | minfo |
set | modprobe | ntsysv | mouseconfig |
passwd | pwconv | rdate | resize |
rmmod | grpunconv | modinfo | time |
setup | sndconfig | setenv | setconsole |
timeconfig | ulimit | unset | chkconfig |
apmd | hwclock | mkkickstart | fbset |
unalias | SVGATextMode | gpasswd | |
9、备份压缩 | |||
ar | bunzip2 | bzip2 | bzip2recover |
gunzip | unarj | compress | cpio |
dump | uuencode | gzexe | gzip |
lha | restore | tar | uudecode |
unzip | zip | zipinfo | |
10、设备管理 | |||
setleds | loadkeys | rdev | dumpkeys |
MAKEDEV | poweroff |
更多推荐
LINUX学习(五)
发布评论