1.用户权限及管理
1)用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。
在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。
Unix/Linux系统中的root账号通常用于系统的维护和管理,它对Unix/Linux操作系统的所有部分具有不受限制的访问权限。
在Unix/Linux安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”。在大多数版本的Unix/Linux中,都不推荐直接使用root账号登录系统。
2)相关指令
1) 查看当前用户 whoami
指令格式:whoami
可查看当前系统当前账号的用户名,通常在进行多个用户切换时,可以进行查看,另外一
种方法可进行查看,指令行最开始位置显示即为当前用户。
2) 查看登陆用户:who
指令格式:who [指令]
who -q或--count ##只显示用户的登录账号和登录用户的数量
who -u ##在登录时间后显示该用户最后一次操作到当前的时间间隔
who命令一般用于查看当前登陆系统的用户信息。
3) 查看登陆用户:w
指令格式:w [指令] [用户名]
w -h ##只显示运行who命令的用户名、登录终端和登录时间
w -s ##使用短列表,不显示用户登录时间、JCPU和PCPU时间
w -u ##忽略执行程序的名称,以及该程序的PCPU时间
w命令也可以查看登录当前系统的用户信息。与who命令相比,w命令的功能更强大,它不
但可以显示当前有哪些用户登录到系统,还可以显示这些用户正在进行的操作,并给出更
加详细和科学的统计数据。如果w命令携带用户名,则只显示指定用户的信息,否则显示
当前所有登录用户的信息。
4) 退出登录账户: exit
如果是图形界面,退出当前终端;
如果是使用ssh远程登录,退出登陆账户;
如果是切换后的登陆用户,退出则返回上一个登陆账号。
5) 切换用户:su
指令格式:su [-] 用户名
可以通过su命令切换用户,su后面可以加“-”。
su和su –命令不同之处在于:
su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录;
而不加-则只是进入到当前用户中。
6) 添加、删除组账号:groupadd、groupdel
指令格式:groupadd 组名/groupdel 组名
groupadd 新建组账号
groupdel 组账号
注:在进行添加删除组操作的时候,必须处于超级用户权限下。
7) 修改用户所在组:usermod
指令格式:usermod -g 用户组 用户名
注:在进行添加删除组操作的时候,必须处于超级用户权限下。
8) 添加用户账号:useradd
指令格式:useradd [参数] 新建用户账号
useradd -d <主目录> ##指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录 下建立与用户名同名目录为主目录
useradd -m ##自动建立目录
useradd -g ##指定组名称
useradd -d /home/abc abc -m ##创建abc用户,如果/home/abc目录不存在,
就自动创建这个目录,同时用户属于abc组
useradd -d /home/a a -g test -m ##创建一个用户名字叫a,主目录在/home/a,如
果主目录不存在,就自动创建主目录,同时用户属于test组
相关说明:
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指
向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。
Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);
每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录;
用户的主目录一般要放到根目录的home目录下,用户的主目录和用户名是相同的;
如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
9) 设置用户密码:passwd
指令格式:passwd 用户名
在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。
用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。
10) 删除用户:userdel
指令格式:userdel 用户名
userdel abc(用户名) ##删除abc用户,但不会自动删除用户的主目录
userdel -r abc(用户名) ##删除用户,同时删除用户的主目录
11) 查询用户登录情况:last
不管是哪位用户从哪里登录,管理员都可以通过last命令查出,以及是否有人非法登录。
12) 修改文件权限:chmod
指令格式:① 字母法:chmod u/g/o/a +/-/= rwx 文件
各字母代表含义: u:代表该文件所用者
g:代表与所有者同小组成员
o:其他用户
a:所有用户(包括u、g、o所有)
+:增加权限
-:减掉权限
=:重置指定用户所有权限,然后将=后面的权限赋予指定用户。
r:表示可读取权限
w:表示可写入权限
x:表示可执行权限
指令格式:②:数字法:chmod 数字 文件
各权限代表的数字:r 读取权限,数字代号为 "4"
w 写入权限,数字代号为 "2"
x 执行权限,数字代号为 "1"
- 不具任何权限,数字代号为 "0"
例如:chmod 777 filename 代表给filename权限为 u=rwx,g=rwx,o=rwx;
chmod 741 filename 代表给filename权限为 u=rwx,g=r--,o=--x;
chmod 400 filename 代表给filename权限为 u=r--,g=---,o=---。
注:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。
chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限。
13) 修改文件所有者:chown
指令格式:chown 用户名 文件或目录名
14) 修改文件所属组:chgrp
指令格式:chgrp 用户组名 文件或目录名
2.系统管理(了解)
1)查看当前日历:cal
cal命令用于查看当前日历,-y显示整年日历
2) 显示或设置时间:date
设置时间格式(需要管理员权限):
date [MMDDhhmm[[CC]YY][.ss]] +format
CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55。
3) 查看进程信息:ps
指令格式:ps [指令]
ps -a ##显示终端上的所有进程,包括其他用户的进程
ps -u ##显示进程的详细状态
ps -x ##显示没有控 制终端的进程
ps -w ##显示加宽,以便显示更多的信息
ps -r ##只显示正在运行的进程
ps命令可以查看进程的详细状况,进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。
4) 动态显示进程:top
top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新
显示信息。可以在使用top命令时加上-d <interval>来指定显示信息更新的时间间隔。
在top命令执行后,可以按下按键得到对显示的结果进行排序:
M ##根据内存使用量来排序
P ##根据CPU占有率来排序
T ##根据进程运行时间的长短来排序
U ##可以根据后面输入的用户名来筛选进程
k ##可以根据后面输入的PID来杀死进程。
q ##退出
h ##获得帮助
5) 终止进程:kill
kill命令指定进程号的进程,需要配合 ps 使用。
输入ps -a会显示进程号,然后输入指令kill 指令号即关闭该指定进程
有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束。
6) 后台程序:jobs、fg
用户可以将一个前台执行的程序调入后台执行如果程序已经在执行,ctrl+z可以将程
序调入后台。
调入后台后程序查看:
指令格式:jobs ##查看后台运行程序
将后台程序重新调出:
指令格式:fg 后台程序编号 ##将后台运行的指定的程序调出到前台
7) 关机重启:reboot、shutdown、init
reboot ##重新启动操作系统
shutdown –r now ##重新启动操作系统,shutdown会给别的用户提示
shutdown -h now ##立刻关机,其中now相当于时间为0的状态
shutdown -h 20:25 ##系统在今天的20:25 会关机
shutdown -h +10 ##系统再过十分钟后自动关机
init 0 ##关机
init 6 ##重启
8) 字符界面和图形界面切换
在redhat平台下,可通过命令进行切换:
init 3 切换到字符界面
init 5 切换到图形界面
通过快捷键切换(适用大部分平台):
Ctrl + Alt + F2 切换到字符界面
Ctrl + Alt + F7 切换到图形界面
9) 检测磁盘空间:df
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。
df -a 显示所有文件系统的磁盘使用情况
df -m 以1024字节为单位显示
df -t <fs> 显示各指定文件系统的磁盘空间使用情况
df -T 显示文件系统
10) 检测目录所占磁盘空间:du
du命令的指令格式:du [选项] 目录或文件名
du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。
du -a 递归显示指定目录中各文件和子目录中文件占用的数据块
du -s 显示指定文件或目录占用的数据块
du -b 以字节为单位显示磁盘占用情况
du -l 计算所有文件大小,对硬链接文件计算多次
11) 格式化:mkfs
mkfs命令相当于DOS/Windows系统中的格式化命令,用于创建指定的文件系统。
使用格式如下:
mkfs [选项] 设备文件名 [blocks]
选项 含义
-V 详细显示模式
-t <.fs> 指定文件系统类型,默认值为 ext2
-c 在创建文件系统的同时,进行磁盘坏块检查
blocks 文件系统块的大小
3.网络设置
1)查看或配置网卡信息:ifconfig
指令:ifconfig ##显示所有网卡的信息
ifconfig -a ##显示所有网络接口状态
ifconfig inet [IP地址] ##设置IP地址
ifconfig netmask [子网掩码]##设置子网掩码
ifconfig up ##启用网络接口
ifconfig down ##关闭网络接口
显示字段 说明
eth0 网络接口名称
Link encap 链路封装协议
Hwaddr 网络接口的MAC地址
Inet addr IP地址
Bcast 广播地址
Mask 子网掩码
UP 网络接口状态标识,UP已经启用,DOWN已经停用
BROADCAST 广播标识,标识网络接口是否支持广播
RUNNING 传输标识,标识网络接口是否已经开始传输分组数据
MULTICAST 多播标识,标识网络接口是否支持多播
MTU,Metric MTU:最大传输单位,单位:字节。Metric:度量值,用于RIP建立网络路由用
RX bytes 接收数据字节统计
TX bytes 发送数据字节统计
我们可以通过ifconfig配置网络参数:
只有root才能用ifconfig配置参数,其他用户只能查看网络配置
ifconfig 网络接口名称 [地址协议类型] [address] [参数]
地址协议类型如:inet(IPv4),inet6(IPv6)等
如:ifconfig eth0 inet 192.168.10.254 netmask 255.255.255.0 up
2) 测试远程主机连通性:ping
指令格式:ping [参数] 远程主机IP地址
ping -a 每次相应时都发出声音警示
ping -A 表示以实际往返相应时间为间隔,连续发送消息
ping -f 连续不断发送消息,不管是否收到相应
ping -n 只显示主机IP,不需要把IP解释成主机名
ping -c 发送指定次数数据报信息后停止,ping -c 5 192.168.10.254
ping -i 每次发送消息时间间隔,默认一秒,ping -i 2 192.168.10.254
ping -s 分组数据大小,默认56字节
ping -w 以秒为单位的超时值,一旦超时,就立即停止
ping通过ICMP协议向远程主机发送ECHO_REQUEST请求,期望主机回复ECHO_REPLY消息
通过ping命令可以检查是否与远程主机建立了TCP/IP连接
3) 网络路由设置:route
route可以增加,修改,显示路由信息,使用格式如下:
route [-v] [-A family] add default [gw 默认网关地址] [[dev interface]]
route add ##增加路由信息
route del ##删除路由信息
route -v ##显示路由信息
route -A ##指定网络协议inet(IPv4),inet6(IPv6)
route gw ##指定默认网关地址
route dev ##指定网络接口
4) 监控网络状态:netstat
netstat指令格式:netstat 参数
netstat -a ##列出所有端口
netstat -i ##显示网络接口列表
netstat -at ##所有tcp端口
netstat -au ##所有udp端口
netstat -l ##所有监听端口
netstat -lt ##tcp监听端口
netstat -lu ##指定网络接口
netstat -s ##显示所有协议统计信息
netstat -r ##当前路由状态
netstat -p ##输出中显示 PID 和进程名称,可以与其它开关一起使用,如:-pt
netstat命令监控网络状态,包括接口设置,IP路由,各种网络协议的统计,netstat输出信息说明如下:
字段 说明
Proto 协议,如:tcp,udp
Recv-Q 尚未读取的数据字节数
Send-Q 尚未发送的数据字节数
Local_address 本地主机地址与端口号
Foreign_address 远程主机与端口号
State 网络连接状态
RefCnt 引用计数,表示加接到相应套接字的进程数量
Flags 标志字段
Type 套接字类型,如:(SOCK_DGRAM, SOCK_STREAM,SOCK_RAW)
State 套接字状态
Path 套接字路径名
4. 编辑器
1) gedit编辑器
gedit是一个Linux环境下的文本编辑器,类似windows下的写字板程序,在不需要特别复杂的
编程环境下,作为基本的文本编辑器比较合适。
2) vi编辑器
vi 工作在字符模式下,不需要图形界面,非常适合远程及嵌入式工作,是效率很高的文本编辑
器,尽管在 Linux 上也有很多图形界面的编辑器可用,但vi的功能是那些图形编辑器所无法比
拟的。
vi有输入和命令两种工作模式。输入模式(也叫插入模式)用于输入字符。命令模式则是用来
运行一些编排文件、存档以及离开vi等操作命令。当执行vi后,首先进入命令模式,此时输入
的任何字符都被视为命令。
3)vi的基本操作
1) 打开文件
指令格式:vim filename 打开或新建文件,如果文件不存在则会新建文件。
2)编辑文件
指令格式:i 通过vim进入编辑界面,首先进入命令行模式,输入i
进入文本编辑模式
3)保存文件
按Esc键进入命令行模式,输入:wq保存退出,或者使用shift+zz保存退出
4)vi实用指令
1)vi的插入模式
按Esc进入到命令行模式,然后输入一下指令执行相应操作。
a 光标位置右边插入文字
i 光标位置当前处插入文字
o(字母) 光标位置下方开启新行
O(字母) 光标位置上方开启新行
I 光标所在行首插入文字
A 光标所在行尾插入文字
2)vi的退出
按Esc进入到命令行模式,然后输入一下指令执行相应操作。
ZZ(shift+z+z) 保存退出
:wq 保存退出
:x(小写) 保存退出
:w filename 保存到指定文件(当直接输入vim进入到VIM编辑界面中时
,如果最终需要保存文件,需要在命令行界面输入该指令,
否则输入下方的指令:q!)
:q 退出,如果文件修改但没有保存,会提示无法退出
:q! 退出,不保存
:!命令 暂时离开vi,执行命令
3) vi的删除和修改功能
按Esc进入到命令行模式,然后输入一下指令执行相应操作。
[n]x 删除从光标当前位置开始的n 个字符
[n]X 删除从光标前一个位置开始的 n 个字符
D 删除从光标当前位置开始到此行尾的字符
[n]dd 删除从当前行开始的 n 行(准确来讲,是剪切,剪切不粘贴即为删除)
[n]yy 复制从当前行开始的 n 行
p 把粘贴板上的内容插入到当前行下面的一行
dG 删除光标所在行开始到文件尾的所有字符
J 合并两行,将光标所在行下面的一行合并到光标所在行,并用空格隔开
. 执行上一次操作
u 撤销前一个命令
4) vi的行定位功能
Ctrl + f 向前滚动一个屏幕
Ctrl + b 向后滚动一个屏幕
gg 到文件第一行行首
G(大写) 到文件最后一行行首,G必须为大写
:$ 到文件最后一行行首
nG或ngg 到指定行行首,n为目标行数
5) vi的文本查找功能
/字符串 查找指定字符串(全文件查找)
n 寻找下一个
N 回到前一个
? 寻找上一个(从已经查找出的内容中查找)
/^字符串 查找以字符串开始的行
/字符串$ 查找以字符串结尾的行
/a.b 查找字符串a任意字符b
6) vi的替换功能
r 替换当前光标字符
:r 文件名 在光标当前位置下一行载入另一个文件
:s/p1/p2/g 将当前行中所有p1均用p2替代
:g/p1/s//p2/g 将文件中所有p1均用p2替代
:n1,n2s/p1/p2/g 将n1到n2行中所有p1均用p2替代
7) vi的set指令
:set ic 搜寻时不区分大小写
:set noic 搜寻时区分大小写
:set nu 显示行号
:set nonu 不显示行号