linux快速回顾

Posted 五个板栗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux快速回顾相关的知识,希望对你有一定的参考价值。

  • cat  /etc/shells    查看有哪些shell
  • echo $SHELL      查看你当前使用的shell  $表示取环境变量的值  echo回显
  • linux中所见皆文件

bin:存放二进制文件

boot:存放开机启动程序

dev:存放设备文件

home:存放用户

etc:存放用户信息和系统配置文件

lib:存放库文件

root:管理员宿主目录

usr:用户资源管理目录


  • linux系统文件类型

普通文件: -

目录文件:d

字符设备文件:c

块设备:b

软连接:l

管道文件:p

套接字:s


  • 创建软连接 ln -s 原文件 新文件名

linux快速回顾_linux常用命令

  • 创建硬链接 ln  原文件 新文件名

linux快速回顾_静态库_02

linux快速回顾_linux常用命令_03


  • find命令:找文件

-type 按照文件类型查找

-name 按照文件名查找

-maxdepth 指定搜索的深度  -maxdepth 1 一层目录   -maxdepth 2  两层目录

-size 按文件大小搜索    find  /home/hai  -size +20M   -size  -50M

-mtime ctime  atime   amin  mmin  cmin  修改时间 

-exec:将find搜索的结果执行某一指定命令

-ok:以交互式的方式执行某一指定命令

-xargc :将find搜索的结果执行某一指定命令  当结果集数量过大时,可以分片映射

linux快速回顾_linux常用命令_04

linux快速回顾_linux常用命令_05

linux快速回顾_linux常用命令_06


linux快速回顾_linux常用命令_07

linux快速回顾_linux常用命令_08


  • env:查看当前进程环境变量
  • ifconfig:查看ip地址


vim下的常用操作

跳转到指定的行

  1. 15G跳转到第15行 (命令模式下)
  2. :15(底部命令模式下)
  3. gg 跳转到文件首
  4. G跳转到文件尾
  5. L光标移动到最后一行行首
  6. %跳转到代码所对应的括号

删除字符

  1. x:删除单个字符(命令模式下,工作模式不变)
  2. dw:光标置于单词的首字符,删除这个单词
  3. D:删除光标到行尾
  4. d0:删除光标到行首
  5. r:替换单个字符,输入r后再输入替换字符

复制

  1. yy:复制光标后的一行
  2. 10yy复制光标后的十行
  3. 12,46y复制12-46行之间的行

gcc编译可执行程序的4个步骤

  1. 预处理:展开宏和头文件,替换条件编译,删除注释空行等,生成.i文件
  2. 编译:检查语法规范,生成.s文件,消耗时间和系统资源最多
  3. 汇编:将汇编指令翻译机器指令
  4. 链接:数据段合并,地址回填

     gcc常用的参数

  1. -I:指定头文件所在的位置
  2. -c:只做预处理,编译,汇编操作
  3. -g:编译时添加调试语句(需要gdb调试时)
  4. -Wall:显示更多的警告信息
  5. -E:生成预处理文件

静态库(static library)和共享库(shared object)

制作静态库:

  1. 生成.o文件
  2. 使用ar工具制作静态库 ar rcs (参数)libmylib.a(库名) add.o sub.o

linux快速回顾_静态库_09

3.编译静态库到可执行文件中

linux快速回顾_linux常用命令_10

头文件守卫,防止头文件被重复包含

#ifnedef _HEAD_H
#define _HEAD_H
...
#endif

制作动态库

  1. ​将.c生成.o文件(生成与位置无关的代码 -fPIC)
gcc -c add.c -o add.o -fPIC

2.使用gcc -shared 制作动态库

gcc -shared -o lib库名.so  add.o sub.o div.o
file lib库名.so 查看库描述信息

3.编译可执行程序时,指定可使用的动态库 -l指定库名 -L指定库路径

gcc test.c -o a.out -lmymath -L./lib

4.运行可执行程序 a.out  ​会出错

原因:

链接器: 工作与链接阶段,需要-l -L

动态链接器:工作与程序运行阶段,工作时需要提供动态库所在目录位置

通过环境变量来改变

export LD_LIBRARY_PATH=动态库路径
./a.out 成功运行

但这样修改只是临时生效,重启终端环境变量失效,想要永久生效写入配置文件./bashrc 写绝对路径

vi ~/.bashrc
写入export LD_LIBRARY_PATH=动态库路路径
. .bashrc source .bashrc 或重启终端
./a.out

还可以这样做

sudo vi /etc/ld.so.conf
写入动态库绝对路径 保存
sudo ldconfig -v 使配置文件生效
./a.out
ldd a.out 查看


以上是关于linux快速回顾的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用的几个vi小命令

Linux常用命令--sort

Vi 常用命令

linux网络命令快速入门

linux 目录及文件的命名规则ls操作

Linux下的awk用法详解