shell(11) shell其他.doc

基本概念

X window

interoperate with display & video card

XFree86 and X.org

the open source version of X window

KDE/GNOME,

 

字符集

一组二进制命令, linux 系统发送给监视器以显示字符

ASCII

ISO-8859-x, Unicode(all iso-8xx included)

 

模拟终端

模拟老式的 UNIX 非智能终端,定义显示缓存、图形向量、行字符数等终端参数,定义按键等

 

环境变量 TERM

定义所使用的模拟终端

 

XTERM

终端模拟器包

 

主题:脚本中的格式

变量赋值“ = ”两边无空格

if 条件判断的 [] 内必须有空格, if 与[之间也需要空格

变量引用,除赋值及 for 外都应使用 $

双引号允许变量和命令替换

单引号避免特殊通配符被解释,如 $ ? | < > eg: echo '$abc' #$abc 不会被解释成变量 abc

另一种变量引用法: ${variable}

bash 的转义符, /

 

Environment values

printenv, show all evn values

global env values: 大写,任何由定义变量的进程及其子进程中可见;

local env values: 小写,只在定义它的本地进程中可见,如当前 shell

set, show all env values, global & local included.

set env values, use "" or '' : a="A B C"

export, 将本地 env 导出为全局 env

delete env: unset xxx

 

一些默认环境变量:

PATH

HOME

TMOUT ,设置闲置多久后 bash 自动退出

DISPLAY

 

数学运算

expr 5 /* 2     # 需要空格

var=$[ 5 * 2 ]  # 无所谓空格, bash 专有

var=$[$var*(2+$var)]

这样也可以:

var=$(( 5 * 2 ))

 

脚本退出

获得退出状态: $? 最大值 255

退出命令 : exit 0            # 是否可像函数一样用 return TBD

 

bash 变量数组

define a=(1 2 3 4) ,空格分割, ()

echo ${a[1]}         # use:    index based on 0

echo ${a[*]}         # show all members

a[1]=20            # set a member

unset a              # deleted

TBD how to add members to the array?

 

bash 的三种启动方式

1 ,用户登录时的默认登录 shell ,依次执行 /etc/profile $HOME/.bash_profile, $HOME/.bash_login, $HOME/.profile

2 ,非登录的交互式 shell ,处理 ~/.bashrc

3 ,运行脚本的非交互式 shell ,由 $BASH_ENV 指定要执行的启动脚本

 

/etc/profile   第一次登陆时执行,最后从 /etc/profile.d 下的配置文件中收集 shell 设置信息

~/.bash_profile       在用户登录时执行,将调用 ~/.bashrc

~/.bashrc               设置 alias ,并调用 /etc/bashrc

/etc/bashrc                 每次执行 / 打开 bash 时执行,其内容可被 ~/.bashrc 覆盖

~/.bash_logout

 

/etc/profile, 读取 /etc/profile.d 目录下的配置文件,第一次登录时执行

~/.profile

~/.bash_login

~/.bash_profile

~/.bashrc ,添加环境变量和别名的最佳地点

~/.bash_logout logout 时执行

 

其他

coreutils package, the core utilities of linux from GNU

echo -n xxx, 不输出换行

 

user manage

UID 小于 100 ,各种非实际用户的功能创建的用户

/etc/passwd

user_name:pwd:UID:GID:comments:HOME_DIR:deault_shell

/etc/shadom

useradd -D #show default setting for adding user. SKEL set a pattern for the HOME dir of the new user.

userdel, del user, param -r is appended if u want to del the HOME_DIR also

usermod, set user such as adding user to a group

passwd, change password

finger root, show user info

 

group

/etc/group

name:pwd:GID:user_list

passwd of group: 用于临时成为该组成员

null user_list: /etc/passwd 中的默认组用户可以不出现在 group 的用户列表中

usermod -G group1 user1   : add user to a group

groupadd

groupmod

id 命令,可以显示用户属于的所有组

 

文件权限

umask, set the default value of the new created file.

chmod 760 newfile

chmod +x newfile  # +, -, =

chown chgrp

 

 

文件属性

set user id(SUID) ,文件将在文件所有者权限下执行,而非文件执行者权限下,如文件由 root 所有,则普通用户也将以 root 权限执行该程序

set group id(SGID) ,对于目录,目录中的新建文件将使用目录的用户组作为默认用户组;一种建立多用户共享文件夹的方法;

粘着位:进程结束后,文件仍然保留在内存中,作用(?)

chmod +s xxx ,设置 SGID

 

临时文件

mktemp abc.XXXXXX      #6 X 将随机生成, X 数量要大于 3 ,命令返回生成的文件名(默认当前目录), XX 必须在名称最后

mktemp -t abc.XXX             # /tmp 下生成文件

mktemp -d abc.xxx              # 创建临时目录

 

字串处理

使用 ## # % %% 进行字符串截取

使用 expr 获得字串长度、子串等,

expr substr STRING POS LENGTH

eg:

expr substr abcd 1 100   #pos 1 开始, length 可大于实际长度

expr length abcd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值