study-area-cn/src/learn_linux_basic/linux_common_sense.md

162 lines
5.9 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Linux 常识
当你照着上面的教程,费尽千辛万苦,历经千难万险,终于安装上 Rocky Linux 后,你肯定会有一个问题:我 C 盘呢?
其实Linux 的很多逻辑以及文件的组织结构都是与 Windows 大不相同的,接下来,我们就一起了解一下。
> 注意以下操作若无特殊说明输入命令均在终端Terminal下操作可以按下 C-M-T 呼出。
## Linux 路径的格式
> 文件夹Folder和目录Directory实际上是一个东西。只不过我们在图形界面下更习惯叫文件夹终端命令行下更喜欢叫目录。
Linux 中目录的分隔符是`/`,而非 Windows 中的`\\`。
Linux 中,每个文件夹下,都有两个特殊的目录,就是`.`和`..`
1. `.` 代表当前所在的文件夹
2. `..` 代表上一级文件夹,而 `/` 的上级文件夹就是它自己
> 这块似乎有一点不太好懂,我们通过实际的例子解释一下:
> 假设我们当现在目录`/foo/bar`下,那么`/foo/bar/.`就等同于`/foo/bar``/foo/bar/..`,就等同于`/foo`
如果一个路径以`/`开头,那代表这个目录是从根目录开始的,根目录就相当于 Windows 上的 C 盘,是存放系统的位置。
> 注:在 Windows 下也有一个隐藏的根目录,不过我们几乎访问不到也访问不了
而你所看到的主文件夹(或者是用户目录),位于 `/home/你的用户名`Linux 中 root 用户比较特殊,就是`/root`),相当于 `C:\Users\你的用户名`MacOS`/Users/你的用户名`)。在这里你可以放置你的个人文件和代码。
> 实际上,`/`只是一块硬盘的挂载点,后面会讲到
除了这些之外,还有一个路径,是永远指向你的家目录的,这就是`~`。
假设你的用户名是`hmtsai`,那么`~`是等同于`/home/hmtsai`的。
## 基本操作
### `ls` 列出文件
`ls`,顾名思义,就是 list列出当前目录下的文件他的基本使用方法也很简单
```bash
ls <目录>
```
这个命令就会列出那个目录下的文件。如果没有参数ls 默认列出当前目录下的文件。你应该还能看见颜色,不同颜色就代表了文件(夹)的不同类型。
`ls` 还有一些其它的参数,比如输入 `ls -al` 就可以看见纵向排列的文件详细信息了,输入文件名就可以筛选出那个文件夹内/文件本身。
### `pwd` 打印工作目录
`pwd`,名字拆解出来,就是 print work directory。也就是打印工作目录这个命令可以让我们快速了解到我们当前所在的目录。
> 工作目录work directory可以简单的理解为用户当前所在的目录在以后讲解 shell 的时候会进一步讲解这些概念。
使用方法也很简单:
```bash
pwd
```
这样就会输出当前的工作目录。
### `cd` 切换目录
cd更好理解了就是 change directory切换目录的意思。
使用方法更简单了:
```bash
cd <目录>
```
这样,就会把当前的工作目录切换到指定的目录了。
> 一般情况下,只执行`cd`是和`cd ~`等价的。
### `mkdir` 新建文件夹
我们刚学习使用 Windows 时,除了开机,第一件事应该就是新建文件夹了。
这个命令的意思就是字面上的make directory新建文件夹。
你可以使用下面的命令:
```bash
mkdir <目录名>
```
另外,如果你想一次性创建多层目录,那么可以使用 `mkdir -p <多层目录>`,例如 `mkdir -p learn/linux/study`
### `mv` 移动文件
那我们的重命名,剪切,复制,粘贴去哪了呢?在 Linux 命令行中,其实没有剪切。
```bash
mv <你想移动的目录> <目标或新的名字>
```
我们可以使用上面的命令移动或者重命名一个目录(是的,它们是一个命令)。
> 在同一磁盘内移动速度很快,但是跨磁盘就不一定了
### `cp` 复制文件
而复制也是一个道理:
```bash
cp <你想复制的文件或目录> <新文件或目录的名字>
```
### `rm` 删除文件
都有复制了,怎么能没有删除呢?
> 删除危险性较高,不要删除根目录或者其它重要目录!回车前再三确认!
```bash
rm <你想删除的文件>
```
另外,删除文件夹的操作有点不一样:
```bash
rm -r <你想删除的文件夹>
```
在`r`后面加上`f`就是强制删除了,而 `rm -rf /*` 就是强制删除根目录下所有的文件。以后看到这串命令不要被骗了!
> 如果你真的想尝试,那么请一定在虚拟机下!搞坏系统作者可不负责!
### `nano`简单的文档编辑器
![Nano 的界面](./assets/2.5.1.png)
`nano`实际上就是被誉为“神之编辑器”的 Emacs 编辑器的极限精简版,所有的基本操作都被标在了界面的下方
```text
^G 帮助 ^O 写入 ^F 搜索 ^K 剪切 ^T 执行命令 ^C 位置 M-U 撤销 M-A 设置标记 M-] 至括号 M-B 上一个
^◂ 向后 ^◂ 前一个字 ^X 离开 ^R 读档 ^\ 替换 ^U 粘贴 ^J 对齐 ^/ 跳行 M-E 重做 M-6 复制
^B 向前搜索 M-F 下一个 ▸ 向前 ^▸ 后一个字
```
> 以后,我们会学习一款使用更广泛的编辑器:`Vim`(被誉为“编辑器之神”)。
### `poweroff`关机
很多同学刚使用 Linux 的时候,最大的问题就是:怎么关机?
实际上关机很简单,只需要键入:
```shell
sudo poweroff
```
回车执行之后会提示你输入密码,直接输入就可以了,输入的时候是没有回显的,不用担心,输入完直接回车即可。
> 关于`sudo`是什么意思,这个在以后我们讲解权限的时候会提到,你现在就理解为是用来获取系统的最高权限的意思就 ok 了。
### `man`用户手册
man是 manual手册的意思你可以通过简单地输入 `man <命令>`来使用。