Linux命令进阶
Linux的用户和用户组相关
-
用户相关
# 创建用户, 如果不指定用户组, 则默认会创建1个和该用户名一样的组. useradd [-g 组名] 用户名 # 设置用户组的密码 passwd 用户名 # 查看所有的用户 getent passwd # 查看某个用户的具体信息 id 用户名 # 给用户添加新组 usermod -aG 用户组名 用户名 # 删除用户 userdel [-r] 用户名 # 加上-r会连同 /home目录的账号目录一并删除
-
用户组相关
# 查看所有的用户组 getent group # 添加用户组 groupadd 组名 # 删除用户组, 如果当前的组是某个账号的主组, 则: 该组无法被删除. groupdel 组名
-
案例图解(参考)
Linux权限介绍
Linux_修改用户权限
-
图解
-
具体的Linux命令-修改用户权限
# 修改用户权限的命令. # 方式1: 传统写法 chmod [-R] u=用户权限,g=用户组权限,o=其它用户权限 文件或者文件夹路径. # 例如: chmod u=rx,g=w,o=x 1.txt chmod -R +x aa # 方式2: 引入数字权限, r:4, w:2, x:1 -:0 chmod -R 777 1.txt chmod -R 567 1.txt
-
具体的Linux命令-修改用户和用户组
# 格式 chown [-R] [用户][:][用户组] 文件或者文件夹路径 # 例子 chown zhangsan 1.txt # 改变 用户 chown :zhangsan 1.txt # 改变 用户组
Linux_常用快捷键
ctrl + c 强制停止
ctrl + d 退出, 登出
history 查看历史命令
!命令前缀 自动匹配上一个命令
ctrl + r 搜索历史命令
ctrl + a | e 光标移动到命令开始或结束
ctrl+ ← | → 左右跳单词
ctrl + l 清屏, 这里是字母L, 也可以写: clear命令
Linux安装软件介绍
-
方式1: 手动下载安装包, 并手动安装.
例如: MySQL数据库软件.
-
方式2: rpm包管理器(RedHat Packet Management, 小红帽的包管理器)
会帮助我们自动下载包, 但是不会帮我们解决依赖.
-
方式3: yum方式, 可以理解为Linux的应用商店
会帮助我们自动下载包, 会帮我们解决依赖.
格式:
yum [-y] install | search | remove 命令名
Linux的服务控制命令
# 命令格式
systemctl start | stop | restart | status | enable | disable 服务名
# 如果你的虚拟机的IP突然变成了127.0.0.1这种情况, 解决方案如下:
[root@mynode1 ~]# systemctl stop NetworkManager # 关闭主网络服务
[root@mynode1 ~]# systemctl disable NetworkManager # 禁用主网络服务开机自启动
[root@mynode1 ~]# systemctl restart network # 重启副网络服务
[root@mynode1 ~]# ifconfig # 重新查看IP
Linux的软连接和硬链接介绍
-
软连接
# 格式 ln -s 要被连接的文件或者目录路径 软连接名 # 软连接 类似于 Mac, Windows系统的 快捷方式. # 例如 ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 ip # 效果如下 [root@mynode1 ~]# ll 总用量 36 -rw-r--r--. 1 root root 35893 1月 13 2022 eca78af053f1b46c.jpg drwxr-xr-x. 4 root root 36 12月 14 01:29 export lrwxrwxrwx. 1 root root 42 12月 14 12:01 ip -> /etc/sysconfig/network-scripts/ifcfg-ens33
-
扩展_如何修改IP.
-
打开ip所在的文件, 按下字母i, 进入编辑模式修改, 然后保存退出即可.
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" # ip分配方式, none, static, dhcp DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="df73d9da-f16b-4a80-beac-e4e5602703f7" DEVICE="ens33" ONBOOT="yes" IPV6_PRIVACY="no" IPADDR="192.168.88.77" # ip地址 PREFIX="24" # 子网掩码, 或者写为 NETMASK="255.255.255.0" GATEWAY="192.168.88.1" # 网关, 要和: Vmware软件的虚拟网络编辑器 和 本地VMNet8网卡保持一致. DNS1="8.8.8.8" # DNS服务器1 DOMAIN="114.114.114.114" # DNS服务器2
-
重启副网络服务, 查看IP即可.
[root@mynode1 ~]# systemctl restart network # 重启副网络服务 [root@mynode1 ~]# ifconfig # 重新查看IP
-
-
扩展_硬链接
# 格式 ln 要被链接的文件路径 硬链接名 # 作用: 动态备份. ln 1.txt 3.txt # 则: 无论是修改1.txt 还是 3.txt的内容, 另一个也会同步改变. # 回顾: 修改文件名 mv 3.txt 1.txt
Linux网络相关
-
查看本机IP地址
ifconfig
-
查看本机的主机名
hostname
-
修改本机的主机名
hostnamectl set-hostname 修改后的主机名
-
-
配置域名解析
#目的: 将来可以直接写域名, 就不用再写IP地址了.
#step1: 配置Linux虚拟机的域名映射.
vim /etc/hosts
#step2: 添加内容如下.
你的虚拟机的ip 映射的主机名
#例如: 192.168.88.100 mynode1 mynode1.itcast.cn
#step3: 修改windows系统的域名映射.
#step4: 去Finalshell中, 把之前写的IP, 换成配置好的域名, 测试即可.

