操作系统实践01
文章目录
1.文件系统
1.1 Windows系统
路径名分割符是\
,例如D:\Download\Docker\Docker Desktop.exe
。
绝对路径由两部分构成,盘符和盘内路径,例如D:\Download\Docker\Docker Desktop.exe
。盘符为D:
;盘内路径为\Download\Docker\Docker Desktop.exe
。
Windows的路径分割符和很多编程语言的转义字符相同。比如在C程序中打开D:\Project\readme.txt
,错误的写法为fopen("D:\Project\readme.txt", "r")
;正确的写法fopen("D:\\Project\\readme.txt", "r")
。
1.2 Linux系统
路径名分割符是/
,例如/usr/bin
。
绝对路径从唯一的根目录开始,例如/usr/bin
。整个系统只有一个根目录/
,没有盘符的概念。
Linux的路径分割符和很多编程语言的转义字符不同,比如在C程序打开/usr/include/stdio.h
,可以直接写fopen("/usr/include/stdio.h", "r")
。
2.目录管理
2.1 命令概述
在Linux中,以下命令用于管理目录。
命令 | 功能 |
---|---|
ls | 列出目录下的文件 |
pwd | 显示当前工作目录 |
cd | 改变当前工作目录 |
mkdir | 创建目录 |
2.1.1 ls命令
ls /
列出根目录下的文件。
ls /bin
列出/bin目录下的文件。
ls
列出当前目录下的文件。
2.1.2 cd命令
cd ..
返回上一级目录。
cd /
返回根目录。
cd bin
在根目录下,进入bin目录。
2.1.3 mkdir命令
mkdir test
在当前工作目录下创建目录test。
2.2 用户主目录
Linux是一个多用户操作系统,系统中存在多个用户。
每一个用户都有一个专属于自己的主目录:
- 用户主目录位于/home目录下;
- 以用户名作为目录名称;
- 通常情况下,用户只能修改自己主目录下的文件。
假如系统中有3个普通用户tom、jerry和guest:
- 用户tom的主目录为/home/tom
- 用户jerry的主目录为/home/jerry
- 用户guest的主目录为/home/guest
在shell中,符号~
代表用户的主目录,假设用户的主目录是/home/guest,cd ~
的功能(切换当前的工作目录到用户主目录下)与cd /home/guest
的功能等价
3.文件操作
touch 文件
:创建一个空文件,比如touch test.txt
。
cat [选项] [文件]
:将文件内容输出到屏幕,比如cat /etc/passwd
。
cp [选项] [源文件] [目标文件]
:复制文件,比如
cp /etc/passwd passwd.bak
将文件/etc/passwd复制到文件passwd.bak;cp /etc/passwd testdir
将文件/etc/passwd复制到目录testdir中;cp -r /etc .
将目录/etc复制到当前目录中,选项-r
功能是递归复制文件夹下所有的子目录和文件。
rm [选项] [文件]
:删除文件和目录,比如
rm test.txt
删除文件test.txt;rm -r testdir
使用选项-r
,删除目录testdir。
rmdir [目录名]
删除空目录。
mv [源文件] [目标文件]
:移动文件到指定目录/更改文件名称,比如
mv test.c test.cpp
将文件test.c改名为test.cpp;mv test.c testdir
将文件test.c移动到目录testdir中。
4.vim编辑器
4.1 简介
Linux是Unix系统的一种发行版本。
vi是Unix系统下标准的文本编辑器;vim是vi的升级版本,它在vi的基础上改进和增加了很多特性。
在linux中,可以使用vi或者vim启动vim编辑器。
vim是一个通用的编辑器,支持多种编程语言,可以编辑C/C++/Java/Python/PHP/Shell等程序源代码。
4.2 三种编辑模式
普通模式(Normal mode)
- 控制屏幕光标的移动
- 删除字符或行
- 复制、粘贴
- 查找文本
插入模式(Insert mode)
- 输入字符
- 在命令模式下的命令,作为普通字符被插入到光标当前位置
命令模式(Command mode)
- 替换文本
- 保存文件
- 退出程序
vi启动后,进入普通模式。
在普通模式下,输入键i
,进入插入模式;输入键:
,进入命令模式。
在插入模式和命令模式下,输入键Esc
,返回普通模式。
4.3 使用vim
启动vim
- 命令行中输入
vi
,不带参数启动vi。启动后,vim进入普通模式。 - 命令行中输入
vi test.txt
,带参数启动vi。如果文件test.txt存在,则打开文件test.txt;否则,创建新文件test.txt。启动后,vim进入普通模式。
退出vim
在普通模式下,输入以下命令可以退出vim
命令 | 功能 |
---|---|
:q | 退出 |
:q! | 不保存强制退出 |
相关部分命令如下:
命令 | 功能 |
---|---|
:w(带参数启动vi) | 保存文件内容 |
:wq(带参数启动vi) | 存盘退出 |
:x(带参数启动vi) | 功能与:wq相同 |
:w file(不带参数启动vi) | 将文件内容保存到文件file中 |
:wq file(不带参数启动vi) | 将保存在文件file中,然后退出 |
:x file(不带参数启动vi) | 功能与:wq file相同 |
多种插入方式
vim提供了多种进入插入模式的方式。
命令 | 功能 |
---|---|
i | 在当前光标所在位置插入 |
a | 在当前光标所在位置的右边插入 |
I | 在当前光标所在行的行首插入 |
A | 在当前光标所在行的行尾插入 |
o | 在当前行的下方插入一行 |
O | 在当前行的上方插入一行 |
基本移动
命令 | 功能 |
---|---|
h | 光标向左移动 |
j | 光标向下移动 |
k | 光标向上移动 |
l | 光标向右移动 |
w | 光标向左移动一个单词 |
b | 光标向右移动一个单词 |
快速移动
命令 | 功能 |
---|---|
0 | 光标移动到行首 |
^ | 光标移动到行首的第一个非空格字符 |
$ | 光标移动到行尾 |
gg | 光标移动到文件的第一行 |
G | 光标移动到文件的最后一行 |
Ctrl + d | 光标向下移动半页 |
Ctrl + u | 光标向上移动半页 |
Ctrl + f | 光标向下移动一页 |
Ctrl + b | 光标向上移动一页 |
删除命令
命令 | 功能 |
---|---|
x | 删除当前光标位置处的字符 |
dd | 删除当前行 |
dw | 删除当前光标位置处的单词 |
撤销命令
命令 | 功能 |
---|---|
u | 撤销上一次操作 |
Ctrl + r | 重新执行被撤销的操作 |