1 Linux用户和权限
1.1 Linux 用户相关概念
Linux两类用户
root 超级管理员
普通用户
- 大多数文件都只有读/运行的权限
- 只有在当前用户的HOME目录下才有对应的权限
- 在root用户下可以创建普通用户 useradd -m 用户名 passwd 密码 密码不能过于简单 su 用户名 # 切换用户 exit #退出当前用户 返回上一步用户
- 普通用户想临时使用超级管理员权限 sudo 命令 普通用户使用sudo 的前提: 需要在root用户下 修改sudoers 文件, 将普通用户添加到这个文件中,普通用户才可以使用sudo
1.2 用户权限
root用户 超级管理员 不受其它用户权限限制
文件的权限问题
- r read 读权限 cat, more 操作
- w write 写权限 打开文件并进行修改 比如使用vim进行编辑
- x execute 执行权限 作为一个程序来执行
文件夹的权限问题
- r read 读权限 读取存储在这个文件夹下的内容
- w write 写权限 在当前文件夹中添加/删除 文件
- x execute 执行权限 可以在当前文件夹中查找, 可以使用cd命令将工作目录切换到改目录
1.3 文件/文件夹权限的修改
修改权限
chmod
chmod u=rwx g=wx o=x 文件名
chmod XXX 文件名 (三位数, 每一位取值范围 0 ~7 )
修改所属的用户/用户组
chown 用户: 用户组 文件名 同时修改这个文件/文件夹的 用户和用户组
chown 用户 文件名 只修改当前文件/文件夹所属的用户
chown :用户组 文件名 只修改当前文件/文件夹所属的用户组
chown -R 用户: 用户组 文件夹名 当前文件夹内所有的内容都设置成相同的用户/用户组
2 Linux实用操作
2.1 快捷键
代码语言:javascript复制1. ctrl c 强制停止
2. ctrl d 退出登出
3. history 查看历史命令
4. !命令前缀,自动匹配上一个命令
5. ctrl r,搜索历史命令
6. ctrl a | e,光标移动到命令开始或结束
7. ctrl ← | →,左右跳单词
8. ctrl l 或 clear命令 清屏
2.2 软件安装/服务启动状态管理/创建软连接
yum install
- 通过类似于应用商店的包管理器来下载并安装软件
yum install 软件名字
yum uninstall 软件名字
可选参数 [- y] 自动同意
systemctl 对服务进行管理
语法:
系统内置的服务比较多
- NetworkManager,主网络服务
- network,副网络服务
- firewalld,防火墙服务
- sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
ln 软连接
- 相当于快捷方式
ln -s 要连接的源文件 要创建的软连接
代码语言:javascript复制ln -s ~/py3.8 /root/anaconda3/bin/python3.8
2.3 IP 和 主机名
每台机器访问局域网/互联网 都要有一个IP地址
我们在访问网站的时候, 先访问url地址
访问网络的服务(浏览器, 其它程序) 会先使用这个URL 查询本机的hosts 文件
windows hosts文件 C:WindowsSystem32driversetchosts Linux hosts文件 /etc/hosts
如果本机hosts 记录了 url和ip的对应关系, 直接获取到ip地址使用这个ip连接另外一台机器
如果本机hosts没有记录这个url和ip的关系, 就会访问公网的DNS 服务器
114.114.114.114 8.8.8.8
DNS服务器的作用就是做域名解析, 会把url → ip, 使用这个ip做后续的访问, 如果域名没有对应IP就会返回网址不存在
域名 → ip对应关系 网站自己到DNS服务器进行注册
自己在练习的时候, 会用到jupyter lab 我们可以在记得hosts文件中 注册一个192.168.88.161 node1.itcast.cn
这样的对应关系, node1.itcast.cn 我们就可以通过这个地址来访问jupyter lab
2.4 网络操作相关命令
ping 域名/ip地址
测试网络是否畅通
- 如果下载某个软件包的时候, 发现无法下载/链接超时, 可以通过ping命令测试连接是否通
ping 192.168.88.1 # ping 物理机
ping baidu.com # 尝试连接百度
wget 下载软件
wget 要下载软件的url地址
curl 发送http 请求
curl -0 文件url地址 下载文件
2.5 端口 和 进程
端口
一台机器上运行了很多的程序, 当程序需要联网进行数据交换的时候, 都要通过端口网络
- 每一个运行的程序对应的进程都会对应一个端口
- 启动jupyter lab 默认会占用8888端口 如果第一个jupyter lab没关, 再启动一个jupyter lab 就会占用8889这个端口
nmap 查看当前机器端口占用情况
代码语言:javascript复制nmap 127.0.0.1 # 查看本机端口占用情况
netstat -anp 查看端口占用情况
netstat -anp | grep 端口号 查看具体某一个端口的占用情况
代码语言:javascript复制netstat -anp | grep 8888
经常用到的端口
22 ssh服务端口
3306 mysql 端口
jupyter lab 8888 端口
进程
每个程序运行起来之后, 都会在操作系统内注册一个进程, 进程都会对应一个进程编号(PID)
ps -ef 查看当前linux系统中正在运行的进程都有哪些
代码语言:javascript复制ps -ef|grep 进程编号
如果想杀死一个进程 可以通过kill -9 进程编号杀死进程
-9 强制杀死
应用场景
安装/运行多个程序的时候, 可能会出现默认端口冲突的问题
- 两个不同的程序如果都默认使用了相同的端口, 后启动的程序在启动的时候可能会报错
netstat -anp | grep 要使用的端口
# 通过端口查看进程编号
# 需要查询当前进程编号对应的程序是啥程序
ps -ef|grep 进程编号
# 看当前这个进程是否重要, 如果不重要可以直接杀死
kill -9 进程编号
2.6 环境变量
环境变量的作用
- 如果把文件所在的目录配置到环境变量中, 在任何一个工作目录下都可以执行这个文件
- 一般把经常使用的应用程序所在的目录配置到环境变量里
具体配置方法
永久生效针对
当前用户生效,配置在当前用户的: ~/.bashrc文件中
针对所有用户生效,配置在系统的: /etc/profile文件中
具体配置方法就是在文件中添加一行
代码语言:javascript复制export PATH=$PATH:/要加入到环境变量的目录
配置之后, 想立即生效
source ~/.bashrc
source /ect/profile
2.7 上传下载压缩解压缩
上传/下载 ssh工具都有支持, 都可以通过图形化界面在windows上进行操作
压缩解压缩
tar gz
tar -zcvf xxx.tar.gz 要压缩的文件
tar -zxvf xxxx.tar.gz -C 解压之后文件放到哪里
zip
zip -r XXX.zip 要压缩的文件夹和文件
unzip xxx.zip -d 要解压的目的地