day02-Linux进阶
补充昨日内容
Linux基础
文件编辑
命令模式
编辑模式
esc回到命令模式
正常编辑
底行(底线)模式
查看Linux命令帮助文档
# --help 可以查看命令的详细信息 命令名 --help # 例如: ls --help # man 可以查看命令的主要(简单)信息 man 命令名 # 例如 man ls
Linux进阶
一. 权限
权限入门
# 1. 创建用户 useradd 用户名 # 2. 给用户设置密码 passwd 用户名 # 3. 查看本机所有用户 getent passwd # get environment # 格式为: 用户名:描述信息(无):组id:用户id::组所在的家目录:Shell解析器. zhangsan:x:1000:1000::/home/zhangsan:/bin/bash # 4. 切换用户 su 用户名 # root -> 其它, 无需密码. 其它情况, 需要密码. # 5. 临时借调权限(赋权) sudo Linux命令 # 有效期一般为: 5 ~ 30分钟 # 6. 赋权需要通过root账号, 来设置 /etc/sudoers 文件 vim /etc/sudoers # 在文件的第 100 行左右设置. # 7. 登出账号 exit 或者 ctrl + D
用户和用户组
用户相关:
useradd [-g] [组名] 用户名没有指定祖名, 则: 新建组(组名为用户名)指定组名, 就放到指定的组中 passwd 用户名 getent passwd # 查看所有用户 id 用户名 # 查看用户信息 # 结果如下 uid=用户id gid=组id 组=用户所在的组 uid=1000(zhangsan) gid=1000(zhangsan) 组=1000(zhangsan) usermod -aG 用户组 用户名 # 把用户添加到指定组 userdel -r 用户名 # 删除用户用户组相关:
groupadd 组名 # 新建组 groupdel 组名 # 删除组 getent group # 查看所有组
权限控制
文件或文件夹的用户权限图示:
权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。
数字的细节如下:r记为4,w记为2,x记为1,可以有:
0:无任何权限, 即 ---
1:仅有x权限, 即 --x
2:仅有w权限 即 -w-
3:有w和x权限 即 -wx
4:仅有r权限 即 r--
5:有r和x权限 即 r-x
6:有r和w权限 即 rw-
7:有全部权限 即 rwx
所以751表示: rwx(7) r-x(5) --x(1)
ls -l文件图示
chmod
chmod [-R] 权限 文件或者文件夹路径 不加[-R]:只修改当前一级, 加[-R]:修改当前和其所有子集 chmod u=x,g=w,o=r-x 1.txt chmod u-w,g-w,o+w 1.txt chmod 567 1.txt
chown修改拥有者
chown [-R] 用户名:用户组 文件或文件夹路径 chown [-R] 用户名 文件或文件夹路径 chown [-R] :用户组 文件或文件夹路径
二. 实用操作
常用快捷键
ctrl + c # 取消执行 ctrl + d # 强制登出 ctrl + l # 字母L, 清屏, 等价于 clear ctrl + a # 光标移动到行首 ctrl + e # 光标移动到行尾 ctrl + ← # 光标向前移动1个单词 ctrl + → # 光标向后移动1个单词 ctrl + r # 检索 history # 查看历史命令 !命令前缀 # 根据前缀匹配最近的哪个命令.
安装软件
方式1:yum
# 全称叫: Yellow Dog Updater, Modified, 黄狗更新程序. 它是RPM方式的升级版, 即: 会联网自动检索要安装的 工具, 并会自动解决依赖. # 格式 yum [-y] install | remove | search 要安装的工具名 # 解释 -y 需要输入yes or no的时候, 全部输入yes install 安装 remove 卸载 search 查找并安装, 如果不存在就会自动安装. # 例如: yum -y install wget yum -y install lrzsz # 负责上传 和 下载的. # wget命令, 可以根据http地址, 下载其对应资源. wget http连接 wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.10.159.tar.gz
方式2: RPM方式
它是IBM公司的RedHat提供的一种包管理器, 全称叫: RedHat Package Management(小红帽包管理器). 会根据下载链接, 去联网下载资源. # 弊端 不能自动解决依赖关系, 需要手动解决依赖. # 例如: 安装MySQL
方式3: 手动下载安装包
# 比较灵活, 可以自己通过windows系统下载安装包, 然后上传到Linux系统中. # 解压, 修改配置文件即可. # 例如 安装JDK...
服务管理命令
# systemctl 它可以控制某些软件, 服务的状态, 开启, 关闭... # 语法 systemctl start | restart | stop | disable | enable | status 服务名 # 常见的服务名 sshd 远程连接协议, FinalShell就是通过它连接的虚拟机.(非对称加密) firewalld 防火墙服务 network 副网络服务 NetworkManager 主网络服务, 如果某天, 你的IP突然变成 127.0.0.1 就是它的问题. # 遇到的问题, 啥也没做, ip突然改成了 127.0.0.1, 怎么办? systemctl stop NetworkManager # 关闭主网络服务 systemctl disable NetworkManager # 禁用主网络服务开启自启 systemctl restart network # 重启副网络服务 ifconfig # 查看IP即可.
软连接和硬链接
软连接
# 类似于windows的快捷方式 # 格式 ln -s 要被连接的地址 软连接方式 # 例如: ln -s 1.txt 2.txt # 2.txt就是1.txt的软连接. [root@node1 ~]# ln -s 1.txt 2.txt [root@node1 ~]# ll 总用量 23176 -rw-r--r--. 1 root root 12 4月 13 16:00 1.txt lrwxrwxrwx. 1 root root 5 4月 13 16:01 2.txt -> 1.txt -r--------. 1 root root 68746 3月 15 2020 a.jpg lrwxrwxrwx. 1 root root 42 4月 13 15:58 ip -> /etc/sysconfig/network-scripts/ifcfg-ens33 -rw-r--r--. 1 root root 23658093 4月 13 15:18 linux-5.10.159.tar.gz [root@node1 ~]# [root@node1 ~]# cat 1.txt hello world [root@node1 ~]# echo 112233 >> 2.txt [root@node1 ~]# [root@node1 ~]# cat 1.txt hello world 112233
硬链接
# 作用 相当于 动态 备份文件中的内容, 提高容错率. # 格式 ln 要被连接的地址 硬连接方式 # 不写 -s就是硬链接, 写了就是软连接. # 例如: ln 1.txt 2.txt # 2.txt 是 1.txt的硬链接, 无论改哪个文件, 两个文件都会同步一起修改.(删除时不一起)
IP相关
# 查看本机ip ifconfig # 如何修改ip vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 查看主机名, 即: 机器的名字 hostname # 修改主机名. # 方式1: hostnamectl hostnamectl set-hostname 新的主机名 # 即刻生效. # 方式2: 修改配置文件 vim /etc/hostname # 重启有效. # 配置域名映射, 目的是: 把 域名 当做 IP来用. # windows的配置路径. C:\Windows\System32\drivers\etc\hosts 192.168.88.161 node1 node1.itcast.cn # Linux配置路径. vim /etc/hosts 192.168.88.161 node1 node1.itcast.cn # 两个好玩儿的命令. reboot # 重启 shutdown -h now # 关机
网络传输
# 测试网络是否通畅 ping [-c num] 域名 # 例如 ping -c 3 www.baidu.com # ping测试连接, 发送3个数据包 # wget 可以联网下载资源. # 格式 wget url地址 # curl 模拟浏览器,向url地址发出请求, 获取响应信息. curl url地址 curl www.baidu.com >> baidu.txt # 端口号, 指的是程序在设备上的唯一标识, 范围: 0 ~ 65535, 其中0~1023尽量不要用. netstat -anp # 查看本机所有的端口号, all network port # 例如 netstat -anp | grep sshd # 查看本机和 sshd服务相关的端口号 netstat -anp | grep 3306 # 查看3306端口号的占用情况
进程相关
# 进程介绍 程序在系统中的表现形式, 即: 每个进程都是一个应用程序,可以理解为是: *.exe # 查看本机所有进程 ps -ef e:全部进程, f:完全格式展示 # 查看本机和某些服务相关的进程 ps -ef | grep sshd ps -ef | grep mysqld # 强制杀死某些进程 kill -9 进程的pid编号
环境变量
# 查看Linux的环境变量 env # 来源于: environment, 环境. # 设置变量 变量名=变量值 # 等号两端没有空格. # 如何使用变量值 ${变量名} # 如果是单独用的, 大括号可以省略不写. echo ${变量名} # 如何配置环境变量. vim /etc/profile export 变量名=变量值 # 按i进入编辑模式开始修改, 最后 :wq保存退出 source /etc/profile # 刷新配置文件.
上传和下载
# 1. 安装 lrzsz包. yum -y install lrzsz # rz: 上传. sz: 下载. # 2. 上传. # 方式1: 在终端命令行处, 写: rz, 然后敲回车. 注意: 中文可能会乱码.选中要上传的文件, 上传即可.# 方式2; 拖拽上传. 推荐. # 3. 下载. # 方式1: sz命令方式. 注意: 中文可能会乱码. # 方式2: 选中文件, 右键下载.
压缩和解压缩
# 了解, 区分压缩协议的好坏, 可以参考3个维度: 1. 压缩比(即: 压缩后文件大小) 2. 压缩速度. # 写 3. 解压速度. # 读 # tarball方式, 压缩 和 解压缩 (速度快, 压缩比大) # 细节, 如果加-z了, 则后缀名一般写, *.tar.gz 不加-z, 后缀名一般写 *.tar # 压缩 tar -zcvf 压缩包名 要被压缩的文件... # 解压 tar -zxvf 压缩包名 -C 解压后的路径 # 参数解释: -z 使用gzip协议, 可以不写, 使用默认压缩方式. (只是归档, 大小可能变大) -x 解压 -C 解压到指定路径 -c 压缩 -v verbose, 显示详细(过程) -f file, 压缩文件 # zip方式, 压缩 和 解压缩. (相对速度慢, 压缩比小) # 压缩 zip [-r] 压缩包名.zip 要被压缩的文件或者目录 # -r: 递归 # 解压缩 unzip 压缩包名 -d 解压到的路径
shell脚本
vim my.sh # my.sh文件中编写如下内如: #!/bin/bash name='zhangsan' age=23 echo "姓名: ${name}" echo "年龄: ${age}" # 执行my.sh 方式1 sh my.sh 方式2 source my.sh 方式3(需要增加权限: chmod 777 my.sh) 相对路径: ./my.sh 绝对路径: /root/day02/my.sh