Linux基础学习
Linux学习
Linux的安装
CentOS7(Linux)详细安装教程(手把手图文详解版)-CSDN博客
Linux的文件属性
[root@www /]# ls -l
total 64
drwxr-xr-x 2 root root 4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21 2014 mysql
……
每个文件的属性由左边起第一部分的10个字符决定
d是文件目录
r是读权限
w是写权限
x是执行权限
-是没有权限
0是文件类型,13是属主权限,46是属组权限,7~9是其他权限
Linux文件的属主和属组
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所属组的同组用户和其他用户。
因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
更改文件的属性
1.chgrp:更改文件属组
语法:
chgrp [-R] 属组名 文件名
-R :递归更改文件属组,就是更改某个目录文件的属组时,加上-R的参数,该目录下的所有文件的属组都会更改
2.chown:更改文件所有者,也可以同时更改文件所属组
语法:
chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名
3.chmod:更改文件的9个属性
Linux文件属性有两种设置方法,一种是数字,一种是符号
Linux文件的基本权限有9个,分别是owner/group/others,三种身份有各自的读/写/执行操作权限
数字
我们可以用数字代表各个权限:r:4,w:2,x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx--- 分数则是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= --- = 0+0+0 = 0
所以语法是这样的:
chmod [-R] xyz 文件或目录
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
符号
还有一个改变权限的方法,user:用户,group:组,others:其他
chmod u/g/o/a +(加入)/-(除去)/=(设定) rwx 文件名
举例:
chmod u=rwx,g=rx,o=r test1 #修改权限
chmod a-x test1 #去除权限
chmod a+x test1 #赋予权限
Linux文件与目录管理
绝对路径:路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
相对路径:路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。
处理目录的常用命令
| 命令 | 英文全拼 | 功能说明 | 常用示例 |
|---|---|---|---|
| ls | list files | 列出目录及文件名 | ls -l /etc/ |
| cd | change directory | 切换目录 | cd /var/log |
| pwd | print work directory | 显示目前的目录 | pwd |
| mkdir | make directory | 创建一个新的目录 | mkdir new_folder |
| rmdir | remove directory | 删除一个空的目录 | rmdir empty_dir |
| cp | copy file | 复制文件或目录 | cp file1 file2 |
| rm | remove | 删除文件或目录 | rm -r old_dir |
| mv | move file | 移动文件与目录,或修改文件与目录的名称 | mv old.txt new.txt |
你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。
Linux文件内容查看
| 命令 | 功能说明 | 常用示例 |
|---|---|---|
cat |
由第一行开始显示文件全部内容 | cat /etc/passwd |
tac |
从最后一行开始倒序显示文件内容 | tac /var/log/syslog |
nl |
显示文件内容并顺道输出行号 | nl -ba ~/.bashrc |
more |
一页一页显示文件内容(只能向下翻) | more /var/log/dmesg |
less |
一页一页显示文件内容,可上下翻页搜索 | less /var/log/syslog |
head |
只看文件开头若干行(默认 10 行) | head -n 20 /etc/passwd |
tail |
只看文件结尾若干行(默认 10 行) | tail -f /var/log/nginx/access.log |
你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。
Linux用户和用户组管理
Linux系统用户账号管理
| 命令 | 功能说明 | 常用选项 | 示例 |
|---|---|---|---|
| useradd | 新建系统账户 | -m 自动创建家目录-d 指定家目录路径-s 指定登录 shell-g 指定主要组-G 指定附加组-u 指定 UID-c 添加备注(GECOS)-r 创建系统账户(UID<1000) |
sudo useradd -m -s /bin/bash -G sudo -c "Dev User" alice |
| userdel | 删除系统账户 | -r 同时删除家目录及邮件池-f 强制删除(即使用户已登录) |
sudo userdel -r alice |
| usermod | 修改已有账户属性 | -l 改登录名-d -m 新家目录并迁移旧数据-s 改登录 shell-g/-G 改主要组/附加组-L 锁定账户-U 解锁账户-aG 追加到附加组(需与 -G 连用) |
sudo usermod -aG docker -s /bin/zsh alicesudo usermod -l newname -d /home/newname -m oldname |
| passwd | 设置/管理用户口令 | 无选项:交互式修改当前或指定用户密码-l 锁定密码(用户无法登录)-u 解锁密码-d 清空密码(空口令登录)-e 下次登录强制改密-S 查看密码状态(锁定/过期等) |
sudo passwd alicesudo passwd -l alicesudo passwd -e alicepasswd -S alice |
另外
以上命令除 passwd(用户自己改密码时)外,均需 sudo 或以 root 身份执行。
修改账户属性后,如用户已登录,需重新登录才能完全生效。
Linux系统用户组管理
1.增加一个新的用户组
groupadd 选项 用户组
可以使用的选项:
- -g GID 指定新用户组的组标识号(GID)。
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
示例:
groupadd -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101
2.如果要删除一个已有的用户组:
groupdel 用户组
示例:
groupdel group2
此命令从系统中删除组group2
3.修改用户组的属性使用groupmod命令
groupmod 选项用户组
选项:
- -g GID 为用户组指定新的组标识号。
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
- -n新用户组 将用户组的名字改为新名字
groupmod –g 10000 -n group3 group2
此命令将组group2的标识号改为10000,组名修改为group3
4.如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限
$ newgrp root
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。
与用户账号有关的系统文件
1./etc/passwd文件是用户管理工作设计的最重要的一个文件
示例:
# cat /etc/passwd
root:x:0:0:Superuser:/:
daemon:x:1:1:System daemons:/etc:
bin:x:2:2:Owner of system commands:/bin:
sys:x:3:3:Owner of system files:/usr/sys:
adm:x:4:4:System accounting:/usr/adm:
uucp:x:5:5:UUCP administrator:/usr/lib/uucp:
auth:x:7:21:Authentication administrator:/tcb/files/auth:
cron:x:9:16:Cron daemon:/usr/spool/cron:
listen:x:37:4:Network daemon:/usr/net/nls:
lp:x:71:18:Printer administrator:/usr/spool/lp:
sam:x:200:50:Sam san:/home/sam:/bin/sh
从上面的例子我们可以看到,/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
用户名:代表用户账号字符串
口令:存放着加密后的用户口令字
用户表示号:是一个整数,系统用来标识用户
组标识号:记录用户所属的用户组
注释性描述:记录用户的个人情况
主目录:用户的起始工作目录
Shell:是用户与Linux系统之间的接口
拥有账户文件
1.除了上面列出的伪用户外,还有许多标准的伪用户,例如:audit, cron, mail, usenet等,它们也都各自为相关的进程和文件所需要。
2./etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
"登录名"是与/etc/passwd文件中的登录名相一致的用户账号
"口令"字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。
"最后一次修改时间"表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。
"最小时间间隔"指的是两次修改口令之间所需的最小天数。
"最大时间间隔"指的是口令保持有效的最大天数。
"警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
"不活动时间"表示的是用户没有登录活动但账号仍能保持有效的最大天数。
"失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
示例:
# cat /etc/shadow
root:Dnakfw28zf38w:8764:0:168:7:::
daemon:*::0:0::::
bin:*::0:0::::
sys:*::0:0::::
adm:*::0:0::::
uucp:*::0:0::::
nuucp:*::0:0::::
auth:*::0:0::::
cron:*::0:0::::
listen:*::0:0::::
lp:*::0:0::::
sam:EkdiSECLWPdSa:9740:0:0::::
3.用户组的所有信息都存放在/etc/group文件中
组名:口令:组标识号:组内用户列表
"组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
"口令"字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。
"组标识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。
"组内用户列表"是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
4.批量添加用户
(1).先编辑一个文本用户文件
每一列按照/etc/passwd密码文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x号。一个范例文件user.txt内容如下:
user001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
user003::602:100:user:/home/user003:/bin/bash
user004::603:100:user:/home/user004:/bin/bash
user005::604:100:user:/home/user005:/bin/bash
user006::605:100:user:/home/user006:/bin/bash
(2).以root身份执行命令/user/sbin/newusers,从刚创建的用户文件user.text中导入数据,创建用户
# newusers < user.txt
然后可以执行命令 vipw 或 vi /etc/passwd 检查 /etc/passwd 文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建。
(3).执行命令/usr/sbin/pwunconv。
将 /etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能。
# pwunconv
(4).编辑每个用户的密码对照文件
格式为:
用户名:密码
实例文件 passwd.txt 内容如下:
user001:123456
user002:123456
user003:123456
user004:123456
user005:123456
user006:123456
(5).以 root 身份执行命令 /usr/sbin/chpasswd。
创建用户密码,chpasswd 会将经过 /usr/bin/passwd 命令编码过的密码写入 /etc/passwd 的密码栏。
# chpasswd < passwd.txt
(6).确定密码经编码写入/etc/passwd的密码栏后。
执行命令 /usr/sbin/pwconv 将密码编码为 shadow password,并将结果写入 /etc/shadow。
# pwconv
这样就完成了大量用户的创建了,之后您可以到/home下检查这些用户宿主目录的权限设置是否都正确,并登录验证用户密码是否正确。
Linux磁盘管理
常用命令
Linux磁盘管理常用的三个命令为df、du、fdisk
- df(英文全称:disk free):列出文件系统的整体磁盘使用量
- du(英文全称:disk used):检查磁盘空间使用量
- fdisk:用于磁盘分区
df:df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:
df [-ahikHTm] [目录或文件名]
选项与参数:
-h:以人类可读的方式显示输出结果(例如,使用 KB、MB、GB 等单位)。-T:显示文件系统的类型。-t <文件系统类型>:只显示指定类型的文件系统。-i:显示 inode 使用情况。-H:该参数是-h的变体,但是使用 1000 字节作为基本单位而不是 1024 字节。这意味着它会以 SI(国际单位制)单位(例如 MB、GB)而不是二进制单位(例如 MiB、GiB)来显示磁盘使用情况。-k:这个选项会以 KB 作为单位显示磁盘空间使用情况。-a:该参数将显示所有的文件系统,包括虚拟文件系统,例如proc、sysfs等。如果没有使用该选项,默认情况下,df命令不会显示虚拟文件系统。
du:du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍 Linux du 命令。
语法:
du [-ahskm] 文件或目录名称
选项与参数:
- -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
- -h :以人们较易读的容量格式 (G/M) 显示;
- -s :仅显示指定目录或文件的总大小,而不显示其子目录的大小。
- -S :包括子目录下的总计,与 -s 有点差别。
- -k :以 KBytes 列出容量显示;
- -m :以 MBytes 列出容量显示;
fdisk:fdisk 是 Linux 的磁盘分区表操作工具。
语法:
fdisk [-l] 装置名称
选项与参数:
- -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
磁盘格式化
磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用 mkfs(make filesystem) 命令。
语法:
mkfs [-t 文件系统格式] 装置文件名
选项与参数:
- -t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
磁盘检验
fsck(file system check)用来检查和维护不一致的文件系统。
若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。
语法:
fsck [-t 文件系统] [-ACay] 装置名称
选项与参数:
- -t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
- -s : 依序一个一个地执行 fsck 的指令来检查
- -A : 对/etc/fstab 中所有列出来的 分区(partition)做检查
- -C : 显示完整的检查进度
- -d : 打印出 e2fsck 的 debug 结果
- -p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
- -R : 同时有 -A 条件时,省略 / 不检查
- -V : 详细显示模式
- -a : 如果检查有错则自动修复
- -r : 如果检查有错则由使用者回答是否修复
- -y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。
磁盘的挂载与卸除
挂载:
Linux 的磁盘挂载使用 mount 命令,卸载使用 umount 命令。
磁盘挂载语法:
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
卸除:
磁盘卸载命令 umount 语法:
umount [-fn] 装置文件名或挂载点
选项与参数:
- -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
- -n :不升级 /etc/mtab 情况下卸除。

浙公网安备 33010602011771号