linux学习记录

以下是我从毕业工作以来对linux学习记录,方便自己遇到问题时查看。这里只是我的学习记录,最终解释权归我所有。如果你也是从事嵌入式或linux相关工作人员有幸看到这篇文章,那么恭喜你,这篇文章对你没什么用,你可能都看不懂我在巴拉巴拉写的什么玩意。如果你想学习linux相关知识,可以去b站或者b站上面去系统的学习。这里推荐几个我认为不错的linux b站教学:爱编程的大丙、黑马程序员、鸟哥的私房菜linux and so on。linux命令中文查询手册地址:呀呼~ 。努力学习的同时,请你不要忘记生活。古人云:“个小不拉架,人穷不说理。无钱休入众,言轻莫劝人。力微不负重,遇难莫寻亲。待到成功时,把酒言初心”。共勉之,加油。

一、Linux下常用命令

* 表示所有   ? 表示任意

  1. passwd + 用户名 修改密码
  2. 打包并压缩 tar + -cvf + 生成的压缩文件名称.tar   待压缩的文件/文件夹路径

解包tar  + -xvf + 待解压的压缩包   -C  解压后存放路径

.zip文件:zip 生成的压缩文件名称.zip 待压缩的文件/文件夹路径

待压缩的文件中带文件夹:zip  -r 生成的压缩文件名称.zip 待压缩的文件/文件夹路径

解压:unzip 待解压的压缩包 -d  解压后存放路径

压缩/解压 .tar.gz  -zcvf/-zxvf    .gz

压缩.rar:tar -cf xxx.tar 要压缩的路径 解压.rar:

注:f必须在最后一位 gzip模式中z必须为第一位  .tar只打包不压缩   .tar.gz压缩并打包

