【方向盘】达到Linux第三阶段的常用命令笔记记录---Part Ⅱ(上)

简介: 【方向盘】达到Linux第三阶段的常用命令笔记记录---Part Ⅱ(上)

用户和组


Linux是一个多用户多任务的操作系统,任何一个要使用系统资源,都需要先向管理员申请一个帐号,然后以这个帐号的身份登录进系统。


Linux用户被划分为两类:一类是根用户(root用户),也称为超级用户;另一类是普通用户。


每一个用户都有一个唯一的身份标识,称为用户ID(UID)。Linux的用户至少需要属于一个组。每一个用户组也有一个唯一的身份标识,称为用户组IDL(GID)


Linux系统中,所有用户(包括系统管理员)的账号和密码都可以在/etc/passwd和/etc/shadow这两个文件中找到,(用户和密码就放在文件中,不怕被其他人看的或者修改吗?/etc/passwd只有系统管理员才可以修改的,其他用户可以查看,/etc/shadow其他用户看不了)


/etc/passwd文件介绍


在该文件中,每一行用户记录的各个数据段用“:”分隔,分别定义了用户的各方面属性。各个字段的顺序和含义如下: (一共7段)


【注册名:口令:用户标识号:组标识号:说明:用户主目录:命令解释程序 】


  • 注册名:用于区分不同的用户。在同一系统中注册名是惟一的。大小写敏感
  • 口令:现在的Unix/Linux系统中,口令不再直接保存在passwd文件中,通常将passwd文件中的口令字段使用一个“x”来代替,将/etc /shadow作为真正的口令文件,用于保存包括个人口令在内的数据。当然shadow文件是不能被普通用户读取的,只有超级用户才有权读取。


超级用户root或某些高级用户可以使用系统命令passwd来更改系统中所有用户的口令,普通用户也可以在登录系统后使用passwd命令来更改自己的口令


  • 用户标识号:UID是一个数值,是Linux系统中惟一的用户标识,用于区别不同的用户。唯一的。


注册名和UID都可以用于标识用户,只不过对于系统来说UID更为重要。UID是给系统识别的,所以如果多个用户名的UID是相同的(这是允许的),那么其实就是同一用户


  • 组标识号:这是当前用户的缺省工作组标识。


除了在 passwd文件中指定其归属的基本组之外,还在/etc/group文件中指明一个组所包含用户。


  • 说明:关于账号的一些说明信息(暂时可以忽略)。如用户的真实姓名、办公室地址、联系电话等。


  • 用户home目录:超级用户root的工作目录为/root;而其它个人用户在/home目录下均有自己独立的工作环境。账号的家目录,家目录就是你登陆系统后默认的那个目录
  • 命令解释程序:账号使用的shell。如/bin/bash。


示例:

fangshixiang:x:18359:28004:VKBOT@fangshixiang:/home/fangshixiang:/bin/bash

虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等;这类用户都系统自身拥有的,而非后来添加的,当然我们也可以添加虚拟用户; UID从1-499是系统的预留的虚拟帐户。 自己添加一般都添加的是真实用户


/etc/shadow文件介绍


在该文件中,每一行用户记录的各个数据段用“:”分隔: (一共9段)

【注册名:口令:用户标识号:组标识号:说明:用户主目录:命令解释程序 】


  • 账户名:账户名与/etc/passwd里面的账户名是一一对应的关系。
  • 加密后密码:这里可以看到3类,分别是奇奇怪怪的字符串、*和!!等。星号代表帐号被锁定,双叹号表示这个密码已经过期了(公司里用堡垒机登录,一般密码都显示这个)。棉麻串是以$6$开头的,表明是用SHA-512加密的,$1$ 表明是用MD5加密的、$2$ 是用Blowfish加密的、$5$是用 SHA-256加密的。

image.png


  • 密码最近改动日期:这个是表明上一次修改密码的日期与1970-1-1相距的天数。8表示8天没改了,0表示不记录这个日期
  • 密码需要修改的期限:密码经常更换才能保证安全,为了提醒某些经常不更换密码的用户,可以设置一个天数,强制让用户更换密码,也就是说该用户的密码会在多少天后过期,如果为99999则没有限制
  • 修改期限前N天发出警告:
  • 密码过期的宽恕时间:如果在5中设置的日期过后,用户仍然没有修改密码,则该用户还可以继续使用的天数
  • 账号失效日期,过了这个日期账号就不能用了(一般都不需要设值)
  • 保留的

