Linux基础命令(二)

发布时间:2024年01月12日


hello小伙伴们大家好,我们又见面啦,在上篇文章中我们认识了Linux的基础入门命令,大家学习的怎么样了呢,如果没有记牢固,我们可以常去看看咯~ 点我传送-Linux基础入门命令
今天我们来认识一些新的命令吧~

一、用户相关命令

1、背景介绍

Linux系统和Mac系统, windows系统一样, 也是支持多用户管理的。
为了更好的管理多用户, 就有了 用户组 和 用户的概念。
Linux系统中, root是管理员账号,所以root账号拥有最高权限。

2、useradd命令

描述
useradd 命令用于,新增用户 root用户在/root目录下, 普通用户在 /home/用户名下. 创建用户的时候,
如果不指定分组, 则默认会创建1个和该用户名一模一样的组. 然后把该用户放到这个组中.

格式:useradd 用户名

[root@my_node1 ~]# useradd zhangsan		# 创建zhangsan用户
[root@my_node1 ~]# ls /home
zhangsan

3、passwd命令

描述:passwd 命令用于,修改用户密码,来源于password
格式:passwd 用户名

[root@my_node1 ~]# passwd zhangsan		# 更新用户zhangsan的密码为:123456
更改用户 zhangsan 的密码 。				# 提示更改用户zhangsan的密码
新的 密码:								# 在此处输入新密码,该密码不会显示
无效的密码: 密码少于 8 个字符			# 此消息仅为警告,咱有脾气不听劝,就输入123456
重新输入新的 密码:						# 再次输入123456
passwd:所有的身份验证令牌已经成功更新。	# 密码更新成功

4、userdel命令

描述: userdel 命令用于,删除用户
格式: userdel [-r] 用户名
选项解释: -r 使用该选项在删除目标用户时,还会删除/home目录下,该用户的所有内容

[root@my_node1 ~]# userdel -r zhangsan		# 删除zhangsan用户,以及/home目录下该用户的所有内容

5、getent命令

描述: getent 命令用于查询,来源于:get environment

格式: getent passwd | group 带上passwd用于查询所有用户,带上group用于查询所有用户组(该概念在后续文章中 会有详解)

拓展:cat /etc/passwd 也可用于查询所有用户

[root@my_node1 ~]# getent passwd		# 查询所有用户
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
zhangsan:x:1000:1000::/home/zhangsan:/bin/bash


[root@my_node1 ~]# getent passwd		# 效果同上
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
zhangsan:x:1000:1000::/home/zhangsan:/bin/bash

6、用户信息的格式解读:

zhangsan: x :1000:1000::/home/zhangsan:/bin/bash
用户名:密码(无):用户组id:用户id:描述信息(无):账号的家目录:使用何种Shell解析器

二、切换用户与借调权限

1、su命令

描述:su 命令用于切换用户

格式:su 用户名

注意:如果是root --》 其他账号,无需输入密码,否则需要输入密码。

[root@my_node1 ~]# su zhangsan			# 切换到zhangsan用户
[zhangsan@my_node1 root]$ whoami		# 查看当前用户名
zhangsan

2、登出

描述:例如从root用户 --》 zhangsan用户,登出后就又回到了root账号

快捷键:CTRL + d

[root@my_node1 ~]# su zhangsan		# 从root切换到zhangsan
[zhangsan@my_node1 root]$ whoami	
zhangsan
[zhangsan@my_node1 root]$ exit		# ctrl + d 自动输入exit进行登出
[root@my_node1 ~]# whoami			# 回到了root用户
root

3、sudo命令

描述:sudo 命令,用于借调权限。

  例如root用户是老板,具有很大的权限,而zhangsan用户只是一个小职员,
  很多权限zhangsan没有,这时候zhangsan想要借用root的权限则需要用到sudo命令。

格式:sudo 你要借调的命令

注意:若想要使用sudo命令进行借调权限需要先进行配置。

三、用户组相关命令

1、groupadd 命令

描述:groupadd 命令 ,用于新增用户组

格式:groupadd 用户组名

[root@my_node1 ~]# groupadd develop		# 新增develop组
[root@my_node1 ~]# getent group			# 查看所有组
zhangsan:x:1000:
develop:x:1001:

2、groupdel 命令

描述:groupdel 命令用于删除用户组 注意:要删除此组,必须没有用户用此组作为主组。

格式:groupdel 用户组名

