1.走近Linux系统
开机登录
开机会启动许多程序。它们在Windows叫做"服务"
(service),在Linux就叫做"守护进程"
(daemon)。
关机
- 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
- 关机指令为:
shutdown
;
sync # 将数据由内存同步到硬盘中。
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机
shutdown –h now # 立马关机
shutdown –h 20:25 # 系统会在今天20:25关机
shutdown –h +10 # 十分钟后关机
shutdown –r now # 系统立马重启
shutdown –r +10 # 系统十分钟后重启
reboot # 就是重启,等同于 shutdown –r now
halt # 关闭系统,等同于shutdown –h now 和 poweroff
- 不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。
系统目录结构
-
一切皆文件;
-
根目录
/
,所有的文件都挂载在这个节点下; -
登录系统后,在当前命令窗口下输入命令:
ls /
. -
树状目录结构:
以下是对这些目录的解释:
- /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令。
- /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
(不要动)
- /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
(不要动)
- /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
(存放突然关机的一些文件)
- /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /srv:该目录存放一些服务启动之后需要提取的数据。
- /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs 。
/tmp:这个目录是用来存放一些临时文件的。用完即丢的文件,可以放在这个目录下,安装包!
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /usr/bin: 系统用户使用的应用程序。
- /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。Super
- /usr/src: 内核源代码默认的放置目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
2.常用基本命令
1.目录管理
-
绝对路径:路径的写法,由根目录
/
写起,例如:/usr/share/doc
这个目录。 -
相对路径:路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:
cd ../man
这就是相对路径的写法啦!- cd: 切换目录命令
- ./: 当前目录
- cd … : 返回上一级目录
ls (列出目录!)
-
-a参数:all ,查看全部的文件,包括隐藏文件;
-
-l参数:列出所有的文件,包含文件的属性和权限,没有隐藏文件;
-
所有Linux可以组合使用!
cd 命令 切换目录
-
cd 目录名(绝对路径都是以 / 开头,相对路径,对于当前目录该如何寻找 …/…/)
pwd 显示当前用户所在的目录!
-
pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。
-
pwd [-P]
:选项与参数-P
,显示出确实的路径,而非使用连结 (link) 路径。 -
如果是链接,要显示真实地址,可以使用 -P参数。
mkdir 创建一个目录
mkdir [-mp] 目录名称
选项与参数:
-m :配置文件的权限!
-p :一次创建多级目录
# 进入我们用户目录下
[root@liming /]# cd /home
# 创建一个 test 文件夹
[root@liming home]# mkdir test
# 创建多层级目录
[root@liming home]# mkdir test1/test2/test3
mkdir: cannot create directory ‘test1/test2/test3’: No such file or directory
# 加了这个 -p 的选项,可以自行帮你创建多层目录!
[root@liming home]# mkdir -p test1/test2/test3
# 创建权限为 rwx--x--x 的目录
[root@liming home]# mkdir -m 711 test2
[root@liming home]# ls -l
total 16
drwxr-xr-x 2 root root 4096 Sep 27 13:50 liming
drwxr-xr-x 2 root root 4096 Sep 27 15:35 test
drwxr-xr-x 3 root root 4096 Sep 27 15:35 test1
drwx--x--x 2 root root 4096 Sep 27 15:35 test2
[root@liming home]#
touch 创建文件
rm 删除文件,文件夹
rm [-r -f] 参数1 参数2...参数n
- -r : 用于删除
文件夹
- -f : 强制删除,不会弹出提示消息
- -r : 用于删除
cp (复制文件或目录)
[root@liming /]# cp [-r] 来源档(source) 目标档(destination)
选项与参数:
- -a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
- -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
- -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
- -r:递归持续复制,用于复制文件夹;(常用)
# 找一个有文件的目录
[root@iZf8z6dzdkqx1n7rawz94oZ home]# cd /root
[root@iZf8z6dzdkqx1n7rawz94oZ ~]# ls
install.sh
# 复制 root目录下的install.sh 到 home目录下
[root@iZf8z6dzdkqx1n7rawz94oZ ~]# cd /home
[root@iZf8z6dzdkqx1n7rawz94oZ home]# cp /root/install.sh /home
[root@iZf8z6dzdkqx1n7rawz94oZ home]# ls
install.sh redis subei test2 www
# 再次复制,加上-i参数,增加覆盖询问?
[root@iZf8z6dzdkqx1n7rawz94oZ home]# cp -i /root/install.sh /home
cp: overwrite '/home/install.sh'? y # n不覆盖,y为覆盖
[root@iZf8z6dzdkqx1n7rawz94oZ home]#
mv (移动文件与文件夹,或修改名称)
[root@liming /]# mv [-fiu] source destination
选项与参数:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
# 复制一个文件到当前目录
[root@iZf8z6dzdkqx1n7rawz94oZ home]# cp /root/install.sh /home
# 创建一个文件夹 test
[root@iZf8z6dzdkqx1n7rawz94oZ home]# mkdir test
# 将复制过来的文件移动到我们创建的目录,并查看
[root@iZf8z6dzdkqx1n7rawz94oZ home]# mv install.sh test
[root@iZf8z6dzdkqx1n7rawz94oZ home]# ls
redis subei test test2 www
[root@iZf8z6dzdkqx1n7rawz94oZ home]# cd test
[root@iZf8z6dzdkqx1n7rawz94oZ test]# ls
install.sh
# 将文件夹重命名,然后再次查看!
[root@iZf8z6dzdkqx1n7rawz94oZ test]# cd ..
[root@iZf8z6dzdkqx1n7rawz94oZ home]# mv test mvtest
[root@iZf8z6dzdkqx1n7rawz94oZ home]# ls
mvtest redis subei test2 www
[root@iZf8z6dzdkqx1n7rawz94oZ home]#
2.基本属性
文件属性
-
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
-
在Linux中我们可以使用
ll
或者ls –l
命令来显示一个文件的属性以及文件所属的用户和组,如:
在Linux中第一个字符代表这个文件是文件夹、文件或链接文件等等:
- 当为[ d ]则是目录;
- 当为[ - ]则是文件;
- 若是[ l ]则表示为链接文档 ( link file );
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的字符中,以三个为一组,且均为『rwx』
的三个参数的组合。其中,[ r ]代表可读(read)
、[ w ]代表可写(write)
、[ x ]代表可执行(execute)
。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]
而已。每个文件的属性由左边第一部分的10
个字符来确定(如下图):
其中:
- 第1、4、7位表示读权限,如果用
"r"
字符表示,则有读权限
,如果用"-"
字符表示,则没有读权限
; - 第2、5、8位表示写权限,如果用
"w"
字符表示,则有写权限
,如果用"-"
字符表示没有写权限
; - 第3、6、9位表示可执行权限,如果用
"x"
字符表示,则有执行权限
,如果用"-"
字符表示,则没有执行权限
;
Linux系统按文件所有者
、文件所有者同组用户
和其他用户
来规定了不同的文件访问权限。
修改文件属性
1、chgrp:更改文件属组。
chgrp [-R] 属组名 文件名
- -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown:更改文件属主,也可以同时更改文件属组。
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
3、chmod:更改文件9个属性。
chmod [-R] xyz 文件或目录
- Linux文件属性有两种设置方法,一种是数字,一种是符号。
- Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
- 文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组
的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4 w:2 x:1
可读可写不可执行 rw- 6
可读可写不可执行 rwx 7
chomd 777 文件赋予所有用户可读可执行!
3.文件内容查看
Linux系统中使用以下命令来查看文件的内容:
- cat 由第一行开始显示文件内容;
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写;
- nl 显示的时候,顺道输出行号;
- more 一页一页的显示文件内容;
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页;
- head 只看头几行;
- tail 只看尾巴几行;
可以使用man [命令]
来查看各个命令的使用文档,如:man cp
。
拓展:Linux链接概念
-
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为软链接(Symbolic Link)。
-
ln
命令产生硬链接 -
ln -s
创建软连接
[root@liming /]# cd /home
[root@liming home]# touch f1 # 创建一个测试文件f1
[root@liming home]# ls
f1 liming test.txt
[root@liming home]# ln f1 f2 # 创建一个硬链接 f2
[root@liming home]# ln -s f1 f3 # 创建一个软链接(符号连接) f3
[root@liming home]# ls -li
total 4
1051340 -rw-r--r-- 2 root root 0 Sep 27 16:06 f1
1051340 -rw-r--r-- 2 root root 0 Sep 27 16:06 f2
1051341 lrwxrwxrwx 1 root root 2 Sep 27 16:06 f3 -> f1
1324274 drwxr-xr-x 2 root root 4096 Sep 27 13:50 liming
1051333 -rw-r--r-- 1 root root 0 Sep 27 15:40 test.txt
[root@liming home]#
- 由上面的结果中可以看出,硬连接文件 f2 与原文件 f1 的 inode 节点相同,均为 1051340,然而符号连接文件的 inode 节点不同。
# echo 字符串输出 >> f1 输出到 f1文件
[root@liming home]# echo "I am f1 file" >>f1 # 给f1文件中写入一些字符串!
[root@liming home]# cat f1 # 查看f1
I am f1 file
[root@liming home]# cat f2
I am f1 file
[root@liming home]# cat f3
I am f1 file
[root@liming home]# rm -f f1
[root@liming home]# cat f2 # f2 硬链接还在
I am f1 file
[root@liming home]# cat f3 # f3(软连接、符号连接)快捷方式失效!
cat: f3: No such file or directory
[root@liming home]#
-
通过上面的测试可以看出:当删除原始文件 f1 后,硬连接 f2 不受影响,但是符号连接 f1 文件无效;
-
依此您可以做一些相关的测试,可以得到以下全部结论:
- 删除符号连接f3,对f1,f2无影响;
- 删除硬连接f2,对f1,f3也无影响;
- 删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
- 同时删除原文件f1,硬连接f2,整个文件会真正的被删除。
4.Vim编辑器
vim 键盘图:
三种使用模式
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
。这三种模式的作用分别是:
- 命令模式:用户刚刚启动 vi/vim,便进入了命令模式。
- 以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
- 输入模式:在命令模式下按下i就进入了输入模式。
- 在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符;
- ENTER,回车键,换行;
- BACK SPACE,退格键,删除光标前一个字符;
- DEL,删除键,删除光标后一个字符;
- 方向键,在文本中移动光标;
- HOME/END,移动光标到行首/行尾;
- Page Up/Page Down,上/下翻页;
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线;
- ESC,退出输入模式,切换到命令模式;
- 底线命令模式:在命令模式下按下:(英文冒号)就进入了底线命令模式。
- 底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
- 在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序;
- w 保存文件;
- 按
ESC
键可随时退出底线命令模式。
如果你想要使用 vi 来建立一个名为 subei.txt 的文件时,你可以这样做:
[root@iZf8z6dzdkqx1n7rawz94oZ home]# vim subei.txt
然后就会进入文件
按下 i 进入输入模式(也称为编辑模式),开始编辑文字
这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。
按下 ESC 按钮回到一般模式
好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!
在一般模式中按下 :wq 储存后离开 vim!
OK! 这样我们就成功创建了一个 subei.txt 的文件。
Vim 按键说明
第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等。
移动光标的方法 | |
---|---|
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
[Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) |
[Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
[Ctrl] + [d] | 屏幕『向下』移动半页 |
[Ctrl] + [u] | 屏幕『向上』移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n< space> | 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。 |
0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
$ 或功能键[End] | 移动到这一行的最后面字符处(常用) |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个档案的最后一行(常用) |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) |
gg | 移动到这个档案的第一行,相当于 1G 啊!(常用) |
n< Enter> | n 为数字。光标向下移动 n 行(常用) |
搜索替换 | |
---|---|
/word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用) |
?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! |
N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 |
删除、复制与粘贴 | |
---|---|
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
nx | n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。 |
dd | 删除游标所在的那一整行(常用) |
ndd | n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用) |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除游标所在处,到该行的最后一个字符 |
d0 | 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 |
yy | 复制游标所在的那一行(常用) |
nyy | n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
y1G | 复制游标所在行到第一行的所有数据 |
yG | 复制游标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所有数据 |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
p, P | p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用) |
J | 将光标所在行与下一行的数据结合成同一行 |
c | 重复删除多个数据,例如向下删除 10 行,[ 10cj ] |
u | 复原前一个动作。(常用) |
[Ctrl]+r | 重做上一个动作。(常用) |
第二部分:一般模式切换到编辑模式的可用的按钮说明。
进入输入或取代的编辑模式 | |
---|---|
i, I | 进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。(常用) |
a, A | 进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用) |
o, O | 进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』;O 为在目前光标所在处的上一行输入新的一行!(常用) |
r, R | 进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用) |
[Esc] | 退出编辑模式,回到一般模式中(常用) |
第三部分:一般模式切换到指令行模式的可用的按钮说明。
指令行的储存、离开等指令 | |
---|---|
:w | 将编辑的数据写入硬盘档案中(常用) |
:w! | 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊! |
:q | 离开 vi (常用) |
:q! | 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。 |
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~ | |
:wq | 储存后离开,若为 :wq! 则为强制储存后离开 (常用) |
ZZ | 这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开! |
:w [filename] | 将编辑的数据储存成另一个档案(类似另存新档) |
:r [filename] | 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面 |
:n1,n2 w [filename] | 将 n1 到 n2 的内容储存成 filename 这个档案。 |
:! command | 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中看 /home 底下以 ls 输出的档案信息! |
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与 set nu 相反,为取消行号! |
5.账号管理
添加账号 useradd
useradd 选项 用户名
参数说明:
-
选项 :
-
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -m 使用者目录如不存在则自动建立。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
-
用户名 :
- 指定新账号的登录名。
测试:
[root@iZf8z6dzdkqx1n7rawz94oZ home]# useradd -m subeily # 创建一个用户!
[root@iZf8z6dzdkqx1n7rawz94oZ home]# ls
f2 f3 mvtest redis subei subeily subei.txt test2 www
- Linux中一切皆文件,这里的添加用户说白了就是往某一个文件中写入用户的信息了!
Linux下如何切换用户
- root用户:
- 切换用户的命令为:
su username
【username是你的用户名哦】
-
从普通用户切换到root用户,还可以使用命令:
sudo su
. -
在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令;
-
在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:
【su - root】
。
删除帐号
-
删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
-
删除一个已有的用户账号使用userdel命令,其格式如下:
userdel 选项 用户名
- 常用的选项是 -r,它的作用是把用户的主目录一起删除。
[root@iZf8z6dzdkqx1n7rawz94oZ home]# userdel -r subeily
[root@iZf8z6dzdkqx1n7rawz94oZ home]# ls
f2 f3 mvtest redis subei subei.txt test2 www
- 此命令删除用户subeily在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
修改帐号
- 修改已有用户的信息使用usermod命令,其格式如下:
usermod 选项 用户名
- 常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
- 例如:
[root@iZf8z6dzdkqx1n7rawz94oZ home]# usermod -d /home/233 subei
[root@iZf8z6dzdkqx1n7rawz94oZ home]#
用户的密码设置问题!
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
命令的格式为:
passwd 选项 用户名
可使用的选项:
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
-
一般通过root创建用户的时候!要配置密码!
-
Linux上输入密码是不会显示的,你正常输入就可以了,并不是系统的问题!
-
在公司中,一般是拿不到公司服务器的 root 权限,都是一些分配的账号!
-
如果是超级用户的话:
passwd username new password re password
- 如果是普通用户:
passwd
(current) UNIX password:
new password: # 密码不能太过于简单!
re password:
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
锁定账户!
- root,比如张三辞职了!冻结这个账号,一旦冻结,这个人就登录不上系统了!
- 为用户指定空口令时,执行下列形式的命令:
# passwd -d subei
# 没有密码也不能登录!
-
此命令将用户 subei的口令删除,这样用户 subei下一次登录时,系统就不再允许该用户登录了。
-
passwd 命令还可以用 -l(lock) 选项锁定某一用户,使其不能登录,例如:
# passwd -l subei
# 锁定之后这个用户就不能登录了!
6.用户组管理
增加一个新的用户组使用groupadd命令
groupadd 选项 用户组
可以使用的选项有:
- -g GID 指定新用户组的组标识号(GID)。
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
实例1:
# groupadd group1
- 此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。
实例2:
# groupadd -g 101 group2
- 此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。
如果要删除一个已有的用户组,使用groupdel命令
groupdel 用户组
例如:
# groupdel group1
此命令从系统中删除组group1。
修改用户组的属性使用groupmod命令
groupmod 选项 用户组
常用的选项有:
- -g GID 为用户组指定新的组标识号。
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
- -n新用户组 将用户组的名字改为新名字
# 此命令将组group2的组标识号修改为102。
groupmod -g 102 group2
# 将组group2的标识号改为10000,组名修改为group3。
groupmod –g 10000 -n group3 group2
/etc/passwd
-
完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。
-
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。
下面分别介绍这些文件的内容。
-
/etc/passwd文件是用户管理工作涉及的最重要的一个文件。
-
Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。
这个文件对所有用户都是可读的。它的内容类似下面的例子:
[root@iZf8z6dzdkqx1n7rawz94oZ home]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
从上面的例子可以看到,/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
/etc/shadow
/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生
它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。这些字段是:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- "登录名"是与/etc/passwd文件中的登录名相一致的用户账号
- "口令"字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。
- "最后一次修改时间"表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。
- "最小时间间隔"指的是两次修改口令之间所需的最小天数。
- "最大时间间隔"指的是口令保持有效的最大天数。
- "警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
- "不活动时间"表示的是用户没有登录活动但账号仍能保持有效的最大天数。
- "失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
/etc/group
用户组的所有信息都存放在/etc/group文件中。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:
组名:口令:组标识号:组内用户列表
- "组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
- "口令"字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。
- "组标识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。
- "组内用户列表"是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
7.进程管理
ps 指令
使用ps指令即可查看当前系统中正在执行的进程的各种进程信息。
基本语法:
ps –选项
选项说明:
- -a:显示当前终端的所有进程信息;
- -u:以用户的形式显示进程信息;
- -x:显示后台进程运行的参数;
# ps -aux 查看所有的进程
ps -aux|grep xxx ,查看某个服务的进程 如,ps -aux|grep mysql
# | 在Linux这个叫做管道符 A|B
# grep 查找文件中符合条件的字符串!
说明:
1、grep 命令用于查找文件里符合条件的字符串。
2、命令格式:命令A|命令B,即命令A的正确输出作为命令B的操作对象。
使用 ps -ef可查看父进程。
- ps -ef是以全格式显示当前所有的进程
- -e 显示所有进程。
- -f 全格式。
- UID:用户ID
- PID:进程ID
终止进程kill或killall
kill指令就像是Windows系统中的任务管理->结束任务一样。
- 基本语法:
kill [选项] 进程号(功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负 载过大而变得很慢时很有用)
- 常用选项: -9:表示强迫进程立即停止。
kill -9 PID
查看进程树pstree
基本语法:
pstree [选项] ,可以更加直观的来看进程信息
常用选项:
- -p :显示进程的PID;
- -u :显示进程的所属用户
8.压缩,解压
#tar的常用组合:
#将1.txt 2.txt 3.txt压缩到test.tar文件内
tar -cvf test.tar 1.txt 2.txt 3.txt
#将1.txt 2.txt 3.txt压缩到test.tar文件内,使用gzip模式
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
注意:
- -z选项如果使用,一般处于选项位第一个
- -f选项,必须再选项位
最后
一个