6. 系统设置
6.1 alias
alias:有些命令很长,或者名字显得别扭,可以给命令起一个别名
命令: alias :显示系统当前定义的所有alias
【案例】 alias cp = ‘cp -i’
【案例】alias li = ‘ls -l -color=tty’
用户可利用alias , 自定指令的别名。若仅输入alias ,则可列出目前所有的别名设置。alias的效力仅基于该次登入的操作。若要每次登入是即自动设置好别名,可在/etc/profile 或自己的 ~/.bashrc 中设定指令的别名。
还有,如果你想给每一位用户都生效的别名,请把 alias la = ‘ls -al’ 一行加在/etc/bashrc最后面
bashrc 是环境变量的配置文件 /etc/bashrc 和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用,如果你想给每一位用户都生效的别名,请把alias la = ‘ls -al’ 一行加在 /etc/bashrc 最后面,bashrc是环境变量的配置文件 /etc/bashrc 和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用
命令的执行顺序:
1: 执行用绝对路径和相对路径的命令
2:执行别名
3:执行Bash的内部命令
4:执行按照¥PATH 环境变量定义的目录找到第一个命令
6.2 alias
unalias:删除别名
语法:unalias 别名
6.3 export
export, 设置和显示环境变量
export 命令可新增、修改和删除环境变量
export -p :列出所有的shell 赋予程序的环境变量。
6.4 man
man [command] , 帮助,类似与dos中的help ;man实际为manual(操作说明),
man的级别:
1:查看命令的帮助
2:查看可被内核调用的函数的帮助
3:查看函数和函数库的帮助
4:查看特殊文件得帮助,主要是 /dev 目录下的文件
5:查看配置文件的帮助
6:查看游戏的帮助
7:查看其它杂项的帮助
8:查看系统管理员可用命令的帮助
9:查看和内核相关文件得帮助
查看命令拥有那个级别的帮助:
man -f 命令,相当于whats命令
eg:man -5 passwd
man -4 null
man -8 ifconfig
查看和命令相关的所有帮助
man -k命令,相当于 apropos 命令
7.系统管理
7.1 shutdown
shutdown ,系统关机命令
-h:关机
-r: 重启
shutdown -h now 立即进行关机
其它关机命令还有:halt 、poweroff 、init 0
7.2 reboot
reboot,重启命令
执行reboot 指令会让系统停止运作并重新开机
其它重启命令:
shutdown -r now 现在重新启动计算机
7.3 logout
logout ,注销登录
在linux 提示符下输入logout ,即可让用户注销登录,退出系统
7.4 who
who,显示当前登录系统的用户信息
命令输出:
登录名
登录终端
登录时间(登录来源的IP地址)
7.5 whoaml
显示自身用户名称
7.6 su
su :切换用户(switch user)
语法:su userName
su 命令用于切换其他用户 ,除了切换root 外,切换其他用户都需要输入密码
7.7 w
w 用户名:
输出
USER:登录的用户名
TTY:登录终端
FROM:哪个IP地址登录的
LOGIN@:登录时间
IDLE:用户闲置时间
JCPU:指的是和该终端连接的所有进程占有的时间,这个时间里并不包括过去的后台作用时间,但却包括当前正在运行的后台作用所占用的时间
PCPU:是指当前进程所占用的时间
WHAT:当前正在运行的命令
7.8 useradd
useradd ,添加用户
语法: useradd 用户名
如添加一个名为happy的用户:useradd happy
7.9 passwd
passwd,为新用户设密码
语法:passwd 用户名
如修改happy 的密码:passwdhappy
7.10 userdel
userdel,删除用户
语法:usedel 用户名
如:userdel happy,删除用户但保存用户主目录
如:userdel -r happy,删除用户以及用户主目录
7.11 history
history :历史命令
-c:清空历史命令
-w:把缓存中的历史命令写入到历史命令保存文件:~/.bash_history
建议不用清空历史文件:1 方便,2 便于排错容灾
历史命令的使用
使用上、下箭头调用以前的历史命令
使用“!n” 重复执行第n 条历史命令
使用“!!” 重复执行上一条命令
使用“! 字符串” 重复执行最后一条以该字符串开头的命令
如 service network restart==!ser
执行最后一条包含ser 字符串的命令,方便快捷
命令补全:tab 键,一下和两下
7.12 date
date命令:显示或设置系统时间或日期
可以在直接输入“date” 命令来查看系统的时间
date + %y/%m/%d
2017/06/15
date “+%Y-%m-%d %H:%M:%S”
2017-02-27 12:37:15
利用date 命令来更改系统的时间
date MMDDHHMMCCYY.SS:月 月 日 日 时 时 分 分 年 年.秒 秒
date -s “2017-08-15 21:32:25”
7.13 clear
clear ,清除执行记录,清除屏幕
8. 网络通信
8.1 ifconfig
查看本机当前网卡配置和网络状态信息
9. 文件搜索
9.1 which
which 查找“执行文件”
Which 指令会在系统环境变量 $PATH 设置的目录里去查找符合条件的文件
-a 将所有可找到的命令均列出,否则列出第一个找到的命令名称
Which 还可以查找别名 ,如 which ll
9.2 whereis
Whereis 寻找特定文件 whereis [-bmsu] 文件或目录
常见参数:
-b: 只找二进制文件(即可执行文件)
-m:只找在帮助文件,manual 路径下的文件
-s :只找源文件
-u: 没有帮助文件的文件
9.3 grep
grep ,在文本中查询内容
语法:grep 搜索字符串 fileName
如一个文件 Hello.java 中含有Lemon 关键字,可以使用grep 命令进行查找:
Grep -n Lemon Hello.java
其中的-n 表示在第n行
9.4 find
find ,搜索文件及目录
Linux 的文件系统由级别式的结构组成,所以在linux中找到特定的文件和目录并不是件容易的事。而“find” 命令可以解决上述问题
语法:find [路径] [选项]
查找时可以使用 linux 中通配符来匹配内容:
*:匹配任意内容
?:匹配任意一个字符
[] :匹配任意一个中括号的字符
find 还有很多个性化的操作,如按照所有者、时间、大小限制 进行搜索,作为测试人员用的频率并不高,因此这里不再详述,感兴趣自己去了解下。
find 与 grep 命令的区别:
find :在系统中搜索符合文件的文件名
grep :在文件当中弄搜索符合条件的字符串
10. 文件权限管理
10.1 权限概述
Ls -l 中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
10个字符确定不同用户能对文件干什么
第一个字符代表文件(-)、目录(d)、链接(l)
其余字符每3个一组 (rwx),读(r)、写(w)、执行(x)
第一组 rwx: 文件所有者的权限是读、写和执行
第二组 rw- :与文件所有者同一组的用户的权限是读、写但不能执行
第三组 r-- :不与文件所有者同组的其他用户的权限是读不能写和执行
用数字表示为:r=4 ,w=2 ,x=1 因此 rwx =4+2+1 = 7
1 表示连接的文件数
root 表示用户
root 表示用户所在的组
1213 表示文件大小(字节)
Feb 2 09:39 表示最后修改日期
abc 表示文件名
10.2 权限的作用
10.2.1 权限对文件的作用
r :读取文件的内容,cat more head tail
w :编辑、新增、修改文件内容 vi echo
(有写权限、但是不一定有权限删除,因为写指的是对下一级写权限,二能否删除,需要看上一级目录的权限)
x : 可执行
10.2.2. 权限对目录的作用
r : 可以查询目录下的文件名
w : 具有修改目录结构的权限,如新建文档和目录,删除该目录下的文件和目录,重命名该目录下的文件和目录,剪切(touch ,rm ,mv ,cp)
x :可以进入目录(cd)
10.3 文件权限命令
10.4 chmod
chmod 改变文件或目录的权限
赋值方式:
chmod 755 abc :赋予abc 权限 rwxr-xr-x
指定方式:
chmod u = rwx ,g= rx,o=rx abc :同上 u = 用户权限,g= 组权限,o=不同组其他用户权限
增加、减去
chmod u-x ,g+w abc : 给abc 去除 用户执行的权限,增加组写的权限
chmod a+r abc :给所有用户添加读的权限
10.5 chown
改变所有者(chown)
chown xiaoming abc :改变abc 的所有者为xiaoming
chown root ./abc :改变abc 这个目录的所有者是root
chown -r root ./abc :改变abc 这个目录及其下面所有的文件和目录的所有者是root
10.6 chgrp
改变用户组(chgrp)
chgrp root abc: 改变abc 所属的组为root
Chown root:root text.txt
10.7 usermod
改变用户所在组
在天剑用户时,可以指定将用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组
usermod -g 组名 用户名
你可以用
usermod -d 目录名 用户名,改变该用户登录的初始目录
10.8 注意点
对文件来说:最高权限是 x ,隐藏对文件要慎用执行权限
对目录来说:最高权限是 w:只有赋0、 5(rx)、 7(rwx), 因此对目录来讲要慎用写权限
案例:新建用户 user1, 组为 user2
通过root修改某文件权限,通过user1 来进行验证
尽量赋予最小的权限,避免777 权限
10.9 案例
10.9.1 综合案例1
【题1.1】 建立两个用户组group1 和group2, 以及三个用户dennis、daniel、abigale,并且将前2个用户分配在group1 用户组下,最后一个分配在group2用户组下
【题1.2】 以 dennis 用户登录,创建一个Hello.java文件
【题1.3】以daniel 用户登录,观察是否可以访问 /home/dennis 目录以及读或写其创建的Hello.java文件
【题1.4】以dennis 用户登录,修改目录/home/dennis 以及Hello.java文件的读写权限(更正:修改目录权限的时候,应该使用770,而不是760,否则权限不足)
【题1.6】改变abigale的用户组由group2 变为 group1
然后,可以使用cat /etc/passwd 查看并确定
【参考】
groupadd 组名 ,在linux中添加组
vi /etc/group ,查看linux中所有组信息,可以看可以编辑
cat /etc/group ,查看linux中所有组信息,只可以看不可以编辑
useradd -g 组名 用户名,创建用户的同时指定将该用户分配到哪个组下
vi /etc/passwd , 查看 linux中所有用户信息,可以看可以编辑
cat /etc/passwd ,查看linux 中所有用户信息,只可以看不可以编辑
10.9.2 综合案例2
实例:
police、terrorists组
创建组:
groupadd police
groupadd terrorists
创建用户:
useradd -g组名 用户名
添加密码:
passwd tommy
给tommy 设置密码
查看linux 中所有用户的信息
vi /etc/passwd
cat /etc/passwd
改变用户的组:
usermod -g