[root@my_node1 ~]# groupdel develop		# 删除develop组
[root@my_node1 ~]# getent group			# 查看所有组,已将develop组删除成功
zhangsan:x:1000:

3、用户组信息格式

用户组:zhangsan: x :1000:

对应格式:用户组名:无密码:组id

4、查看用户的具体信息

格式:id 用户名

[root@my_node1 ~]# id zhangsan		# 查看zhangsan这个用户的具体信息
uid=1000(zhangsan) gid=1000(zhangsan) 组=1000(zhangsan)

5、创建新用户的时,指定分组

格式:useradd 用户名 -g 组名

[root@my_node1 ~]# useradd lisi -g zhangsan		# 创建lisi用户直接指定其分组为zhangsan组
[root@my_node1 ~]# id lisi						# 查看lisi用户的具体信息可知,组 = (zhangsan)
uid=1001(lisi) gid=1000(zhangsan) 组=1000(zhangsan)

6、设置已存在用户到指定的分组中

格式:usermod -aG 用户组名 用户名

格式解释:mod来自modify修改,aG为 append group:添加分组

[root@my_node1 ~]# usermod -aG zhangsan wangwu		# 将wangwu用户添加到zhangsan组中
[root@my_node1 ~]# id wangwu						# 查看wangwu具体信息可知,wangwu已在zhangsan组中(一个用户可以存在多个组中)
uid=1002(wangwu) gid=1002(wangwu) 组=1002(wangwu),1000(zhangsan)

四、权限相关命令

1、权限相关图解

该图详细介绍了有关权限的问题

2、chmod命令

描述:chmod 命令,用于设置权限

格式:chmod [-R] 权限信息 目录路径

选项描述:-R 用于设置目录以及所有子级的全新啊

格式详解

写法一:chmod 777 1.txt # 给1.txt文件设置满权限几rwxrwxrwx权限
写法二:chmod +x 1.txt # 给所有用户设置执行权
写法三:chmod u=rx,g=w,o=x 1.txt # 设置属主:读和可执行权限。设置属组:只写权限。设置其他用户为:只可执行权限。

[root@my_node1 ~]# chmod 777 3.txt		# 设置3.txt文件为满权限
[root@my_node1 ~]# ll
总用量 4
-rwxrwxrwx. 1 root root 74 1月   6 19:56 3.txt

[root@my_node1 ~]# ll
drwxr-xr-x. 3 root root 16 1月   9 12:43 aa
[root@my_node1 ~]# chmod -R +r aa	# 将aa目录及子级为所有用户增加 读 权限
[root@my_node1 ~]# ll
drwxr-xr-x. 3 root root 16 1月   9 12:43 aa

3、chown命令

描述:设置拥有者,即:属主和属组

格式:chown [-R] [用户][:][用户组] 文件或者目录

# 仅设置3.txt的属主为zhangsan用户
[root@my_node1 ~]# chown zhangsan 3.txt		
[root@my_node1 ~]# ll
-rwxrwxrwx. 1 zhangsan root 74 1月   6 19:56 3.txt


# 仅设置1.txt的属组为zhangsan用户组
[root@my_node1 ~]# chown :zhangsan 1.txt
[root@my_node1 ~]# ll
-rw-r--r--. 1 root     zhangsan  0 1月   9 12:51 1.txt

# 设置2.txt的属主为:lisi,属组为:zhangsan
[root@my_node1 ~]# chown lisi:zhangsan 2.txt
[root@my_node1 ~]# ll
-rw-r--r--. 1 lisi zhangsan 0 1月   9 12:56 2.txt

五、常用快捷键

1、清屏

CTRL + 字母l 或者 clear

2、结束执行

CTRL + c

3、登出

CTRL + d

4、回到行首

CTRL + a

5、回到行尾

CTRL + e

6、跳转到前个单词(结尾)

CTRL + ←
注意: 不是每个工具都支持(据我所知CRT不支持,tabby支持)

7、跳转到后个单词(结尾)

CTRL + →
注意: 不是每个工具都支持(据我所知CRT不支持,tabby支持)

六、Linux的软件安装方式

1、手动安装

自己去官网下载安装包, 即: *.tar.gz, 然后上传到Linux系统中, 手动进行安装配置即可.

tarball: 压缩包, gzip: 压缩协议.

例如: JDK, Zookeeper, Hadoop, Hive…

2、rpm方式

RedHat Package Manager, 小红包的包管理器, 可以自动联网进行下载, 并安装程序.
但是不能自动解决依赖问题, 例如: 装A需要依赖B和C, 则需要手动先装B和C, 才能装A.

