Linux学习(未完)

常用命令

  • history 查看历史命令(可以使用上下键查看之前的命令)
  • ls 查看文件信息
    • ls -l 显示详细信息
    • ls -a 显示隐藏信息
    • ls -R 递归显示子目录的内容
    • ls -lrt 按照时间进行排序
    • 通配符
      • *表示任意多个字符
      • ?代表任意一个字符
  • cd change dir 更改目录
    • 回到家目录
      • cd
      • cd ~
      • $HOME
      • 绝对路径
  • pwd 显示当前工作目录
  • mkdir 创建目录
    • mkdir [option] dirname1,dirname2…
  • rmdir 删除非空目录
  • which 显示对应的命令所在路径
    • cd不在任何一个目录,他是shell自带的
  • touch 创建文件–文件存在,更改访问时间,文件不存在,则创建文件
  • rm 删除文件或目录
    • rm -r 递归删除当前目录的全部内容
    • rm -rf 强制删除当前目录的全部内容
  • cp 拷贝文件或目录
    • cp [option] srcpath despath
      • 当despath是目录,将srcpath拷贝到目录下
      • 当despath不是目录,会拷贝内容到文件中
  • mv 移动文件或目录(剪切)
  • cat 显示文件信息(文件信息较少)
  • more和 less 分页显示
    • more 回车–逐行显示
    • more 空格–一页一页显示
    • less 回车或上下方向键可以来回显示
  • head 和tail
    • head 查看文件头,默认显示10行
    • head -n 可以显示指定的行数
    • tail 查看文件尾,默认显示10行
      • -n 可以显示指定行数
      • -f 可以一直跟踪文件末尾
  • tree 树形显示目录结构
  • wc word count (行数、单词数、字节数)
    • -l 显示行
    • -w 单词
    • -c 字节
  • du 显示目录所占的空间大小
    • -h 适合人类观看的方式
    • –max-depth=1 只显示当前路径下的目录的大小
  • df 显示磁盘空间信息
  • ln src des 创建硬链接
  • ln -s src des 创建软连接,目录也可以创建软连接–》相当于创建了一个快捷方式
  • unlink 删除软硬连接
  • chmod 改变文件权限
    • chmod [u|g|o|a] [+|-][r|w|x] filename
  • 用数字的方式改变文件权限
    • 例子 chmod 0664 a.out
    • 注意:目录要有可执行权限才能进入目录
  • whoami:显示一下我是谁
  • chown和chgrp 改变用户和组
    • chown 用户名:组名 文件名|目录
    • chgrp 组名 文件名|目录
  • alias 配置命令别名
  • man 查看帮助手册
查找和检索
  • find命令 find dir [option] 内容
    • -name 按照名字查找 例子:find ./ -name “*.c”
    • -type 按照类型查找 例子: find ./ -type f
    • -size 按照大小查找 例子:find ./ -size +1M -size -5M
      • 最深路径 例子:find ./ -maxdepth 1 -size +1M
    • 查找并查看详细信息
      • find ./ -maxdepth 1 -size +1M -exec ls -l {} \;
      • 安全模式,每一条指令都提示 find ./ -maxdepth 1 -size +1M -ok ls -l {} \;
      • xargs 是find命令的好伴侣:利用管道 find ./ maxdepth 1 -type l |xargs ls -l
  • grep 对内容进行过滤
    • find ./ -maxdepth 1 -type f |grep txt
    • 过滤内容并显示行号: grep -rn “main” *.c
  • umask -S 用文字显示对应文件权限
压缩包管理
  • zip/unzip — zip格式
    • zip -r 压缩包名 原材料 — -r代表递归子目录
    • unzip 压缩包名字
  • gizp和gunzip — zp格式
    • tar —最常用打包工具 .tar.gz
    • -c 压缩文件
    • -v 显示信息
    • -f 指定压缩包名字
    • -z gz格式压缩
    • tar [option] 压缩包名字 原材料 —添加压缩
    • tar zcvf bb.tar.gz bb
    • tar zxvf bb.tar.gz ----解压缩
  • bzip2 格式压缩和解压缩
    • tar jcvf bb.tar.bzip2 bb
    • tar jxvf bb.tar.bzip2
  • rar 格式
    • a 代表压缩
    • -r 递归子目录
    • x 解压缩
    • rar a -r newdir dir
    • rar x newdir.rar
软件的安装和卸载
  • apt-get方式 自动安装软件,需要知道软件名
    • sudo apt-get update 更新源
    • sudo apt-get install 软件名
    • sudo apt-get remove 软件名
    • sudo apt-get clean 清理包
  • dpkg根据deb安装包来安装软件
    • sudo dpkg -i xxx.deb 安装软件包
    • sudo dpkg -r xxx.deb 卸载软件包
  • 源码安装
    • 1.解压源码包
    • 2.cd dir
    • 3./configure 检查文件是否缺失,创建Makefile,检测编译环境
    • 4.make 编译源码,生成库和可执行文件
    • 5.sudo make install 把库和可执行程序,安装到系统目录下
    • 6.sudo make distclean 删除和卸载软件

在这里插入图片描述

补充:文件类型

  • l -->符号连接
  • b -->块连接
  • c -->字符连接
  • p --> 管道设备(pipe)
  • s -->本地套接字

