【Linux复习】:基础指令/常用工具
基础指令目录相关pwd打印当前所在路径ls列出目录内容ls # 简单列表 ls -l # 详细信息权限、大小、时间 ls -a # 显示隐藏文件 ls -la # 详细 隐藏 ls -lt # 按时间排序cd切换目录cd /home # 绝对路径 cd .. # 返回上一级 cd ../.. # 返回上两级 cd ~ # 回家目录 cd - # 返回上一次所在目录文件相关touch创建空文件 / 更新文件时间touch test.txtmkdir创建文件夹mkdir test mkdir -p a/b/c # 递归创建多级目录rm删除文件 / 文件夹危险rm file.txt # 删除文件 rm -r dir # 删除文件夹 rm -rf dir # 强制删除不询问cp复制文件 / 目录cp a.txt b.txt cp -r dir1 dir2 # 复制目录必须加 -rmv移动 / 重命名mv a.txt b.txt # 改名 mv a.txt ../ # 移动到上一级文件查看相关less分页查看大文件最强less test.cpp快捷键上下键 滚动/字符串 向下搜索?字符串 向上搜索n 下一个匹配N 上一个匹配q 退出常用选项less -N test.cpp # 显示行号 less -i test.cpp # 忽略大小写head看文件前 N 行head test.cpp head -n 20 test.cpptail看文件末尾实时监控日志tail test.cpp tail -n 20 test.cpp tail -f test.log # 实时刷新监控日志必备find在系统里找文件find 从哪搜 -按什么搜 搜什么例子find ~ -name *.hpp find / -name test.cpp find . -type f # 只找文件 find . -type d # 只找目录grep在文件里搜索字符串最强文本工具grep “main” test.cpp常用grep -n main test.cpp # 显示行号 grep -i Main test.cpp # 忽略大小写 grep -v main test.cpp # 反向匹配不要main压缩相关zip / unzipzip test.zip file1 file2 zip -r test.zip dir/ unzip test.zip unzip test.zip -d /tmp # 解压到指定目录tar最常用打包压缩tar -czvf test.tar.gz dir/c 创建z gzip 压缩v 显示过程f 指定文件解压tar -xzvf test.tar.gz tar -xzvf test.tar.gz -C /tmp # 解压到指定目录ps查看进程ps aux ps aux | grep nginxkill杀死进程kill pid kill -9 pid # 强制杀网络相关netstat查看端口占用netstat -natp netstat -natp | grep 8080IPC相关ipcs查看共享内存 / 消息队列 / 信号量ipcs ipcs -m # 只看共享内存 ipcs -q # 只看消息队列ipcrm删除 IPC 资源ipcrm -m shmid ipcrm -q qid系统资源相关top实时监控系统任务管理器topfree看内存free -hdf看磁盘挂载df -hdu看文件 / 目录大小du -sh . du -sh *权限相关su切换用户su root su userchmod修改文件权限chmod 777 file chmod 644 file chmod x file # 加执行权限chgrp修改所属组chgrp user file常用工具一、Vim 编辑器Linux 必备文本编辑器核心三大模式所有操作必须牢记模式切换默认打开是普通模式按 i 进插入模式按 : 进底行模式按 Esc 退回普通模式。普通模式默认模式功能控制光标移动、删除、复制、粘贴、撤销、剪切核心快捷键分类 ---------------- 命令--------------- 作用光标移动--------- h j k l ------- 左、下、上、右方向键替代光标移动--------- gg----------- 跳转到文件第一行光标移动--------- G------- 跳转到文件最后一行删除 ----------------dd --------------删除整行删除 ---------------5dd- -----------删除5 行数字 dd复制 -----------------yy -----------复制整行复制 ------------------3yy -----------复制3 行粘贴--------------- p --------------粘贴到光标下一行撤销--------------- u --------------撤销上一步操作反撤销 ------------------Ctrl r------------ 恢复撤消剪切 --------------------dd p------- 删除行 粘贴 剪切插入模式功能输入 / 编辑文字像记事本一样打字进入方式i在光标前插入a在光标后插入o在光标下一行新建行插入底行模式功能保存、退出、搜索、显示行号、文本替换核心命令命令 作用:w 保存文件:q 退出文件:wq 保存并退出:q! 强制退出不保存:set nu 显示行号:set nonu 取消行号/字符串 向下搜索字符串?字符串 向上搜索字符串n/N 下一个 / 上一个搜索结果二、gcc/gC/C 编译器核心程序编译的 4 个阶段源文件 .c → 预处理 → 编译 → 汇编 → 链接 → 可执行文件阶段--------- 命令----- 作用-------- 输出文件预处理 ------gcc -E ----宏替换、头文件展开、去注释、条件编译 .i文本编译 --------gcc -S ----检查语法翻译成汇编语言 .s汇编汇编 --------gcc -c ----汇编转二进制机器码不可独立运行 .o目标文件链接 ----------gcc------ 合并库文件生成可执行文件 可执行程序完整示例# 1. 预处理 gcc -E hello.c -o hello.i # 2. 编译 gcc -S hello.i -o hello.s # 3. 汇编 gcc -c hello.s -o hello.o # 4. 链接生成最终程序 gcc hello.o -o hello两种链接方式① 静态链接-static原理把库文件代码直接拷贝到可执行程序中优点运行不需要依赖库文件移植方便缺点程序体积大浪费空间② 动态链接默认原理程序运行时动态加载库文件优点程序体积小多个程序共享库缺点运行必须依赖库文件静态库 / 动态库 生成与使用① 静态库.a生成# 1. 生成.o二进制文件 gcc -c add.c sub.c # 2. 打包成静态库 libxxx.a ar -rc libmymath.a add.o sub.o② 动态库.so生成# 1. 生成与位置无关的.o文件 gcc -fPIC -c add.c sub.c # 2. 生成动态库 libxxx.so gcc -shared -o libmymath.so add.o sub.o③ 库的使用核心参数gcc test.c -I ./include -L ./lib -l mymath -o test-I指定头文件路径-L指定库文件路径-l指定库名称去掉lib和.a/.so3. gcc 核心选项速查选项 ----作用-E 仅预处理-S 仅编译到汇编-c 仅汇编到二进制-o 指定输出文件名-g 生成调试信息gdb 调试必备-static 强制静态链接-fPIC 生成动态库专用的位置无关码-shared 生成动态库三、gdbLinux 程序调试工具调试前提必须用 gcc -g 编译嵌入调试信息否则无法调试gcc test.c -o test -g启动 gdbgdb ./test核心调试命令命令 简写 作用run r 直接运行程序start - 逐行调试停在第一行next n 逐过程调试不进入函数step s 逐语句调试进入函数内部break 行号 b 设置断点info break i b 查看所有断点delete 断点号 d 删除断点print 变量 p 查看变量值bt - 查看函数调用栈quit q 退出 gdb四、make自动化编译工具作用解决多文件编译繁琐的问题通过 Makefile 脚本一键编译整个项目。Makefile 核心规则makefile目标: 依赖文件命令必须以Tab开头极简示例makefile test: main.c add.c sub.c gcc main.c add.c sub.c -o test clean: rm -f test使用make # 一键编译 make clean # 清理可执行文件原理只编译修改过的文件大幅提升编译速度大型项目nginx、mysql必备工具五、git分布式版本控制工具核心作用管理代码版本回滚、备份、对比多人协作开发GitHub/Gitee三大区域工作区写代码的地方暂存区临时保存代码本地仓库永久保存版本远程仓库GitHub/Gitee 云端仓库最常用命令表格命令 作用git init 初始化本地仓库 git clone 仓库地址 克隆远程仓库到本地 git add 文件名 将文件添加到暂存区 git add . 添加所有文件到暂存区 git commit -m 备注 提交到本地仓库 git push 推送到远程仓库 git pull 拉取远程代码到本地 git status 查看文件状态 git log 查看提交历史 git branch 查看 / 创建分支 git checkout 分支名 切换分支标准工作流程git clone https://xxx.git # 克隆代码 git add . # 添加文件 git commit -m 完成功能 # 提交本地 git push # 推送到远程
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2476587.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!