Linux指令
系统关机指令
- shutdown: 安全地将系统关机
- halt: 调用shutdown -h (halt means stop)
- reboot: 工作过程差不多跟halt一样,不过是引发主机重启
- poweroff: halt的软链接
- init: 所有进程的祖先,它的进程号始终为1,init 0为关机,init 1为重启
查看文本
- cat
- tac (cat的反向指令,从最后一行倒叙显示全部内容)
- sed
- head
- tail
- more
- less
- nl (cat -n 显示时输出行号)
mount 挂载linux系统外的文件
命令格式 mount [-t vfstype] [-o options] device dir
如 mount -t nfs 192.168.0.1:/tmp /mnt/nfs
lsusb 显示系统中以及连接到系统的USB总线信息的工具
列出USB详细信息 lsusb -v
列出有多少USB设备 find /dev/bus
打印特定设备的详细信息 lsusb -D /dev/bus/usb/008/002
lsof 列出当前系统打开文件的工具
1 | $ sudo lsof |
linux软件开发知识点
linux进程间通讯方式:
- 管道(pipe)及有名管道(named pipe)
- 信号(Signal)
- 报文(Message)队列(消息队列)
- 共享内存
- 信号量(semaphore)
- 套接口(Socket)
内存申请函数
- alloc 向栈申请内存,不用释放内存
- calloc
- malloc 向堆申请内存,需要释放
- realloc
linux内存分配
内存区 | 存放数据 | 备注 |
---|---|---|
静态存储区 | 静态数据、全局数据、常量 | 在程序编译的时候就已经分配好 |
栈 | 局部变量、函数参数 | 栈内存分配运算内置于处理器的指令集中(push),效率很高,但是分配的内存容量有限 |
堆区 | malloc申请的内存 | 动态内存分配,需要手动释放,会出现内存泄露风险 |
代码区 | 代码 | 存放函数体的二进制代码 |
文字常量区 | 常量字符串 | 程序结束后由系统释放 |
gcc编译过程
- 预编译 生成*.i
- 编译 生成*.s
- 汇编 生成*.o
- 链接 可执行文件