linux 5
来源:互联网 发布:外商投资网络支付机构 编辑:程序博客网 时间:2024/04/26 14:27
21 AUG
13.3.3 shell script 的默认变量($0, $1)
/path/to/scriptname opt1 opt2 opt3
执行脚本的路径和文件名是$0变量,opt1~opt3是$1-$3变量。
shfit:造成参数变量号码偏移
shift会移动变量,而且shift后面可以接数字,代表拿掉最前面的n个参数的意思。
条件判断式
if [条件判断式] ; then 当成立时执行fi
if [条件判断式1] ; then 当成立时执行elif [条件判断式2] ; then 当成立时执行else 当判断式1和2都不成立时可以进行fi
13.4.2 利用case…esac判断
case $变量名称 in "one") echo "Your choice is ONE" ;; "two") echo "Your choice is TWO" ;; "three") echo "Your choice is THREE" ;; *) echo "Cannot get your choice." ;;esac
13.4.3 利用function功能
function fname(){}
echo -n "Your choice is ..." #加上-n可以不断行,继续在同一行显示
function的参数:
function printit(){ echo "Your choice is $1" #这里的$1与主函数的$1不同。}case $1 in "one") printit 1 ;; "two") printit 2 ;; "three") printit 3 ;; *) echo "Usage $0 {one|two|three}" ;;esac
13.5 循环loop
13.5.1 while do done, until do done 不定循环
- 当condition条件成立时,就进行循环,到condition的条件不成立才停止。
while [ condition ] #中括号内的状态是判断式do 程序段落done
- 当condition条件成立时,就终止循环,否则就持续进行循环程序段。
until [ condition ]do 程序段落done
13.5.2 for…do…done 固定循环
for var in con1 con2 con3 ...do 程序段done#第一次循环时,$var的内容为con1;#第二次循环时,$var的内容为con2;#第三次循环时,$var的内容为con3;#...
finger 命令: reference
- 用来显示用户的相关信息,包括用户名、用户全名、终端设备和登陆时间等信息
finger [options] [user-list]
参数
不带任何参数时,finger将提供关于登录本地系统的用户的短报告(-s)。当指定参数user-list时,finger将提供user-list中关于每个用户的长报告(-l)。user-list中的名字不区分大小写。
如果用户名包含符号@,则finger将符号@后面的文件名解释为远程主机名,通过网络连接到该主机。如果在符号@前面存在一个用户名,那么finger将提供远程系统上的用户的相关信息
选项
-l 当指定user-list时,默认显示用户的详细信息
-s 当不指定user-list时,默认给出关于每个用户的短报告
13.5.3 for…do…done的数值处理
for ((初始值,限制值,执行步长))do 程序段done
eg. read -p nus=0for ((i=i;i<=$nu;i=i+1))do s=$(($s+$i))doneecho "The sum is $s."
13.6 shell script的追踪与调试
`sh -[nvx] script.sh`参数:-n : 不要执行script, 仅查询语法的问题-v : 在执行script之前,现将script的内容输出到屏幕上-x : 将使用到的script内容显示在屏幕上(就是去掉注释)–对debug很有用14.1.1 用户标识符:UID与GID
用户的ID与账号存在`/etc/passwd`中。在显示文件属性的时候,系统会根据`/etc/passwd`与`/etc/group`的内容,找到UID/GID对应的账号与组名再显示出来。如果UID/GID的号码被修改了,文件属性所有者会变成数字。- 查找系统里面有没某用户
grep "username" /etc/passwd
14.1.2 用户账号
用户输入账号登陆系统之前,系统进行了哪些操作呢?
- 找
/etc/passwd
里面有没有输入的账号,没有则跳出;有则将该账号的UID和GID(在/etc/group
)读出来。另外,该账号的主文件夹和shell设置也一同读出。 - 核对密码表。查找
/etc/shadow
对应的账号与UID,然后核对密码是否相符 - 如果一切顺利,就能登陆成功,进入shell控管的阶段了。
所以,每次登陆linux时需要访问到/etc/passwd
和/etc/shadow
文件。
解析/etc/passwd
文件
/etc/group
有关 5 User Info 解释账号的意义 6 主文件夹 对应用户的主文件夹,eg /root,/liangst。如果想把该用户的主文件夹定义成别的文件夹,在这里改就可以了。 7 Shell 用户登陆之后能取得一个shell来与系统的内核通信。14.1.3 有效与初始用户组
/etc/group文件结构
1. 用户组名称
2. 用户组密码。给用户组管理员用的,现在通常都是x了。
3. GID。用户组的ID。与/etc/passwd的第四个字段GID对应的。
4. 此用户组支持的账号名称。用“,”分隔,eg root:x:0:root,dmtsai
有效用户组(effective group)与初始用户组(initial group):
- 初始用户组:用户一登陆会自动取得的用户组,这组不需要在/etc/group的第四字段记录该账号。
- 非初始用户组:要在/etc/group上加上该账号
- 某个用户账号可以同时支持两个或以上用户组。因此所在用户组拥有的功能,这个用户都会拥有。
假如该用户现在要创建一个文件夹或者文件,新文件(夹)的组是属于哪个呢?这要检查当时的有效用户组:
- 可以用
groups
指令查看该用户所有支持的用户组。而且第一个输出的用户组就是有效用户组。
有效用户组的切换:
- 可以用
newgrp groupname
指令切换有效用户组。前提是该用户本身有该用户组的支持。 - 这个newgrp命令的原理:它是用一个另外的shell来提供这个功能的。就好像用户切换
su - root
那样,所以如果想退回去原来的组可以用exit。
/etc/gshadow
文件:
- 结构与
/etc/group
一样的。 - 第二字段密码列,如果开头为“!”表示没有合法密码,所以没有用户组管理员
- 第三字段:用户组管理员的账号
- 第四字段:该用户组的所属账号(与
/etc/group
相同)
阅读全文
0 0
- linux-5
- Linux-5-
- Linux【5】
- linux(5)
- Linux-5
- Linux-5
- linux 5
- linux 5
- Linux学习笔记5:Linux分区,Linux安装
- [Linux][2011-5-25]linux int 类型
- [Linux][2011-5-25]linux mmap()
- [Linux][2011-11-5] errno linux socket
- linux学习笔记5--linux 进程管理
- 5,Linux学习笔记--LINUX常用命令(2)
- Linux基本操作 5----- Linux系统常用命令
- Linux-(5)Linux下查看文件
- Linux-(5)Linux下查看文件
- linux基础(18)--linux文件系统--RHEL6.5
- java实现 重建二叉树
- Linux 系统搭建 Web 服务器
- 【Hibernate】设置inverse属性,在多对多种维护关联关系的影响?
- 约瑟夫环
- MySQL 5.7 安装问题记录
- linux 5
- 算法学习之递归--汉诺塔问题
- 算术表达式的转换
- hdu5969最大的位或(二进制思维)
- 约瑟夫环问题的数组解法与单链表解法
- 一些常用的集合工具的代码块(缓慢更新XD)
- 数字
- 添加Cloud广告
- 【龙队的胡策】训练8.21(?+dp+lct)