GUN/Linux 基础教程
GUN/Linux 基础教程
控制台
shell
-
在启动 Linux 系统后,如果没有安装 GUI 的话,你将会进入 CLI
- GUI: 图形用户界面,通过 视图 实现交互窗口展示内容,以 鼠标主键盘为辅 进行用户交互
- CLI: 命令行界面,通过 文本 实现交互窗口展示内容,以 键盘 进行操作没有鼠标
- TUI: 文本用户界面,介于 GUI 与 CLI 之间,通过 文本 实现交互窗口展示内容,定位光标 和 鼠标实现 用户交互
-
如果你处在 GUI 环境中,可以通过
Ctrl+Alt+F3
进入 CLI 环境,返回 GUI 可以使用Ctrl+Alt+F2
-
在初始的 CLI 时,是 字符登录界面
-
可以看到
主机名 login:
的标识 -
输入你想登录的用户名称并回车,会有
Password:
标识提示输入对应用户的密码 -
注意密码在输入的时候是不可见状态,实现一般是将 前景色 与 后景色 设置为相同颜色
- 前景色:指界面中文本的颜色
- 后景色:指界面的背景颜色
-
用户名通常由 小写字母 组成
-
成功登录后,会显示欢迎信息以及一个命令提示符,欢迎信息是保存在
/etc/motd
-
-
在 GUI 下获取 shell
- 启动系统后将使用图形登录界面输入账号和密码直接登录即可
- Tab 键可以在登录的用户名和密码之间移动,当然图形化界面最方便的操作还是使用鼠标
- GUI 获取 shell 需要通过启动一个 终端模拟器 的程序,比如 gnome-terminal、rxvt、xterm 等
-
关闭 shell 活动
- 使用
Ctrl+D
组合键 - 使用
exit
命令
- 使用
-
如何关闭 Linux 系统
- 单用户模式:
poweroff -i -f
- 多用户模式:
shutdown -h now
- 单用户模式:
超级用户 root
- root 账户在 Linux 中的地位是最高的,完全可以做到随心所欲的地步
- Linux 中 root 进行任何操作都无需进行验证操作【当然是 root 自身没有做特殊配置的情况】
- 因此在所有 root 需要格外小心,你必须要慎重和负责任的使用
- 在某个文件的权限可能会导致非 root 用户无法使用或访问时,最好是对 文件权限 和 用户组 进行配置,而不是直接使用 root 去解决
辅助管理 CLI 软件
仅是推荐,一般使用于新手使用
- mc (Midnight Commander): 可视化字符界面文件管理器,对应刚脱离 GUI 的新手而言是一个不错的过渡,了解更多
- vim, vim-tiny: 文本编辑器,Linux 中最强大亦是最出名的文本编辑器,对于使用 CLI 可以说 vim 是一门必修课,只不过开始使用时会比较痛苦需要大量的练习,vim-tiny 是简洁版 vim
- w3m: 基于文本的浏览器,对于网络时代而言,想在 CLI 中使用浏览器是比较痛苦的,而 w3m 对于新手是相当友好的,只不过仅限新手的过渡期使用,真正应该使用的是 curl 与 wget 而不是 w3m
- gpm: 文本控制台复制粘贴工具,允许在控制台上使用鼠标进行剪切和粘贴,想念鼠标吗,不过别依赖于 gpm 不然很难领会 CLI 的奇妙
- sudo: 向特定用户提供受限的 root 权限的工具,注意这是相当危险的命令,黑客 shell 提权上有大部分是因为 sudo 的授权配置失误,致使系统被攻破,所以使用时一定严格遵守官方的配置原则
安装方法:apt-get install 软件名
注意安装软件需要 root 权限,当然有 sudo 权限的用户也可以使用 sudo apt-get install 软件名
使用 sudo 时 需要用户自己的密码进行验证
-
虽然 sudo 危险,但使用却非常频繁,配置时基本的思想是在授予 尽量少的权限 的情况下让用户完成自己的工作
-
对于典型的单用户工作站【不用 24 小时在线运行】通常简单地配置 sudo,注意 只对你管理的单用户工作站,多用户工作站 或 服务器 中不要这样使用
# 注意用户名指你需要授予权限的用户 # "用户名 被管理主机的地址=(可使用的身份) 授权命令 (绝对路径)" echo "用户名 ALL=(ALL) ALL" >> /etc/sudoers # 无需密码验证 echo "用户名 ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers # 详细可以使用 man sudo 查看
-
对于受限的设备和文件提供访问权限,应该考虑使用组来提供受限访问
文件基础
-
在 linux 中,一切皆文件
-
文件名一般是由字母、数字、连字符和下划线组成,区分大小写
-
文件分类
- 普通文件,即 window 中的文件,此文件非彼文件
- 目录,可以理解为 windows 中的文件夹
- 符号链接,可以大体理解为 windows 的快捷方式类似
- 字符设备节点,提供数据流的设备文件,比如键盘、串口、调制解调器等设备
- 块设备节点,处理数据存储的设备文件,比如硬盘、软盘、CD-ROM 驱动器、闪存等设备
- 命令管道,主要用于在进程间传递数据
- 套接字,用于计算机间网络通信
目录
-
在 Linux 系统上,没有的驱动器概念 即 windows 中的盘符,而是以
/
开始的一个大目录 -
因为如果你画出文件系统,它看起来就像一棵颠倒的树,因此称
/
为 根目录 -
每个文件或目录都被指定一个 全限定文件名,或者称为 绝对路径
- 全限定文件名以
/
根目录 开始,并且在每个目录或文件名之间以/
分隔
- 全限定文件名以
-
在路径中存在以 当前目录 为参考系的路径,称为 相对路径
- 相对路径以
.
或..
开始 .
表示当前目录..
表示当前目录的父目录,即上级目录
- 相对路径以
# 示例: 假设我们当前所处的路径是 /usr 中
# 路径关系 '/' -> 'usr' -> 'share' 我们在 'usr' 目录中,不理解就带入 windows 中文件夹彼此关系
/usr/share # 绝对路径
./share # 相对路径,等价 /usr/share/
.. # 相对路径,等价 /
-
常见的目录
目录 存放内容 / 根目录 /bin/ 系统命令 /lib/ 系统调用库 /etc/ 系统范围的配置文件 /dev/ 系统的设备文件 /root/ 所有特权用户 root 的家目录 /home/ 所有非特权用户的用户目录 /tmp/ 系统的临时目录或目录 /var/log/ 系统日志文件
链接
- 硬链接:对现有文件重复名称
- 软连接:通过名字指向另一个文件的特殊文件,称为符号链接
- 只能对处于同一存储设备的文件创建硬链接,要想在位于不同存储设备的文件之间创建链接,只能使用符号链接
设备文件
-
设备文件包括系统的 物理设备 和 虚拟设备,一般都在
/dev/
目录中 -
设备文件有两种类型:字符设备、块设备
-
特殊设备文件
- /dev/null: 它会丢弃一切写入其中的数据,如果读取只会返回 文件结尾字符
EOF
- /dev/zero: 读取会提供无限的 空字符
\0
用来初始化数据存储,进行写入会丢失 - /dev/random: 从真随机数产生器返回一个随机字符
- /dev/urandom: 从能够安全加密的伪随机数产生器返回一个随机字符
- /dev/null: 它会丢弃一切写入其中的数据,如果读取只会返回 文件结尾字符