fangshixiang:!!:17598:0:99999:7:::


/etc/group文件介绍

用户组(Group)配置文件主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件;

【组名:组密码:组ID:数据该组的用户们】


   组名:唯一性


   组密码:一般用户组都没有密码。所以一般都为空或者x


   组ID:


   用户们:不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组


groups 用户名:命令可以查看用户所在的组们(用户名不写就查当前用户):


image.png


添加用户(useradd或者adduser)


只有root用户才能使用该命令

image.png


如果添加的用户已经存在:


image.png


上面介绍的/etc/passwd里面的几段,都可以通过此命令+参数来设定。但是本文只介绍最简单应用:添加用户


账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。

修改用户(usermod)


可以修改用户的用户名、密码等几段信息。


usermod -g staff newuser2:将 newuser2 添加到组 staff 中

锁定帐号和解锁帐号:

image.png


usermod 不 允 许 你 改 变 正 在线 上 的 使 用 者 帐 号 名 称 。 当 usermod 用 来 改 变 user ID, 必 须 确 认 这 名 user 没 在 电 脑 上 执 行 任 何 程 序。


修改密码(passwd)


passwd 作为普通用户和超级权限用户都可以运行,但作为普通用户只能更改自己的用户密码,但前提是没有被root用户锁定;如果root用户运行passwd ,可以设置或修改任何用户的密码;

passwd 用户名:用户名不填写 表示修改自己的密码


常用参数介绍:

-k:保留即将过期的用户在期满后能仍能使用

-d:删除用户密码,仅能以root权限操作

-l:锁住用户无权更改其密码,仅能通过root权限操作

-u:解除锁定

-f:强制删除


删除用户(userdel)


userdel -r [username]


执行前需要查看是否在线运行程序以及是否有定时任务


ps -aux | grep "testf" -- 查当前用于的进程们
crontab -u testf -r -- 查这个用户的定时任务
userdel testf #删除用户但还会保留家目录
userdel -r #删除用户以及删除它的家目录

添加用户组(groupadd)


-g:指定新建工作组的id,默认从大于499中选取;

-r:创建系统工作组,系统工作组的组ID小于500;


修改用户组(groupmod)


删除用户组(groupdel


必须在所有用户都退出的情况下才能删除组


与用户相关的基础命令

who命令:显示当前登录用户的用户名,登陆终端,登陆时间以及登陆地址

image.png


last命令:查询最近用户登录

id命令:用于显示用户当前UID,GID和用户所属的组的列表 如:id testf

whoami命令:用于显示当前用户的名称,有时可能会忘记自己是以什么身份登录到系统,特别当需要以特定身份启动某个服务器程序时。


image.png


groups命令:用于显示指定用户所属的用户组,如果未指定则显示当前用户所属的组

newgrp命令:切换群组。


单一用户要同时隶属多个群组,需利用交替用户的设置。若不指定群组名称,则newgrp指令会登入该用户名称的预设群组。


pwd命令:显示当前目录

cd命令:切换目录。cd 或者 cs ~直接回到家目录


运行级别


常用的运行级别是3和5

image.png



切换运行级别使用命令:init


面试题:如果root密码忘了,怎么找回?

答案:开机–>在引导时输入 回车键–> 进入单用户模式(因为单用户模式root不需要密码就能进入)–>使用passwd来修改密码

ls命令

该命令使用太频繁了。不加参数它显示除隐藏文件外的所有文件及目录的名字。


-a 列出目录下的所有文件,包括以 . 开头的隐含文件。

-k 以 k 字节的形式表示文件的大小。(比如联合-l一起使用:ls -lk)

-l 列出文件的详细信息(常用)

-R 列出所有子目录下的文件(慎用)

-S 以文件大小排序

ls -l --color=no:去除掉颜色区分

-t按最后修改时间排序

-h显示文件大小时增加可读性(例:1K 234M 2G)


image.png



解释:

第一部分:drwxrwxr-x 第一个字符有3种情况:文件(-)、目录(d),链接(l)

后面的9个字符:每3个为一组,分别代表文件所有者、文件所有者所在用户组、其它用户对文件拥有的权限。(rwx),读(r)、写(w)、执行(x)。执行的权限有两个字符可选,最常见的一个是“x”代表可执行,另一个是“s”代表套接口文件(较为少见)。


也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7


第二部分:"6"代表 “redis-2.8.2”这个目录下的目录文件数目(这个数目=隐藏目录数目+普通目录数目)。(如果这只是一个普通文件,那“2”就代表这个文件有两个别名,这个文件被人创建了一个硬链接文件)


第三部分:表示该文件的所属人

第四部分:表示该文件的所属组

第五部分:代表大小(字节数)

第六部分:Dec 2 2013代表文件(目录)的修改时间


用户、文件权限(chmod、chown、chgrp)


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:给所有用户添加读的权限

image.png


image.png


改变所有者(chown)和用户组(chgrp)命令


chown xiaoming abc:改变abc的所有者为xiaoming

chgrp root abc:改变abc所属的组为root

chown root ./abc:改变abc这个目录的所有者是root

chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root


任务调度 crontab


linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。


crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似

image.png


用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

image.png

/etc/cron.deny 该文件中所列用户不允许使用crontab命令

/var/spool/cron/:所有用户crontab文件存放的目录,以用户名命名


用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:


minute hour day month week command

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。


在以上各个字段中,还可以使用以下特殊字符:

星号():代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如/10,如果用在minute字段,表示每十分钟执行一次。


crontab命令


crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]


