命令 | 描述 |
---|---|
pwd | 显示当前工作目录 |
ls | 显示目录下的文件和目录 |
cd | 切换目录 |
mkdir | 创建目录 |
touch | 创建文件 |
rm | 删除文件或目录 |
mv | 移动或重命名文件或目录 |
cp | 复制文件或目录 |
cat | 显示文件内容 |
more | 分页显示文件内容 |
less | 类似 more,但是可以向上翻页 |
head | 显示文件开头内容 |
tail | 显示文件末尾内容 |
find | 查找文件或目录 |
grep | 在文件中搜索字符串 |
man | 显示命令的帮助信息 |
history | 显示历史命令 |
alias | 设置命令别名 |
unalias | 删除命令别名 |
# ls
ls -a : 显示所有文件,包括隐藏文件
ls -l: 显示详细信息,包括文件权限、所有者、大小、修改日期等
ls -lh : 以可读方式显示文件大小
ls -R: 递归显示所有子目录下的文件
# 文件权限:
- r: 可读
- w: 可写
- x: 可执行
- -: 没有权限
# cd
cd … : 切换到上级目录
cd / : 切换到根目录
cd ~ : 切换到用户主目录
cd - : 切换到上一次所在目录
# touch
touch 命令的两个功能:
- 创建一个空文件
- 修改一个已经存在的文件的时间戳
touch file1 file2 : 创建两个空文件
touch -t 202410011222.00 file3 : 修改 file3 的时间戳为 2024 年 10 月 1 日 12 点 22 分 00 秒
# mkdir
mkdir dir1 dir2 : 创建两个目录
mkdir -p dir1/dir2 : 创建多层目录
mkdir -m 777 dir3 : 创建目录并设置权限为 777
rmdir dir1 : 删除空目录 (有内容的删不了)
选中按滚轮快速粘贴
# rm
rm file1 file2 : 删除两个文件
rm -r dir1 : 递归删除目录及其内容
rm -i file1 : 删除前询问确认
rm -f file1 : 强制删除文件,无需确认
# cp
CP 命令作用:
- 复制文件或目录
- 复制多个文件或目录到一个目录
- 复制整个目录树
cp file1 file2 : 复制 file1 到 file2
cp -r dir1 dir2 : 递归复制 dir1 到 dir2
cp -a dir1 dir2 : 复制整个目录树,包括所有文件、目录、权限、属性等
cp -i file1 file2 : 复制文件前询问是否覆盖同名文件确认
cp -u file1 file2 : 复制文件,但不覆盖目标文件,如果目标文件比源文件新才复制
cp -v file1 file2 : 复制文件时显示详细信息
*cp .txt dir1 : 复制当前目录下所有 txt 文件到 dir1 目录 (后缀通用)
# mv
mv 重命名文件或移动文件到指定目录,可以同时移动多个文件或目录到指定目录。
mv file1 file2 : 重命名 file1 为 file2
mv file1 dir1 : 移动 file1 到 dir1 目录
# hello world
在终端中使用 ubutu 的自带文本编辑器 gedit 新建一个.c 文件并打开
#include <stdio.h> | |
int main() { | |
printf("Hello, world!\n"); | |
return 0; | |
} |
保存为 hello.c
- 方法一:gcc hello.c -Wall
运行后默认生成可执行文件 a.out,运行./a.out 即可输出 Hello, world!(这样每次运行会覆盖之前的 a.out) - 方法二:gcc hello.c -o hello -Wall
运行后生成可执行文件 hello,运行./hello 即可输出 Hello, world!
# vi 操作基础
命令 | 描述 |
---|---|
i | 进入编辑模式 |
ESC | 退出编辑模式 |
:wq | 保存并退出 |
:q! | 强制退出不保存 |
:set nu | 显示行号 |
:set nonu | 隐藏行号 |
gg | 移动到文件开头 |
G | 移动到文件末尾 |
nG | 移动到第 n 行 |
/ 关键字 | 向下搜索关键字 |
? 关键字 | 向上搜索关键字 |
n | 重复上一次搜索 |
N | 反向重复上一次搜索 |
u | 撤销 |
Ctrl+r | 重做 |
dd | 删除当前行 |
ndd | 删除 n 行 |
yy | 复制当前行 |
nyy | 复制 n 行 |
p | 粘贴 |
x | 剪切当前字符 |
nx | 剪切 n 个字符 |
:set paste | 进入粘贴模式 |
:set nopaste | 退出粘贴模式 |
:%s/old/new/g | 替换当前行所有 old 为 new |
:%s/old/new/gc | 替换当前行所有 old 为 new,并询问是否替换 |
在 Linux 的 ubuntu 系统中,在终端,编译多个文件的命令如下:
gcc -o a.out file1.c file2.c file3.c
如果有多个文件,只有一个文件要生成,且包括.c 和.h 文件,则可以这样写:
gcc -o a.out *.c
这样,编译器会自动搜索当前目录下所有的.c 文件,并生成可执行文件 a.out。
最好用的也可以用 makefile 文件一步到位