bin(binary):存放二进制文件(普通命令)
etc:存放系统配置文件
lib(library):存放库文件
sbin(super binary):存放只有root用户才能使用的命令
usr:存放用户安装的软件包
home:普通用户的家目录
root:root用户的家目录
pro、sys:存放内核信息
dev(device):存放设备文件
/home/test1 /etc/a 绝对路径
cd test1/aa/t1 相对路径
ls 显示文件
ls -a 显示所有文件包括隐藏文件
ls -l 显示文件属性
ls 路径 显示指定路径下的文件 ls -al /usr
cd 路径 进入指定目录
cd 进入家目录
cd ~ 同上
cd - 回到上一次工作路径
cd . 进入当前目录
cd … 进入上一级目录
cp 源路径 目的路径 复制普通文件 cp /etc/vim/vimrc /home/ cp /etc/vim/vimrc .
cp -r 源路径 目的路径 复制目录 cp -r /usr/local/ .
mv 源路径 目的路径 剪切
mv oldname newname 修改文件名 mv vimrc xx
rm -rf 文件名或者目录名 彻底删除 rm -rf xx local/ (xx为文件名 local为目录名)
touch 文件名 添加文件 touch abcd
文件的权限
- rw-r- -r- -
-
表示什么文件(文件、文件夹、链接文件、管道文件)
rw- 当前用户属性
r-- 同组其他用户的权限
r-- 其它用户权限
ls -l abcd 查看属性
-rw-r–r--
(表示0110100100)即644
chmod 764 abcd -rw-r–r--执行后变为 -rwxr–r--
chmod o+w abcd 修改abcd文件其它用户的权限 -rw-r–r--改成了-rwxrw-rw-
mkdir 文件夹名 添加文件夹名称
tar -zcf 压缩名.tar.gz 文件名 文件夹名 压缩文件或者文件夹
tar -xzf 压缩名.tar.gz 解压缩
find /usr/ -name “stdlib.h” 查找文件
grep “eth0” /etc/network -R 找关键字
vim编辑器
vim 文件名创建新文件 (vim 文件名创建后按insert键进入插入模式写文件)
gcc hello.c -o hello (运行文件)
插入模式 a(append) i(insert) ESC退出插入模式
命令模式(打开文件) X删除一个字符 nX删n个字符(n为数字键) U撤销之前的操作 DD剪切一行 nDD剪切n行
P粘贴 YY复制 nYY复制n行 shift+G到最后一行 GG回到第一行
*(shift+8)光标闪烁位置的关键字查找
底行模式 : 进入底行模式 :wq保存退出 :w保存 :q退出 :wq!强制保存退出 数字直接跳到某行
set nonu 去除行号 set nu 添加行号
/进入底行模式(搜索)n向下搜索 shift+n向上搜索 :sp 文件名 打开另一个文件 ctrl+W+W 跳转文件
gcc工具链 可以交叉运行
编译步骤
1、预处理 gcc -E hello.c -o hello.i(处理所有以#开头)
2、编译 语法检查 把C代码变成汇编语言 gcc -S hello.c -o hello.s
3、汇编 gcc -c hello.s -o hello.o 把汇编代码变成二进制文件
4、连接 gcc hello.o -o hello
连接需要用到的其他文件
制作静态库
1、编写main.c f1.c f2.c
2、把f1.c f2.c变成二进制文件 gcc -c f1.c f2.c
3、把.o文件变成静态库 ar -crv libxx.a f1.o f2.o
4、编译主函数
gcc main.c -o main-static -L . -lxx -static
制作动态库
1、编写三个文件f1.c f2.c main.c
2、把f1.c f2.c做成动态库
gcc -fPIC -shared -o libxxx.so f1.c f2.c
3、动态编译main.c
gcc main.c -o main -L . -lxxx
4、把动态库复制到指定目录中
cp libxxx.so /usr/lib
5、执行文件 ./main
make和MakeFile
gbd调试工具
gcc -g main.c -o main.out //生成编译文件
gdb ./main.out //进入gdb 如不行 则删除编译文件重新生成编译文件
l //列出十行源代码 list
start //开始单步调试
p 变量名 //例如:p num //显示变量num的数值
n //跳下一行执行 next
s //进行该行的函数执行 step
Shell使用基础
#!/bin/bash
STR="this is shell script"
echo "hello world"
echo $STR //输出变量 $1表示第一个参数 以此类推
chmod +x 1.sh (设置1.sh拥有执行权限)
./1.sh (执行文件内容)
ps -elf 查看进程
fg 切换前台
ps -elf | grep getpid 查看getpid进程
ctrl+c 结束进程
ctrl+z 切换后台
音乐播放器简单操作
父进程 接收消息
子进程 等待孙进程结束,回收资源
孙进程 播放音乐