vim三种模式:
-
命令模式
刚启动便进入的模式,此时按下按键并不会被当作字符输入,而是一个命令
常用命令
- i:切换到输入模式
- x:删除当前光标所在处的字符
- ::切换到底线命令模式,以在最底一行输入命令
-
输入模式
-
底线命令模式
在命令模式下按下(:)英文冒号进入底线命令模式
q:退出程序
w:保存文件
| 切换模式 | 说明 |
|---|---|
| i I | 进入输入模式,i从目前光标处输入, I从目前所在行的第一个非空格字符处输入 |
| a A | 进入输入模式,a从目前光标所在的下一个字符处开始输入,A从目前光标所在行的最后一个字符开始 |
| o O | o从目前光标所在的下一行处输入新的一行 O从目前所在光标处的上一行输入新的一行 |
| r R | r取代光标所在的那一行字符一次 R会一直取代光标所在的文字,直到按下ESC为止 |
| 按键 | 说明 |
|---|---|
| h或者向上箭头 | 向左移动光标 |
| j或者向下箭头 | 向下移动光标 |
| k或者向上箭头 | 向上移动光标 |
| l或者向右箭头 | 向右移动光标 |
| ctrl + f | 向下移动一页 |
| ctrl + b | 向上移动一页 |
| n+number+enter | 向下移动多少行 |
| number+n | 移动到第n行 |
| 0 | move to the first character of this line |
| $ | move to the last character of this line |
| G | 移动到这个文件到最后一行 |
| gg | 移动到文件到第一行 |
| /word | 在光标之下搜索名称为word的字符 |
| ?word | 在光标之下寻找名称为word的字符 |
| 在前两个命令之后输入n | 重复前一个搜索工作 |
| 在/word或?word之后输入N | 反向进行前一个搜索工作 |
| 删除,复制与粘贴 | 说明 |
|---|---|
| x X | 在一行字中x为向后删除一个字符,X为向前删除一个字符 |
| number+x | 连续向后删除n个字符 |
| dd | 剪切光标所在的一整行,用p/P粘贴 |
| number+dd | 剪切光标向下的n,用p/P粘贴 |
| yy | 复制光标所在的那一行 |
| number+yy | 复制光标所在的向下n行 |
| p P | p將已复制的数据在光标下一行粘贴 P將已复制的数据在光标上一行粘贴 |
| d1G | 删除光标所在到第一行的所有数据 |
| dG | 删除光标所在到最后一行的所有数据 |
| d$ | 删除游标所在处到改行到最后一个字符 |
| d0 | 删除游标所在处到该行的最前面一个字符 |
| 切换模式 | 说明 |
|---|---|
| :w | 把编辑的数据文件写入硬盘中 |
| :w! | 当文件为只读时 强制写入 |
| :q | 退出vim |
| :q! | 不储存退出 |
| :wq | 储存后退出 |
通过ls命令查看Linux文件夹中包含的文件,文件权限(包括目录、文件夹、文件权限),查看目录信息
| 命令 | 说明 |
|---|---|
| ls -a | 列出文件所有文件,包含以.开始的隐藏文件 |
| ls -A | 列出除.以及..的其他文件 |
| ls -r | 反序排列 |
| ls -t | 以文件修改时间排序 |
| ls -S | 以文件大小排序 |
| ls -h | 以易读大小显示 |
| ls -l | 显示除文件名之外,还列出文件权限、所有者、文件大小等信息 |
命令语法:cd [目录名]
| 命令 | 说明 | 实例 |
|---|---|---|
| cd /文件地址 | 进入目标目录 | cd /etc |
| cd ~ | 进入home文件 | |
| cd - | 进入上一次工作路径 | |
| cd !$ | 把上个命令的参数作为cd参数使用 | |
| cd .. | 跳转至上层目录 | |
| cd ../.. | 返回上两层目录 | |
| cd | 切换到主目录 |
pwd用于查看当前工作目录路径
| 命令 | 说明 |
|---|---|
| pwd | 查看当前路径 |
| pwd -P | 查看软链接的实际路径 |
mkdir用于创建文件夹
| 命令 | 说明 | 实例 |
|---|---|---|
| mkdir -m | 对新建目录设置存储权限 | |
| mkdir -p | 连续创建多层目录 | mkdir -p /home/xu/test/c/template |
删除一个目录中的一个或多个文件或目录
| 命令 | 说明 | 实例 |
|---|---|---|
| rm [选项] 文件名 | 删除文件 | |
| rm -i 文件名 | 删除文件时逐一询问确认 | rm -i test |
| rm -rf 文件名 | 删除文件及子目录及子目录中的所有文档,并且无须确认 | rm -rf test |
| rm -f | 强制删除,无须确认 | |
| rm -r | 删除目录 |
用于删除空目录
| 命令 | 说明 | 实例 |
|---|---|---|
| rmdir -p | 递归删除 | rmdir -p parent/child/child1 |
显示文件内容
| 命令 | 说明 | 实例 |
|---|---|---|
| cat filename | 显示filename文件内容 | cat test.py |
| cat > filename | 新建一个filename的文件,不能编辑现有文件 | cat > test.c |
| cat file1 file2 > file | 将file1和file2合并为一个文件 | |
| cat -n | 输出所有行号 | |
| cat -b | 对非空数据输出行号 |
用于修改Linux系统文件或目录的权限
chmod修改文件权限的两种方式
-
字母法
chmod+设置模式+文件名:chmod (u g o a) (+ - =) (r w x) (文件名)
[u g o a] 说明 u user表示该文件的所有者 g group表示该文件的所有者属于同一组(group)者,即用户组 o other表示其他组 a all 表示三者全是 [+ - =] 说明 + 增加权限 - 撤销权限 = 设定权限 [r w x] 说明 r read表示可读取,若没有r权限,不能通过ls查看该目录内容 w write表示可写入,若没有w权限,不能在该目录下创建新文件 x excute表示可执行,若没有x权限,不能通过cd进入该目录 用法:chmod+设置模式+文件名
中间的设置模式要分别对u(user),g(group),o(other)设置权限,这三者互相独立,互不干扰
例:chmod u+rwx,g+rwx,o+rwx filename
-
数字法
chmod+数字组合+文件名
数字组合包含三个数字,第一个数字对应u(user)的权限,第二个数字对应g(group)的权限,第三个数字对应o(other)的权限
r->4 w->2 x->1
例:chmod 777 文件名
将指定文件的拥有者修改为指定的用户或组
用以压缩和解压文件,tar本身不具有压缩功能,只具有打包功能,有关压缩和解压是调用其他功能以实现
用于查看当前运行的进程状态
| 进程的状态 | 标识码 |
|---|---|
| 运行(正在运行或在运行队列中等待) | R |
| 中断(休眠中,受阻,在等待某个条件的形成或接受到信号) | S |
| 不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生) | D |
| 僵死(进程已终止,但进程描述符仍存在,直到父进程调用wait4(系统调用后释放)) | Z |
| 停止(进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止运行) | T |
| 命令 | 说明 | 实例 |
|---|---|---|
| ps -A | 显示所有进程 | |
| ps a | 显示所有进程 | |
| ps -a | 显示同一终端下所有进程 | |
| ps c | 显示进程真实名称 | |
| ps e | 显示环境变量 | |
| ps f | 显示进程间的关系 | |
| ps r | 显示当前终端运行的进程 | |
| ps -aux | 显示所有包含其他使用的进程 | |
| ps -ef | 显示当前所有进程环境变量及进程间关系 | |
| ps -aux | grep apache | 与grep联用查找某进程 |
grep命令是一个强大的文本搜索工具,使用全局正则表达式搜索文本,并把匹配项打印出
命令格式 grep [option] apttern file|dir
编译的四个阶段
- 预处理:编译处理宏定义等宏命令,生成后缀是".i"的文件
- 编译:将预处理后的文件转为汇编语言,生成后缀是".s"的文件
- 汇编:由汇编生成的文件翻译为二进制目标文件,生成后缀是".o"的文件
- 链接:多个目标文件(二进制)结合库函数等综合成的能直接独立运行的执行文件,生成后缀是".out"的文件
| gcc命令 | 含义 | 案例 |
|---|---|---|
| -E | 仅做预处理,不执行编译、汇编和链接 | gcc -E test.c -o test.i |
| -S | 仅编译到汇编语言,不进行汇编和链接 | gcc -S test.i -o test.s |
| -o | 执行命令后生成文件的命名 | gcc -o test.out |
| -c | 编译、汇编到目标代码(即二进制) | gcc -c test.s -i test.o |
| -g | 生成调试信息 | |
| -w | 不生成任何警告 | |
| -Wall | 生成所有警告 |
Linux树状目录结构
- /bin:
- /boot:存放启动Linux的核心文件,
