Linux
Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第一次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。
它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、oracle linux等。
特点
系统特点
- Linux可以多用户登陆
Linux是 多用户、多任务
windows是 单用户、多任务
- 名言: “Linux一切皆文件” 解释:
Linux中所有内容都是以文件的形式保存和管理,只要你能感知到的,在 Linux 上都是被抽象成文件了的。
目录也是文件。目录文件包含了此目录中各个文件的文件名以及指向这些文件的指针,打开目录等同于打开目录文件。
- 分盘?
与Windows 系统不同,Linux 系统没有C盘、D盘、E盘那么多的盘符,
只有一个根目录(/),所有的文件(资源)都存储在以根目录(/)为树根的树形目录结构中。
这个根目录也是一个文件。 “Linux一切皆文件”。
当你挂载一个u盘,通常在 media 目录下可以找到它。
Linux系统目录
# 系统大致结构(CentOS)
/ #根目录
├── bin # 系统基本命令 (bin是binary的缩写)
├── boot # 系统启动和内核
├── dev # 设备驱动 (dev是device的缩写)
├── etc # 主要存储一些配置文件
├── home # “家”,表示除了root用户以外,其它用户的目录
├── lib # 系统库(不能直接运行的代码)(lib是libary的缩写)
├── lib64 #
├── lost+found #
├── media # 挂载多媒体设备的目录。(例如默认情况下的光盘、u盘、硬盘等设备都挂载在此目录)
├── mnt # 临时挂载别的文件系统
├── opt #
├── proc # process进程,该目录储存的是linux运行时的进程。(没事别打开)
├── root # root用户的目录
├── run #
├── sbin # super binary,这里面的命令必须要有super权限才能执行
├── srv #
├── sys #
├── tmp # 系统运行时产生的临时文件会储存到这里
├── usr # 存放用户自己安装的软件,类似windows的program files。
└── var # 主要放日志
# /usr一般只放只读文件,配置文件和数据文件放一般放在"/etc"和"/var"。
# 在历史上"etc"是 "etcetera",中文意为"其他", 现在则不是这个用意, 现在就是专门存放配置文件的地方,可以理解为"editable text configuration"的缩写
# 在历史上"var"是 "variable",中文意为“变动”,现在主要用来存放log,lock等文件。
# media 和 mnt
以前是只有/mnt的,一般手动挂载的分区,都会挂在/mnt(一般需要手动建立好挂载点,再用命令挂载)。
后来有了自动挂载功能,自动挂载的分区都被放到/media了,挂载点都是由系统自动建立和删除的。
二者没有特殊的区别。
用户自己的数据文件放到哪里?
假设我们想建一个 README.txt 文件,在里面记点东西;
如果你是root(超级管理员),则放在 /root 目录下面 ;
如果你是zhangsan,则应该放在 /home/zhangsan 目录下面 ;
总之就是放到自己的地盘去。
Linux是个多用户操作系统,每创建一个用户,系统home目录下会有一个以用户的名字命名的目录。
Linux常用命令,操作文件
上手/基础操作/查看系统
# 手册查询
man 要查询的指令 # 例如:man cp ,表示在【手册】中查找“cp”的用法
# whereis命令
# Linux whereis命令用于查找文件。
# 该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
# 该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令
whereis bash # 查看指令"bash"的位置
whereis ssh # 查看指令"ssh"的位置
whereis nginx # 查看指令"nginx"的位置
cd / # 进入主目录
pwd # 显示当前工作路径
ls # 查看目录中的文件 ( . 开头的文件,一般表示隐藏文件)
ls -F # 查看目录中的文件
ls -l # 显示文件和目录的详细资料
ls -lh # 显示文件和目录的详细资料,以可读性较高的形式显示
ls -a # 显示隐藏文件
# 切换用户
su zhangsan # 切换到 zhangsan用户
# 查看系统相关!!!
# 查看系统相关!!!
# 查看系统相关!!!
hostname # 显示主机名
whoami # 显示当前登陆用户名
id # 显示用户基本信息
cat /proc/version # 查看当前操作系统版本信息
cat /etc/os-release # 查看当前操作系统版本信息
uname -a # 查看版本当前操作系统内核信息
cat /etc/issue # 查看版本当前操作系统发行信息
lsb_release -a # 列出所有版本信息
top # 显示出当前cpu内存等状态信息。 按一下q退出
df -h # 查看磁盘空间
free -m # 以“m”为单位显示内存情况
uptime # 输出电脑使用时间
date # 查看时间
date +%F # 查看时间
date "%Y-%m-%d" # 查看时间
cal # 查看当前日历
# 关机和重启
shutdown [选项] time [message]
-t seconds # seconds秒钟之后进行关机程序
-r # 重启
-h # 关机后停机
-n # 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机
-c # 取消目前已经进行中的关机动作
time # 设定关机的时间
message # 传送给所有使用者的警告讯息
shutdown -r now # 立刻重启
reboot # 立刻重启
shutdown -h now # 立刻关机
halt # 立刻关机 ,不会完整关闭和保存系统的服务,类似于直接手动电源键关机。不建议使用
poweroff # 立刻关机,不会完整关闭和保存系统的服务,类似于直接手动电源键关机。不建议使用
# 清屏
clear # 刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息
Ctrl+l(小写的L) # 这是一个【快捷键】,清屏效果同clear命令一样
reset # 完全刷新终端屏幕,之前的终端输入操作信息将都会被清空,这样虽然比较清爽,但整个命令过程速度有点慢,使用较少
值得一提的是reset命令在你的终端控制错乱时非常有用。如输入字符不出现在光标的位置的情况。
还有当你敲击回车键时,新提示符并没有出现在新行上而是出现在老提示符的前面。
此时reset命令就能用来修正这些问题
文件操作
# 文件搜索
find / -name file1 # 从 根目录 开始搜索 文件名为 file1 的文件
find / -user user1 # 从 根目录 开始搜索 属于用户 'user1' 的文件
find /home/user1 -name \*.bin # 从目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
# 搜索文件中的内容
find ./ -type f -name "*.*" | xargs grep "分页请求"
# 复制
cp /home/user1/a.doc /home/user1/work # 表示将'/home/user1/a.doc'文件 复制到 '/home/user1/work '目录下
cp -r dir1 dir2 # 表示将dir1及其dir1下所包含的文件 复制到 dir2下
cp -r dir1/. dir2 # 表示将dir1下的文件 复制到dir2, 不包括dir1目录
# 参数:
-i # 询问。如果目标文件已经存在,则会询问是否覆盖
-r # 表示递归
# 移动
mv /home/user1/test/test.txt /home/user1 # 表示将xxx文件移动到xxx下
# 重命名
mv /home/user1/test/test.txt /home/user1/test/test2.txt # 利用移动命令可以重命名,表示将test1.txt文件重命名为test2.txt
# 创建文件夹、文件 命令 及清除命令
mkdir test # 创建test 文件夹
touch test/a.txt # 添加一个 文件
rm test.txt # 删除test文件(需要确认)
rm -f test.txt # 强制删除test文件(无需确认)
rm -rf test/ # 强制删除test文件夹
文件打包、压缩、解压
tar命令功能
- 将多个文文件打包为一个文件
- 将文件打包并压缩
- 将打包的文件解包
- 将打包压缩的文件解压
# tar命令
# 选项:
-c # 建立新的备份(压缩)文件
-C # 解压时用于指定解压目录
-t # 列出备份(压缩)文件里的内容
-x # 从备份(压缩)文件中还原文件
-v # 显示指令执行过程
-z # 通过gzip指令(技术)来处理备份文件,与-x连用时调用gzip完成解压缩
-f # 指定文件
# 例:
cd /root # 进入 家 目录
mkdir abc abc2 # 创建 abc目录 和 abc2目录
cd abc # 进入 abc 目录
touch 1.txt 2.txt # 创建两个文件,文件名为1.txt 2.txt
cd .. # 返回上一级
# 压缩 abc文件 为 newabc.tar.gz
tar -czvf newabc.tar.gz abc
# 压缩 abc文件时,排除里面的 1.txt文件,压缩后的文件名为 newabc2.tar.gz
tar --exclude=abc/1.txt -zcvf newabc2.tar.gz abc
# 列出(查看)压缩文件里的内容
tar -tzvf newabc.tar.gz
# 解压 newabc.tar.gz文件(默认放到当前目录)
tar -xzvf newabc.tar.gz
# 解压 newabc.tar.gz文件 放到 abc2目录下
tar -xzvf newabc.tar.gz -C /abc2
rm newabc.tar.gz # 删除压缩文件
rm newabc2.tar.gz
rm -rf abc # 删除abc文件夹
rm -rf abc2
文件权限⭐️
# 修改文件权限
chown -R www:www /home/admin/music # music文件夹所有者更改为www用户和www用户组; 用户:用户组
chgrp -R git /usr/local/repository/git # 变更为git组
chmod -R 777 /usr/local/repository/git # 读写权限更改为 777 (最高权限)
# 常见的权限表示形式有:
-rw------- (600) 只有拥有者有读写权限。
-rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。
第一个字符:
“-”开头代表文件
“d”开头代表文件夹
每3个字母为一组,代表着:
【owner权限】【group权限】【others权限】
查看文件和文本编辑器的使用(cat/tail/vi/vim)⭐️
如何查看文件?
windows中有自带的 记事本 可以帮助我们查看大多数文件,在Linux终端中如何查看文件、编辑文件?
# ====================
# cat命令 (文本文件查看和连接工具)(无法编辑文件内容)
# ====================
cat 参数 文件名
# 参数:
-n # 输出行号
-b # 和 -n 相似,只不过忽略空白行
# 例:
cat home/zhangsan/test.txt # 查看test.txt的内容
cat -n home/zhangsan/test.txt # 查看test.txt的内容, 有行号
cat test.txt > test2.txt # 将test.txt的内容输出到test2.txt文件,【覆盖】
cat test.txt test2.txt >> test3.txt # 将test.txt的内容和test2.txt的内容合并, 【追加】输出到 test3.txt文件末尾中
# ====================
# tail(无法编辑文件内容)
# ====================
tail -n test.log # 查看文件的最后n行内容 (默认显示最后 10 行)
tail -n 5 test.log # 输出最后的5行
tail -n +196 test.log # 从第196行开始输出,一直到最后
tail -f test.log # 实时查看文件的尾部内容(只有系统自动往里面写的,才能被侦听到。ctrl+c退出)
文本编辑器 vi的使用
# ==================
# 文本编辑器 vi的使用
# ==================
vi 文件名
# 进入之后
i # 插入模式开始
Esc # 退出 模式
# 删除文字
[x] # 每按一次,删除光标所在位置的“后面”一个字符。
[X] # 大写的X,每按一次,删除光标所在位置的“前面”一个字符。
[dd] # 删除光标所在行。
[6dd] # 从光标所在行开始删除 6行
# 复制粘贴
yy # 复制游标所在的那一行
nyy # n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行
p # 将已复制的数据在光标下一行贴上
# 撤销重做
u # 复原前一个动作
[Ctrl]+r # 重做上一个动作
# 搜索替换
/word # 向光标之下寻找一个名称为 word 的字符串
?word # 向光标之上寻找一个字符串名称为 word 的字符串
[n] # 按键n。代表重复前一个搜寻的动作
[N] # 按键N。『反向』进行前一个搜寻动作
:100,200s/vbird/VBIRD/g # 在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD
:1,$s/word1/word2/g # 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
shirt + : # 进入命令行
# 进入命令行后
:wq # 保存并退出
:q # 退出(如果有改动文件 不给退出)
:q! # 强制退出(不保存)
:set nu # 在每一行前面显示行号
:set nonu # 取消行号
# ==================
# 更常用的是 vim
# 它是vi的增强版,完全兼容vi
# 《简明 VIM 练级攻略》https://coolshell.cn/articles/5426.html
# ==================
# vi与vim
vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。
由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻。
vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;
vim可以当作vi的升级版本,他可以用多种颜色的方式来显示一些特殊的信息。
vim会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息。
vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。 这对于我们在Linux上进行一些配置文件的修改工作时是很棒的功能。
vim编辑器使用方法同vi编辑器差不多。
输出重定向
输出一般会显示在终端中,如果需要将输出结果保存在文件中,需要用到输出重定向。
> # 一个箭头表示【覆盖】输出,会覆盖原先内容
>> # 两个箭头表示追加输出,会在原先内容末尾继续添加
ls -lh > res.txt # 表示将ls -lh的输出结果保存到res.txt文件中
ls -lh >> res.txt # 表示将ls -lh的输出结果保存到res.txt文件末尾中
管道符:|
# 一般用于“过滤”,“特殊”,“扩展处理”
ls -l|grep M # 输出含“M”的目录
高级命令
查看进程
ps # 查看服务进程
# 参数:
-e # 等价与“-A”表示列出全部进程
-f # 显示全部的列(全字段)
a # 显示所有进程
-a # 显示同一终端下的所有程序
-A # 显示所有进程
c # 显示进程的真实名称
u # 指定用户的所有进程
## 查看占用内存最多的程序
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
## 查看占用cpu最多的程序
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
查看服务
# 启顶/停止/重启 某服务
service 服务名 start/stop/restart
# 杀进程
kill 进程PID(通过ps查)
killall 进程名称
查看网络进程(端口使用情况)
# 查看网络进程
netstat -tnlp
netstat -nultp
sudo
sudo: 以系统管理者的身份执行指令。
假设有一个普通用户zhangsan
,那么他是没有权力执行重启命令reboot
的。此时可以叫root
授权给他,之后zhangsan
就可以通过命令sudo reboot
来重启电脑。
sudo -l # 查看当前登陆用户,哪些命令可以执行或禁止的
sudo vim /etc/test.txt # 以root(管理者)身份,通过vim打开test.txt文件
# sudo命令,以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令【就好像是】 root 亲自执行。
# sudo的配置文件是/etc/sudoers, 需要root用户在里面配置好,(授权)哪些命令给哪些用户可以执行。
Linux如何装软件
终端中下载软件(获取软件的方法)
获取软件的途径:软件官网、光盘
获取软件的方法:
- 通过ftp文件传输软件包。(常用工具:FileZilla等)。
- wget命令
Linux wget是一个下载文件的工具,它用在命令行下。体积小功能完善,支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。
# 例:
wget http://cn.wordpress.org/wordpress-3.1-zh_CN.zip
# 在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。
# ==================
# wegt的使用参考: https://blog.csdn.net/weixin_42119415/article/details/100551739
# ==================
- curl命令
curl是一个综合传输工具,既可以用来上传文件,也可以用来下载文件,在日常使用过程中,它通常都是以下载工具的角色出现,也常用来检验一个网址是否可以访问。
# 例:
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。
# 检测某网址是否可以访问
curl https://www.baidu.com/
# ==================
# curl的使用参考: https://www.cnblogs.com/yanguhung/p/10115911.html
# ==================
# ==================
# Linux curl与wget 命令的区别和联系: https://blog.csdn.net/yushupan/article/details/83578633
# ==================
- 包管理工具/傻瓜式安装⭐
用包管理工具安装软件,会【下载】和【自动安装】
优点:安装简单,快捷
缺点:丧失自定义性
常用的有yum
,apt-get
yum
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基于【rpm包】管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
# ==================
使用方法参考:https://www.runoob.com/linux/linux-yum.html
# ==================
# 列出所有可更新的软件清单
yum check-update
# 更新所有软件
yum update
# 仅更新指定的软件
yum update <package_name>
# 仅安装指定的软件
yum install <package_name>
# 删除(卸载)软件包
yum remove <package_name>
# 查找已安装的某个软件
yum search <keyword>
apt-get
apt-get,适用于【deb包】管理式的操作系统
Advanced Package Tool,又名apt-get,是一款适用于Unix和Linux系统的应用程序管理器。
所有基于Debian的发行都使用这个包管理系统。
# ==================
使用方法参考:https://ipcmen.com/apt-get
# ==================
# 更新 (来源)软件包列表
apt-get update
# 安装 一个新【软件包】
apt-get install xxx
# 卸载 一个已安装的【软件包】(保留配置文件)
apt-get remove xxx
# 卸载 一个已安装的【软件包】(删除配置文件)
apt-get –purge remove xxx
# apt-get会把已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件:
apt-get autoclean apt
# 这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的:
apt-get clean
# 更新所有已安装的软件包
apt-get upgrade
# 查找已安装的某个软件
dpkg -l | grep ***
软件安装
下载下来的安装包如何安装?
使用yum
和apt-get
会自动安装软件,不用我们操心;可当我们收到一个安装包时,则需要手动操作了。
通常Linux应用软件的安装包有三种:
- tar包(源码包),例apache
httpd-2.2.15.tar.gz
。它是使用UNIX系统的打包工具tar打包的。 - rpm包,例
software-1.2.3-1.i386.rpm
。它是RedHat Linux提供的一种包封装格式。 - dpkg包,例
software-1.2.3-1.deb
。它是Debain Linux提供的一种包封装格式。
通常,用tar打包的,都是源程序;
而用rpm、dpkg打包的则常是可执行程序。
tar包(源码包)安装步骤⭐
# 源码包安装需要gcc gcc-c++ make
1. 取得应用软件:通过下载、购买光盘等方法获得;
2. 解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。
如果是最常见的gz格式,则可以执行:“tar –xvzf 软件包名”,就可以一步完成解压与解包工作。
如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包;
3. 阅读附带的INSTALL文件、README文件;
4. 执行“./configure”命令为编译做好准备;
5. 执行“make”命令进行软件编译;
6. 执行“make install”完成安装;
7. 执行“make clean”删除安装时产生的临时文件。
卸载
通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以并没有提供良好的卸载方法。
有两个软件能够解决这个问题,那就是Kinstall和Kife,它们是tar包安装、卸载的黄金搭档。
rpm包安装
见 软件管理 -> rpm软件管理
deb包安装步骤
见 软件管理 -> deb软件管理
软件管理
windows中可以通过“控制面板”->“添加删除程序” 管理电脑已有的软件;
Linux中则没这么统一,如果你的软件都是用 rpm包 安装的,那你可以用【rpm命令】管理他们;
如果你的软件都是用 deb包 安装的,那你可以用【dpkg命令】管理他们;
rpm软件管理
# 查询系统中某个软件安装情况
rpm -qa|grep 关键词
# 选项
-q # 查询
-a # 全部
# 卸载软件
rpm -e 软件名称
# 卸载软件时,如果软件存在依赖关系,则会报错,卸不掉。
# 如果仍然想卸载,但又不想去解决依赖问题,则可以:
rpm -e 软件名称 --nodeps
# nodeps 忽略依赖关系
# 安装rpm包的软件
rpm –ivh rpm软件包名(一般以.rpm结尾)
# 选项
-i # 安装
-v # 显示进度条
-h # 以“#”显示进度条
# 查询指定文件是属于哪个包
rpm -qf /etc/httpd/conf/httpd.conf # 查询httpd.conf文件属于哪个包
deb软件管理
这是Debian Linux提供的一个包管理器,它与RPM十分类似。debian的包管理器dpkg则只出现在Debina Linux中,其它Linux版本一般都没有。
# 显示所有已经安装的Deb包,同时显示版本号以及简短说明
dpkg -l
dpkg -l package-Name
# 列出与该包关联的文件
dpkg -L package-Name
# 安装deb包的软件
dpkg –i deb软件包名(一般以.deb结尾)
# 删除软件包(保留其配置信息)
dpkg –r 软件名
# 例:dpkg –r vim
# 删除一个包(包括配置信息)
dpkg -P
案例
用源码包 安装 apache
# 1. 获取软件
# http://archive.apache.org/dist/httpd/
# 选择 httpd-2.2.15.tar.gz 下载
# 通过 ftp文件传输工具放入 /root/Downloads
# 2. 解压
tar -zxvf httpd-2.2.15.tar.gz -C /usr/local/src/
# 3. 配置,configure ,这一步一般用来生成 Makefile,为下一步的编译做准备
cd /usr/local/src/httpd-2.2.15/
./configure --prefix=/usr/lcal/apache2 # --prefix参数表示将软件安装在哪里
## 这里我configure失败,原因是缺了gcc gcc-c++ make
apt-get install build-essential
gcc --version # 查看 gcc 版本
## 完后重新configure
# 4. 编译 make
make
# 5. 安装 make install
make install
# (可选)安装完成后,删除安装时产生的临时文件
make clean
# ====================
# 验证,启动apache
# ====================
cd /usr/lcal/apache2
./apachectl start
## 报错:httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
## 打开conf/httpd.conf 添加 ServerName localhost:80 ,保存,再启动
# 尝试访问
curl 127.0.0.1
# 结果
<html><body><h1>It works!</h1></body></html>root@debian:/usr/local/apache2/bin#
# 7. 卸载
## 源码包的卸载,只需要找到软件的安装位置,直接删除所在目录即可
## 需要注意的是,在删除软件之前,应先将软件服务停止
./apachectl stop
rm -rf /usr/local/apache2/
## 可能不会卸载的太干净(得看软件是什么),不过一般也可以了。
apt-get安装 lynx
lynx是一个 Linux纯命令行浏览器
# 更新软件包来源列表
apt-get update
# 安装
apt-get insiall lynx
# 使用
lynx https://www.baidu.com
# 卸载
apt-get remove lynx