Linux用.tar/.tar.gz  windows用.zip

  1. ls cd mkdir rm cp mv touch创建文件 top查看系统信息 ps -aux / ps -ef 查看系统进程信息
  2. chmod更改文件所属权限 echo回显 dpkg -l 显示系统已安装软件包信息
  3. pwd 查看当前工作目录的绝对路径 clear 清屏
  4. 查找 find -name 文件名 / locate 文件名  查看命令所在环境变量地址 which 命令
  5. Ctrl + D 或exit退出root模式
  6. mkdir -p创建多级尚不存在的目录文件夹 mkdir -m 创建目录并设置文件夹权限 也可用 chmod
  7. cp -i  a.txt  /home/b.txt复制到home路径下并改名
  8.  rm -rfi 删除 r:递归删除 f:忽略不存在的文件 从不 给出提示 i:交互式删除
  9. cat 查看文件内容 more 分页显示文件内容
  10. locate 文件查找
  11. whereis / which 查找命令所在地址
  12. env 查看虚拟机系统环境变量
  13. set:查看所有的环境变量包括系统环境变量,自定义变量,函数

  1. mkdir -p 创建多级不存在的目录
  2. cp  -r 源路径 目的路径 递归复制(文件夹复制)
  3. 输出重定向:>:覆盖 >>:追加   例:ls -la  > 1.text
  4. df -h 查看磁盘空间
  5. free 查看内存使用情况 free -m以mb为单位查看
  6. wc -lwc 1.text 查看文件信息(行数 单词数 字节数)
  7. 管道
  8. cal日历操作
  9. whoami显示当前登录的用户名 = id -un         who
  10. id 用户名  显示用户信息
  11. hostname 获取服务器主机名
  12. ps  -ef 显示服务器进程信息 keil -9 进程id 强制结束进程
  13. top:查看服务器进程占用的资源   top -i 不显示闲置(idle进程)和无用进程(zombie) 进程 c键:查看详细信息 f键:控制显示的列->空格选中或取消选中 h键:帮助文档 q:退出 M键:按mem排序 P键:按cpu进行排序 T键:按时间排序 i键:控制非活 跃的进程是否显示
  14. du -sh 查看目录/文件的真实大小
  15. df查看磁盘使用情况  df -h以兆的单位显示
  16. iostat:iostat -x显示cpu和磁盘信息
  17. find查找文件  例:find /etc -name *.c 按名字查找 find /opt -type d 按类型查找(d表示文件夹)
  18. kill 进程id 杀死进程
  19. Reboot 重启
  20. halt关机
  21. Shutdown -h now / shutdown -r now 关机/重启
  22. Shutdown 关机 shutdown -h now 立刻关机 shutdown -h 20:30 定时关机 shutdown -c 取消关机   halt 关机
  23. uptime计算机持续运行时间
  24. uname -a获取计算机操作系统相关信息
  25. Netstat -tnlp查看网络连接状态
  26. stat显示文件的详细信息 stat 文件名
  27. export设置或显示环境变量
  28. pstree树形显示进程
  29. 查看二进制文件命令 hexdump /hexdump -C /xxd
  30. PS1=要修改的字符  更改Linux命令提示符
  31. Ldd :查看动态/静态库
  32. Ctrl+shift+c复制 ctrl+shift+v粘贴
  33. 硬链接:ln 要链接的文件 链接到的文件 两文件使用同一片内存空间 id一样
  34. 软连接(符号链接):ln -s 要链接的源文件 链接到的目的文件 两文件使用不同的地址 源文件删除后 链接文件也没用了 ls  -i 查看文件内存id
  35. 通配符 *:代替任意字符  ?:代替单个字符
  36. vmstat 查看虚拟内存
  37. find 搜索目录 -name 文件名  按文件名搜索 使用通配符收缩时加””或’’(双引号或单 号)
  38. find 搜索目录 -type 类型 按文件类型搜索  linux有7种文件类型
  39. find 搜索目录 -size xxx 按文件大小搜索(xxx=4k//(3k,4]   xxx=-4k //(0,4]    xxx=+4k//[4k,正无穷]),find 搜索目录 -size +1k -size -4   [1k,3k]
  40. find 搜索目录 -maxdepth x 其他   按其他目录层级搜索maxdepth :最多 mindepth:x 层级后搜索
  41. find xxxxxxxx | xargs shell命令
  42. grep “xxx” 路径或文件名 参数 在文件中搜索关键字xxx 参数:-i:不区分大小写 -n:显示行号 -r:对目录进行递归处理
  43. 获取主机名:hostname
  44. 修改主机名:hostnamectl set-hostname 修改的主机名
  45. !x:执行最近使用过的以x开头的命令更改系统时间:
  46. rm -rf /etc/localtimer  第一步
  47. ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime 第二步
  48. 查看系统中的环境变量信息:env
  49. 设置临时环境变量:export
  50. 重新读取文件:source
  51. 环境变量永久生效:对当前用户生效目录:~/.bashrc 对所有用户生效:/etc/profile

二、Linux下常用快捷键

Ctrl+a 光标移到命令行行首

Ctrl+e 光标移到行尾

Esc+b  光标移动到当前单词开头

Esc+f  光标移动到当前单词尾

Ctrl+insert 选中后快捷键复制

Shift+insert 粘贴

ctrl+c 中止终端正在执行的任务或删除整行

Ctrl+k/ctrl+u剪切,删除光标到行尾/行首的字符

Ctrl+d 往前删除一个单词

Ctrl+ <-或->左移或右移一个单词

Ctrl+y 粘贴ctrl+k/ctrl+u/ctrl+w删除的文本

Ctrl+r 搜索执行过的命令 然后<-或->键不执行放入命令输入行    回车:执行

Ctrl+g 退出命令搜索

Ctrl+s锁定终端 无法输入任何命令

Ctrl+q 解锁 退出ctrl+s

Alt +tab/alt+shift+tab切换tab

Ctrl + alt+ <-/-> 切换不同工作台

Alt + F10 最大化/最小化窗口

Ctrl+alt+T/ctrl+shift+T/shift+ctrl+n新建窗口

Alt + 1/ 2 / 3... 切换窗口tab

Ctrl+d关闭窗口

单击鼠标滚轮:选中文字    单击鼠标滚轮  将选中的文字复制到光标所在位置

F11全屏

三、Linux下vim操作:

0 或_或^:光标移动到行首

g或$:光标移动到行尾

gg:光标移动到文档头

G: 光标移动到文档尾

x:删除光标所在字符

D/dd:删除光标所在行

/字符串 查找字符串

Linux使用技巧

Ctrl - 缩小 ctrl shift + 放大

Ctrl + insert 复制 shift + insert 粘贴

Vi +n filename     打开文件且光标置于文件第n行

B/b 光标向前移动一个单词

W/w 光标向后移动一个单词

E/e 光标移动到单词尾

数字+G 光标到指定行

数字+上/下方向键 上下移动光标n行

数字+左/右方向键 左右移动光标n个字符

H 光标移动到屏幕顶部

M 光标移动到屏幕中间

L 光标移动到屏幕尾部

z+enter  当前光标所在行回到屏幕顶部

V 进行一行字符选中

v进入字符选中模式

yw 复制光标所在单词

dd 删除光标所在行 下一行上移

D 删除光标所在行 下一行不上移

dw移动光标到单词头 以删除该单词

dG删除光标所在行直到文件末尾

~ 大小写转换

?字符串 从光标所在位置向后查找字符串

i 在光标所在位置插入 光标后的文本向右相应移动

I 在光标所在行的行首插入

o在光标所在行的下一行插入

O 在光标所在行的上一行插入

a在光标所在位置之后插入

A 在光标所在行的行尾插入

删除光标到文件首:d1G  

删除光标到文件尾:dG

Ctrl+v+I+//:注释 ctrl+v+d:取消注释

分屏显示:横/竖屏显示 ctrl + w + s/ctrl + w + v      切换屏:ctrl + w + w

末行模式下输入::sp/vsp 文件名 水平/垂直分屏 :qall退出所有分屏 :wqall保存并退出 所有分屏

使用shell命令分屏;vim -o/-O 文件1 文件2 文件3 水平/垂直分屏

格式化文件:命令行模式下按gg=G

D:删除光标后所在行

d+0:删除光标前所在行

d+$:  删除光标后所在行

关键字搜索:命令行模式    :/xxx 或:?xxx 或搜索光标所在字符串按#

查看系统函数:3+K 光标停在要查询的函数名上

保存退出:wq 或 x

Vim加密文件:末端模式:输入::X ->>>再>>>>>:wq

更换密码:末端模式:输入: :set key=123  取消密码:输入::set key=  (注:不可以在未 解锁的情况下修改密码,会造成死锁)

关键字替换,将A替换为B:末行模式::%s/A/B/g文件全局替换 s/A/B/替换光标所在行

1,9s/A/B/替换1到9行  不带g只替换行的第一个A

末行模式使用shell命令::!ls

打开/关闭语法高亮显示:syntax on/off

四、Linux下GCC使用

  1. gcc *.c  -I 路径   //指定头文件路径编译
  2. gcc *.c -D 宏    //定义宏

生成静态库(linux:libxxx.a    windows:libxxx.lib)

  1. 第一步::生成汇编文件xxx.o:gcc -c XXX1.c XXX2.c
  2. 第二部:利用汇编文件生成静态库:ar rcs libxxx.a *.o
  3. 使用:gcc x.c -o xxx -L 库的路径 -l库的名称 (库的名称要掐头去尾)

动态库(linux:libxxx.so       wionsows:libxxx.dll)

  1. 第一步:生成汇编文件xxx.o:gcc -c -fpic xxx1.c xxx2.c
  2. 第二步:利用汇编文件生成动态库: gcc -shared *.o -o libxxx.so (-shared位置可以任意)
  3. 使用:gcc x.c -L 库的路径 -l库的名称 -o xxx(库的名称要掐头去尾)
  4. Shell命令:ldd xxx:查看xxx可执行文件能否加载到需要的动态库
  5. 解决动态库找不到路径问题:
  6. echo $LD_LIBRARY_PATH
  7. 设置环境变量:LD_LIBRARY_PATH=绝对路径:$LD_LIBRARY_PATH (此设置只对当前终端 有效)
  8. 对普通用户有效:将环境变量放到家目录下的.bashrc中  

让环境变量生效:1.重新打开终端 或2.执行: . ~/.bashrc(命令作用:重新加载配置 文件,.的作用source)

  1. 对root用户生效:放到/etc/profile文件中

生效:. /etc/profile(使用通过)

  1. 方法二:将动态库绝对路径写到/etc/ld.so.conf  后执行:ldconfig(ldconfig -v 查看动态 库信息)(使用通过)
  2. 方法三:使用软连接 ln -s 绝对路径/libxxx.so  /usr/lib/libxxx.so(测试通过)

五、Linux下GDB的使用

  1. 进入gdb调试:①gcc  -g  xxx.c  -o  yyy    ②gdb  yyy        
  2. 打断点: ①b  yyy  ②b 文件绝对路径/xxx.c:行号   b 文件名:行号
  3.  info b 查看断点信息 或i b      d  断点编号:删除断点 d 1-5删除1-5号断点
  4. 设置断点无效:dis 断点号
  5. 设置断点有效: ena 断点号
  6. 设置条件断点:b if i==5
  7.  info r:查看寄存器值
  8. 运行:r或run或start (start命令执行到man函数第1行停住后执行c)只能执行一次
  9. 单步(不近函数体):n
  10. 进入函数内部:s
  11. 跳出函数体:f或finish(函数体内不能有断点)
  12. 跳出循环体:until
  13. 运行到下一个断点:c
  14. 查看函数调用栈:bt
  15. 监视全局变量,变量值改变程序停下:watch 变量名
  16. 什么也不输入,直接回车:执行上一步得命令
  17. 退出GDB调试:quit或q
  18. 设置命令行参数:set args 参数
  19. 查看查看设置的参数:show args
  20. 查看文件代码:l或list 文件名:函数名或行号
  21. 设置list查看代码行数:set list 数量
  22. 查看显示的行数量:show list
  23. 打印变量:打印变量的值 p 变量 打印变量的类型:ptype 变量名
  24. 打印变量只设置一次,以后每次执行到都会执行,自动显示:display 变量名                        取消:undisplay 变量编号//或delete diaplay 变量编号
  25. 设置变量的值:set var 变量名=值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值