例如: 安装MySQL

3、yum方式

yellow dog updater modified, 黄狗更新程序, 基于RPM的, 可以自动解决依赖.

例如: tree命令, lrzsz命令, wget命令…

格式: yum [-y] install | remove | search 包名

选项解释: -y 表示同意输入yes

参数解释: install:安装 remove:卸载 search: 查找并安装

# 安装lrzsz包		因为我之前已经装过了所以提示:已安装并且是最新版本无须任何处理
[root@my_node1 ~]# yum -y install lrzsz		
 * updates: ftp.sjtu.edu.cn
软件包 lrzsz-0.12.20-36.el7.x86_64 已安装并且是最新版本
无须任何处理

七、控制服务的开启关闭

描述:systemctl 命令,来源于system control,系统控制

格式: systemctl status | start | stop | restart |enable | disable 服务名

参数解释

start:启动
stop:关闭
status:查看状态
enable:开启开机自启
disable:关闭开机自启

常用的服务

NetWorkManager : 主网络服务
network : 副网络服务
firewall : 防火墙
sshd : 远程连接服务(协议)

八、软连接和硬链接

1、软连接

描述:软连接就类似于快捷方式

格式:ln -s 要被链接的文件或者目录路径 软连接方式

# 对这么常的一个路径进行创建软连接 软连接名字叫做ip,只需要输入ip就可以代替输入这么长的路径了
[root@my_node1 ~]# ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 ip
[root@my_node1 ~]# ip

2、硬链接

描述:硬链接是用来提高容错率的,硬链接的文件内容会自动同步

格式:ln 文件1 文件2

示例

在这里插入图片描述

九、日期和时间

描述:date命令用于查看时间

格式:date [-d] [+日期格式]

日期格式详解: %m 月 %d 日 %H 小时 %M 分钟 %S 秒

# 查看当前日期和时间
[root@my_node1 ~]# date
2024年 01月 09日 星期二 13:39:33 CST


# 将日期格式设置为xxxx/xx/xx
[root@my_node1 ~]# date '+%Y/%m/%d %H:%M:%S'
2024/01/09 13:41:06

# 将日期向后推一天
[root@my_node1 ~]# date -d '1 day' 
2024年 01月 10日 星期三 13:41:47 CST

# 将日期向前推一天
[root@my_node1 ~]# date -d '-1 day'
2024年 01月 08日 星期一 13:41:59 CST

# 将日期修改为xxxx/xx/xx格式,并向后推一天
[root@my_node1 ~]# date -d '1 day' '+%Y/%m/%d %H:%M:%S'
2024/01/10 13:42:37

十、主机名和ip相关

1、ifconfig命令

描述:ifconfig命令 用于查看本机ip地址

在这里插入图片描述

2、hostname命令

描述:查看本机主机名

在这里插入图片描述

3、修改主机名

格式:hostnamectl set-hostname 主机名

注意:该命令为立即生效

在这里插入图片描述

十一、网络相关命令

1、ping命令

描述:ping命令,用于测试网络是否通畅
格式:ping [-c 次数] 目标ip
选项详解:次数为你想要连续发包的次数,如果不设置,则会一直执行

在这里插入图片描述

2、wget命令

描述:wget命令,文件下载器,可以根据URL下载数据
格式:wget URL

在这里插入图片描述

3、curl命令

描述:模拟浏览器,向URL发出请求,获取相应信息(html页面)

格式:curl URL 文件名

示例

  curl https://www.baidu.com 1.txt
  将https://www.baidu.com 的html页面下载到1.txt中

十二、进程管理

1、查看本机运行的所有进程

格式:ps -ef

在这里插入图片描述

2、查看指定的进程信息

格式:ps -ef | grep ssh # 查看有关ssh的进程信息

在这里插入图片描述

3、强制关闭指定的进程

格式:kill -9 进程的pid

4、进程的理解

进程解释:指的是可执行程序,文件,例如 *.exe

十三、系统资源

1、查看内存使用情况

格式:free [-h] # -h表示以人性化方式展示

在这里插入图片描述

2、查看磁盘使用情况

格式:df [-h] # -h 表示以人性化方式展示

在这里插入图片描述

今天的内容就到这里啦我们下期再见~

如有疑问可留言或私信~

文章来源:https://blog.csdn.net/weixin_48663895/article/details/135472095
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。