Linux网络相关
# 测试网络连接
ping [-c 次数] 域名或者ip
ping -c 3 www.baidu.com
# wget命令, 可以根据url地址, 联网下载资源.
wget url地址
wget https://img11.360buyimg.com/n7/jfs/t1/76757/8/26517/109318/66b079a4Ffee857eb/80e24b4fb8569f54.jpg
# curl命令, Linux向url地址发起请求, 获取响应信息, 模拟爬虫.
curl url地址
curl https://www.itcast.cn/
curl https://www.itcast.cn/ >> itcast.txt
查看Linux的端口号
# 端口号 = 程序在设备上的唯一标识.
端口号的范围: 0 ~ 65535
# Linux中, 查看端口号.
netstat -anp # all network port
netstat -anp | grep 3306 # 结合管道符 和 过滤命令一起用.
netstat -anp | grep ssh
Linux的进程相关
# 查看本机所有的进程
ps -ef
# 过滤出指定的进程
ps -ef | grep 进程名 或者 进程id
# 强制杀死(关闭)进程.
kill -9 pid值 # 进程id(pid)
Linux环境变量相关
-
环境变量介绍
# 类似于windows的Path环境变量, Linux中, 也是有环境变量概念的. 配置path环境变量的目的是: 让用户在任何的地方 都可以使用 配置好的内容. # 如下是Linux命令. [root@mynode1 ~]# env # 查看Linux系统的环境配置 [root@mynode1 ~]# echo $PATH # 输出path环境变量的值. [root@mynode1 ~]# vim /etc/profile # 修饰PATH环境变量的值.
-
变量的介绍
# 和Python一样, Linux也是支持 变量的. # 定义变量 [root@mynode1 ~]# name=zhangsan [root@mynode1 ~]# age=23 # 打印变量值 [root@mynode1 ~]# echo $name [root@mynode1 ~]# echo ${name} [root@mynode1 ~]# echo ${name}is a good man! [root@mynode1 ~]# echo 姓名: ${name}, 年龄: ${age}
Linux中文件上传和下载
-
方式1: rz 和 sz命令
#安装lrzsz包
yum -y install lrzsz
rz 上传
sz 下载
-
方式2: 直接拖拽即可.
FinalShell支持拖拽的方式直接上传,
然后选在要下载的文件, 右键, 选择下载即可.
Linux的压缩和解压缩
-
方式1: tarball 归档方式
# 压缩 tar -zcvf 压缩包名.tar.gz 要被压缩的文件 tar -zcvf my.tar.gz *.txt # 解压缩 tar -zxvf 压缩包名.tar.gz -C 要解压到的路径 tar -zxvf my.tar.gz -C aa/
-
方式2: zip 和 unzip
# 压缩 zip -r 压缩包名.zip 文件 目录的路径 # 解压 unzip 压缩包名.zip -d 解压到的目录
扩展_Shell编程
# step1: 查看Linux默认用的Shell解析器
echo $SHELL
# step2: 编辑1个Shell脚本(例如: 1.sh), 对后缀名无要求, 但一般是: .sh
# 定义变量
name='张三'
age=23
# 输出变量值.
echo 姓名:${name}, 年龄:${age}
# step3: 执行shell脚本.
# 方式1: 对文件 无 执行权限要求.
sh 1.sh
# 方式2: 对文件 无 执行权限要求.
source 1.sh
# 方式3 和 方式4 分别是 绝对路径和相对路径写法, 要求对文件有: 执行权限.
chmod 777 1.sh
/root/1.sh
./1.sh