1.
pwd: 显示当前所在位置的绝对路径
cd 路径 : 切换当前工作位置
cd . : 退回到当前位置
cd .. : 退回到上一层
ls: 默认显示当前位置当前目录下的内容
clear: 清屏 ( 相当于翻页 )
cd ~: 直接进入到当前用户的家目录
cd -: 切换到上一次所在位置 , 在两个位置之间来回切换 ;
mkdir 文件名 : 创建一个目录 ( 文件夹 )
touch 文件名 : 创建一个普通文件
2.文件类型
目录文件 : 文件夹 用 'd' 表示
管道文件 : 用于进程间通信的一种文件 (p)
链接文件 : 相当于 Windows 上的快捷方式 (l)
设备文件 : 字符设备文件 (c), 块设备文件 (b), 套接字 (s)
ls -l: 查看文件的属性信息 :
对于一个文件而言 , 操作它的用户可以分为三类 :
所有者 , 同组用户 , 其他用户
u : (user) 表示文件属主的访问权限 ; g : (group) 表示文件同组用户的访问权限 ;
o : (others) 表示其他用户的访问权限 ;
文件权限如下 :
r : (read) 读权限 , 值为 4
w : (write) 写权限 , 值为 2
x : (execute) 执行权限 , 值为 1
3 修改文件权限 (chmod);
(1) 文字设定法 :
u: 表示属主 (user) g: 表示同组人 (group) o: 其他人 (other) a: 所有人 (all)
+: 表示增加权限 -: 表示去掉权限
例如 : 修改 main.c 文件的所有者权限 :
1). 取消写权限 :chmod u-w main.c
2). 成为可写可读的 chmod u=rw main.c
3). 同时修改 main.c 的属主权限和组用户权限 :chmod u-w,g+x main.c
练习 : 用文字设定法修改文件权限 ;
(2) 数字设定法
采用数字设定法时,权限通常由三位数字组成,每一位数字代表一种角色的权
限。每个角色的数值由其所具有的权限对应的数值之和构成 ;
r : (read) 读权限 , 值为 4(100)
w : (write) 写权限 , 值为 2(010)
x : (execute) 执行权限 , 值为 1(001)
格式 :chmod xxx 文件名
1. 基础命令
(1)pwd: 显示当前位置的绝对路径
(2)cd: 切换目录 :cd 要切换的位置 ( 绝对路径 / 相对路径 )
(3)ls: 显示目录中的文件
ls -l( 简写为 ll, 等价 )
(4)man: 帮助手册
(1) 代表命令
(2) 代表系统调用
(3) 代表库函数
man printf: 查询命令 printf
man 3 printf: 查询库函数 printf
(5)touch: 创建普通文件
(6)mkdir: 创建目录文件
(7)rmdir: 删除空目录 , 不能删除非空目录
(8)cp: 拷贝文件
拷贝普通文件语法 :cp 源文件的路径 + 文件名 目的路径
拷贝目录文件的语法 :cp -r 源目录文件 + 目录名 目的路径 ( 需要加 r )
拷贝 + 重命名的语法 :cp 源文件 + 文件名 目的文件 + 新文件名
(9)mv: 剪切文件
移动普通文件 :mv 源文件的路径 + 文件名 目的路径
移动目录文件 :( 不需要 -r ):mv 源文件的路径 + 文件名 目的路径
mv: 剪切并重命名的语法 :mv 源文件路径 + 文件名 目的路径 + 新文件名
重命名 :mv 源文件的路径 + 文件名 源文件的路径 + 新文件名
(10)rm: 删除文件 ( 删除目录文件 需要加 -r )
rmdir 目录名 : 删除空目录
rm -r 目录名 : 删除非空目录
(11)find : 查找
find 搜索路径 -name 文件名 ( 按文件名搜索 )
find 搜索路径 -cmin -n( 搜索过去 n 分钟内修改的文件 );
find 搜索路径 -ctime -n( 搜索过去 n 天内修改的文件 );
(12)grep: 在文件中过滤出包含指定字符串的行 ;
(vim 先不管
cat: 查看 test 的内容 )
语法 :grep 字符串 文件名
(13) 管道命令 |
将前一个命令的输出结果作为后一个命令的输入
例 1:
touch test.o test.cpp twdoxj.ll testoo.x
ls
ls | grep test
例 2:
ls /bin
ls /bin |grep sh
(14)wc: 统计文件中单词的个数 (-w), 字符的个数 (-c), 行数 (-l)
wc -w 文件名
wc -c 文件名
wc -l 文件名
(15)su: 切换用户
1. 切换为管理员的命令 :sudo su;
退出 :exit
2. 切换为其他用户的命令 :su 用户名 ;
退出 :exit
(16) 关机与重启 shutdown -h now: 立刻关机
halt: 关机
init 0: 关机
shutdown -r now : 立刻重启
reboot: 重启
init 6: 重启
(17)runlevel: 查看系统运行级别
0: 关机
1: 单用户模式
2: 多用户无网络服务
3: 完全的多用户 文本界面
4. 未定义或自定义
5. 图形化界面
6. 重启
(18) 其他命令及小知识点
1.tab 补全 , 按上下键查阅执行过的命令
2.ctrl - 调小窗口
ctrl +shift+ + 调大窗口
3.Ctrl+Alt: 释放鼠标
4.history: 查看终端的所有的历史命令
2. 文件查看命令
(1)cat
1.cat: 查看文件内容
2. 合并文件 :
cat a.txt b.txt > c.txt
3. 往文件中写入数据
cat > ab.c ctrl+d 结束输入
(2)more
more 文件名
( 空格 , 回车 )
(3)less
less 文件名
看完内容之后不会显示到屏幕上
( 上下键 , 翻页键 )
(4)head
显示文件前 n 行
head -num 文件名
默认是 10 行
(5)tail
显示文件后 n 行
tail -num 文件名
, 默认是 10 行
查看日志文件主要用 tail
1. 文件编辑命令
vim 的三种模式
vim 分为三种模式 : 命令模式 , 插入模式 ( 编辑模式 ), 末行模式 ;
(1) 命令模式转为插入模式 :
(4)vim/vi 常用命令 :
n dd: 删除光标开始向下的 n 行 ;
n yy: 拷贝光标开始向下的 n 行 ;
p: 粘贴 ;
u: 撤销上一次操作
ctrl+r: 恢复上一次撤销操作 ;
r: 替换一个字符 ;
shift+6: 光标移动到当前行的开头 ;
shift+4: 光标移动到当前行的末尾 ;
shift+g: 光标移动到文本的最后一行 ;
gg: 光标移动到第一行 ;
n shift +g: 光标移动到第 n 行 ;
d n shift +g: 删除光标到 n 行的内容 ;
y n shitf+g: 拷贝光标到 n 行的内容 ;
(5) 末行模式下的操作 :
:w 保存文本
:q 退出编辑
:wq 保存并退出 :q! 强制退出 ( 不保存退出 )
:w ( 路径 ) 文件名 另存为
:set nu 显示行号
:set nonu 取消行号
:set hlsearch 设置高亮搜索
:set nohlsearch 取消高亮搜索
:n,m s/oldstring/newstring 替换从 n 行到 m 行的第一个 oldstring
:n,m s/oldstring/newstring/g 替换从 n 行到 m 行的所有 oldstring
/string 向下搜索
?string 向上搜索
2) 配置文件的设置方法 :
sudo vi /etc/vim/vimrc
然后将配置选项写入到该文件中末尾 :
set nu
set tabstop=4 按 tab 缩进 4 个空格
set softtabstop=4
set shiftwidth=4 set expandtab
set smartindent 自动缩进
编译链接的四步
(1) 预编译 :
gcc -E main.c -o main.i
(2) 编译
gcc -S main.i -o main.s
(3) 汇编
gcc -c main.s -o main.o
(4) 链接
gcc main.o -o main 执行 : ./main
或者 : 全路径 /main
main.c 通过预编译 生成 main.i 文件
main.i 通过编译生成 main.s 文件
main.s 通过汇编生成 main.o 文件
链接阶段 : 将所有的 .o .a( 静态库文件 ) .lib( 库文件 ) .obj 文件链接起来 , 生成 .out 文件
ELF 格式的可执行文件 .out 文件 (Windows 生成的是 .ext 文件 )
(1) 可以三步合为一步 , 即不经过预编译 , 编译 , 汇编三步 , 直接一步生成 .o 文件 :
gcc -c main.c -o main.o
gcc -o main main.o
(2) 可以四步合为一步 :
gcc -o main main.c
1.gdb 调试
gdb命令
l: 显示 main 函数所在的文件的源代码 list 文件名 :num 显示文件名文件 num 行上下的源代码
b 行号 : 给指定行添加断点
b 函数名 : 给指定函数的第一有效行添加一个断点
info break: 显示断点信息 ;
delete 断点号 : 删除指定断点
r(run): 运行程序
n(next): 单步执行
c(continue): 继续执行 , 直接执行到下一个断点处
s: 进入将要被调用的函数中执行
finish: 跳出函数 ;
q: 退出调试
bt: 显示函数调用栈
disable 断点号 : 将断点设定为无效的 , 不加断点号 , 将所有断点设置为无效
enable 断点号 : 将断点设定为有效的 , 不加断点号 , 将所有断点设置为有效 ;
p val: 打印变量 val 的值
p &val: 打印变量 val 的地址
p a+b: 打印表达式的值
p arr( 数组名 ): 打印数组所有元素的值
*parr@len: 用指向数组的指针打印数组所有元素的值
display: 自动显示 , 参数和 p 命令一样 ;
info display: 显示自动显示信息
undisplay+ 编号 : 删除指定的自动显示
ptype val: 显示变量类型
makefile