1、linux系统的环境变量
(1)查看当前系统的环境变量
查看全局变量命令:printenv
显示单个变量的值:echo $变量名 如:echo $HOME
(2)设置环境变量
设置局部变量:
$ test=testing
$ echo $test
testing
注意,在环境变量名称、等号和值之间没有空格,如果需要定义含有空格的字符串值,可以用单引号来界定字符串的开始和结束
设置全局变量:
在shell中直接定义的变量为局部变量,只能在当前shell中使用。
可以使用:export 环境变量;的形式将局部变量设定为全局变量,如 export test ;此处不需要加$
(3)删除环境变量
unset 环境变量;可以删除已经定义的环境变量,此处不需要加$
(4)定位系统的环境变量
启动shell时,系统会先读取/etc/profile,获取配置信息;
其次再读取用户目录下的配置文件,ubuntu下为~/.profile文件
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
用来判断 .bashrc是否存在,如果存在就运行;设置将用用户目录下的bin文件目录加入到PATH变量中;
因此,当我们需要设置一些个人需要使用的变量时,可以放在.bashrc文件中。
(5)可变数组(一般不使用)
定义:
$ test=(one two three four five)
查看:
$ echo ${test[0]};$ one
$ echo ${test[*]};$ one two three four five
修改:
$ test[2]=six;
$ echo ${test[*]};$ one two six four five
删除:
删除数组中的某个值:
$ unset ${test[2]}
$ echo ${test[*]}
$ one two four five ;// 数组个数没有改变,只是删除的值不存在了
$ echo ${test[2]};$ ;// 为空
删除整个变量:
$ unset test;// 再次查看时该变量不存在,此处不需要加$
(6)使用命令别名
---- 查看已有的别名列表:alias -p
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
----增加新的命令别名:
在用户目录下的.bashrc中增加命令:alias lh='ls -lh'
$ lh
drwxrwxr-x 11 hcq hcq 4.0K 10月 30 17:13 test
drwxrwxr-x 2 hcq hcq 4.0K 10月 31 10:41 tftpboot
drwxrwxr-x 3 hcq hcq 4.0K 9月 12 16:43 workspace
2、linux系统的用户管理
(1)/etc/passwd文件
test:x:1000:1000:test,,,:/home/test:/bin/bash
用户名:用户密码:用户id(UID):用户所在组id(GID):备注字段:用户HOME目录的位置:用户的默认shell
此处用户密码使用x代替,对用户的密码管理放在/etc/shadow文件中,只能root用户访问。
(2)/etc/shadow文件
test:$6$FyGs/bEO$hkywwcLmQvAJBzDG6r7XEIfJLbIjuVt9am6Kry0/:16589:0:99999:7:::
用户名:加密后的密码:自1970年1月1日(上次修改密码的日期)到当天的天数:多少天后才能更改密码:多少天后必须修改密码:密码过期多少天提醒用户更改密码:密码过期多少天禁止用户账户:用户账户被禁用的日期:预留字段
(3)添加新用户
useradd命令:
useradd -D: 查看新建用户的配置系统默认值
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
新建用户默认的HOME目录下的系统文件模板如/etc/skel目录配置
useradd -m test:创建一个test的用户,并创建用户目录
(4)删除用户
userdel命令:
userdel -r test:删除test用户,并删除相应的用户目录
(5)修改用户
usermod命令:修改用户的基本信息
-l:修改用户名,usermod -l new_username old_username
-u:修改用户的UID
-g:修改用户所属的GID
-G:修改用户所属的附加群组
-L:用来锁定用户,这样用户就无法登陆
-U:用来解锁用户
passwd和chpasswd命令:
passwd 用户名:进入修改密码提示
chpasswd < users.txt :读取文件中的用户名和密码对(冒号隔开),批量修改密码
(6)/etc/group文件
用户的组信息保存在/etc/group文件中
shared:x:1000:
组名:组密码:GID:属于该组的用户列表
(7)创建新组
groupadd 组名:新建一个用户,默认是没有添加用户进来的
例如:groupadd shared
使用usermod命令添加用户
usermod -G shared test:将test用户加入到shared组中
再查看/etc/group文件
shared:x:1000:test
(8)修改组
groupmod命令:可以修改组名和组的GID
-n:修改组名,groupmod -n sharing shared:将shared组名修改为sharing
-g:修改组的GID
3、linux系统的文件权限
(1)chmod命令:修改文件权限
chmod 764 test:修改test文件的权限为-rwxrw-r--
chmod [ ugoa +/- rwx ] filename:为指定对象增加或减少某一权限
u:用户 g:组 o:其它 a:所有
chmod u+x filename:为用户增加可行性权限
chmod o-w filename:为其它用户减少可写权限
不指定对象时表示全部:
chmod +x test:为test文件添加x权限-rwxrwxr-x
(2)chown命令:改变文件的属主
(3)chgrp命令:改变文件的默认属组
(4)umask命令:修改默认的创建权限