硬链接:注意与cp的区别
在这里插入图片描述

目录

目录表示,存放
根目录/
/bin二进制可执行文件
/boot启动
/liblibrary,存放库
/media挂载设备媒体,U盘,光驱等
/mnt手动挂载
/usrunix system resource 庞大,很多应用会安装在这
/usr/local用户自己安装的软件一般都是安装在这
/sbinsuper binary 超级管理员的可执行程序
/proc系统进程映射,会保留进程的一些信息
/etc系统配置
/dev设备文件目录
/home/usr用户家目录

vim的使用

vi与vim->vim是vi的增强版

  • 查看vim教程:vimtutor

基本操作

命令模式下:

移动光标
在这里插入图片描述

  • 0 行首
  • $行尾
  • gg–文件的开头
  • G–文件的末尾
  • nG–到n行
删除内容
  • x 删除光标所在的字母
  • X 删除光标前的字母
  • dw 删除单词(从光标位置开始删)
  • d0 删除光标到行首
  • d$(D) 删除光标到行尾
  • dd 删除光标所在行
  • ndd 删除光标所在行的n行
  • u 撤销
  • ctrl+r 反撤销
复制粘贴
  • yy 复制一行
  • dd 剪切一行
  • nyy 复制n行
  • p/P 粘贴(注意粘贴位置)
  • r 替换(输入r之后,再输入一个字母)
  • 可视模式
    • v 进入可视模式
    • 移动光标选中内容
    • 按y复制内容
    • 移动光标到目的地
    • 按p/P将内容粘贴
查找操作
  • /srcpattern
  • n/N 进行遍历,注意向前还是向后
  • ?srcpattern
  • n/N 进行遍历,方向与/相反
  • 光标移动到字符串上,按#,也可以查找
格式调整
  • gg=G 文件整体调整格式
  • >> 当前行光标向右移动一个tab
  • << 当前行光标向左移动一个tab
  • n>> 当前行开始n行光标向右移动一个tab
  • n<< 当前行开始n行光标向左移动一个tab
man帮助查看K或n+K

在这里插入图片描述

命令模式变为编辑模式:

  • i 在光标前插入
  • a 在光标后插入
  • I 在行首插入
  • A在行尾插入
  • o 在下一行插入
  • O 在上一行插入
  • s 删除当前字母变为插入模式
  • S 删除当前行变为插入模式

末行模式

  • 执行命令 :! ls -l
    在这里插入图片描述

  • 替换

  • 😒/src/des 只会替换当前行第一个匹配的src为des

  • 😒/src/des/g 只会替换当前行所有的src为des

  • :%s/src/des 只会替换所有行的第一个匹配的src为des

  • %😒/src/des/g 替换文件内所有的src为des
    在这里插入图片描述

  • 保存和退出

    • :wq 保存退出
    • :w 保存
    • :q 只退出,文件不能修改
    • :q! 强制退出
    • :x 保存退出
    • zz 保存退出(命令模式)
  • 分屏

    • 横分 :sp filename
    • 竖分 :vsp filename
    • 退出
      • :q 退出一个文件
      • :qall 全部文件退出
      • : wqall 全部保存退出

gcc

gcc流程
在这里插入图片描述

gcc编译参数

  • I-包含头文件路径(可以绝对路径,也可相对路径)
  • O-优化选项,1-3越高优先级越高
  • L–包含的库路径
  • l–指定库名 libxxx.so—> -lxxx
  • o–目标文件
  • c-编译成.o文件
  • g–用于gdb调试,不加此选项不能进行gdb调试
  • Wall–显示更多警告
  • D–指定宏编译
  • lstdc++ 编译c++代码(g++)
  • E 输出到标准输出,宏替换,头文件展开
  • S编译成汇编

例子:
编译GCC目录代码

gcc add.c -I./include/ -D DEBUG -o app -g -Wall -O1

编译c++代码

gcc hello.cpp -lstdc++ -o cppapp -O

制作静态库和共享库

静态库

静态库的文件命名:libxxx.a----window下的.lib文件
步骤:

  • 生成.o文件
    例子:
gcc -c add.c -I ../include/
  • 再生成libxxx.a文件
ar rcs libCalc.a add.o
  • 可以用nm命令查看生成文件的内容
nm libCalc.a
  • 发布 将头文件和静态库发布即可
  • 使用静态库时候用到-L(指定库路径) 和-l(指定库名)
动态库

制作步骤:

  • 编译与位置无关的代码,生成.o,关键参数-fPIC
gcc -fPIC -c *.c -I ../include/
  • 将.o文件打包,关键参数:-shared
gcc -shared -o libCalc.so *.o
  • 将库与头文件一起发布
    在这里插入图片描述
  • 动态库的使用
    • -L指定动态库路径,-l指定库名
  • 解决不能加载动态库的问题
    • 1.拷贝到系统/lib下—不允许
    • 2.将库路径增加到环境变量LD_LIBARY_PATH中,不是特别推荐
    • 配置 sudo vi /etc/ld.so.conf文件,增加库路径,执行sudo Idconfig -v

优缺总结:
缺点:

  • 执行时需要加载动态库,相对来说比静态库慢
  • 发布应用时需要同时发布动态库

优点:

  • 执行程序体积小
  • 库变更时,一般不需要重新编译应用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值