-u user:用来设定某个用户的crontab服务(使用较少)

-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

-i:在删除用户的crontab文件时给确认提示。


当crontab突然失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。


相关文章
|
2月前
|
监控 Linux 网络安全
Linux命令大全:从入门到精通
日常使用的linux命令整理
632 13
|
3月前
|
Linux 网络安全 数据安全/隐私保护
使用Linux系统的mount命令挂载远程服务器的文件夹。
如此一来,你就完成了一次从你的Linux发车站到远程服务器文件夹的有趣旅行。在这个技术之旅中,你既探索了新地方,也学到了如何桥接不同系统之间的距离。
469 21
|
3月前
|
JSON 自然语言处理 Linux
linux命令—tree
tree是一款强大的Linux命令行工具,用于以树状结构递归展示目录和文件,直观呈现层级关系。支持多种功能,如过滤、排序、权限显示及格式化输出等。安装方法因系统而异常用场景包括:基础用法(显示当前或指定目录结构)、核心参数应用(如层级控制-L、隐藏文件显示-a、完整路径输出-f)以及进阶操作(如磁盘空间分析--du、结合grep过滤内容、生成JSON格式列表-J等)。此外,还可生成网站目录结构图并导出为HTML文件。注意事项:使用Tab键补全路径避免错误;超大目录建议限制遍历层数;脚本中推荐禁用统计信息以优化性能。更多详情可查阅手册mantree。
linux命令—tree
|
3月前
|
监控 Linux
Linux系统中使用df命令详解磁盘使用情况。
`df`命令是Linux系统管理员和用户监控和管理磁盘空间使用的重要工具。掌握它的基本使用方法和选项可以帮助在必要时分析和解决空间相关问题。简洁但功能丰富,`df`命令确保了用户可以快速有效地识别和管理文件系统的空间使用情况。
219 13
|
1月前
|
监控 Linux Shell
linux命令
常用 Linux 命令汇总
|
3月前
|
Unix Linux
linux命令—cd
`cd` 命令是 Linux/Unix 系统中用于切换工作目录的基础命令。支持相对路径与绝对路径,常用选项如 `-L` 和 `-P` 分别处理符号链接的逻辑与物理路径。实际操作中,可通过 `cd ..` 返回上级目录、`cd ~` 回到家目录,或利用 `cd -` 在最近两个目录间快速切换。结合 Tab 补全和 `pwd` 查看当前路径,能显著提升效率。此外,需注意特殊字符路径的正确引用及脚本中绝对路径的优先使用。
|
3月前
|
Linux
Linux命令拓展:为cp和mv添加进度显示
好了,就这样,让你的Linux复制体验充满乐趣吧!记住,每一个冷冰冰的命令背后,都有方法让它变得热情起来。
256 8
|
2月前
|
Linux C++
每天一个linux命令(8):cp 命令
cp 命令是 Linux 中用于复制文件或目录的命令。它的名字来源于英文单词 copy。这个命令非常常用,特别是在需要备份文件或创建文件副本时。
79 0
|
4月前
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
267 32
|
3月前
|
安全 Linux 定位技术
Linux环境下必备的基础命令概览
以上就是Linux系统中的基本命令和工具,掌握它们就能帮你在Linux世界里游刃有余。这其实就像是学习驾驭一辆新车,熟悉了仪表盘,调整好了座椅,之后的旅程就只需要享受风驰电掣的乐趣了。
93 4