Linux基础指令

  • 基本概念

1.谈到linux,最先想到,linux和window有什么区别呢?

linux是一个多用户操作系统,多用户同时操作,但都有各自访问权限

linux下一切皆文件,文件夹也只是一个目录类型的文件而已

linux下的目录结构与磁盘分区的关系:目录结构唯一,是一个树形结构,最底层是一个根目录;可以将磁盘分区挂载在目录上给目录分配空间,即给一个指定的目录单独分配一块存储空间

window与linux不同,window的目录结构为一种磁盘分区以及分配目录结构的方式,即每一个单独空间都有一定的目录结构

2.文件所在位置的路径表示

绝对路径:路径以根目录作为起始

相对路径:路径以当前所在目录作为起始

  • 目录相关指令:

基础指令的格式:命令名称 【操作选项】 【操作对象】

(1)ls  浏览当前目录,查看当前目录下内容

目录就是常说的文件夹,打开一个新的终端,默认会处于一个目录中,这个目录就是当前登录用户的家目录

ls -l 查看文件中详细内容信息

ls -a查看隐藏文件

文件类型并不以文件后缀区分,后缀只是便于用户区分的一种标记而已

linux下以.符号作为起始的文件名都是预测文件

ls -la 组合选项,查看包含隐藏文件在内的所有文件详细内容信息

(2)man 手册查看  man ls   按q退出 

(3)pwd 显示当前所在目录的路径    

.   表示当前目录自身

..  表示是当前目录的父目录

(4)mkdir 创建目录

mkdir -p  递归多层级创建目录   如果那一层不存在就创建那一层

(5)rmdir 删除空目录 如果删除目录中存在需要删除的文件夹  删除一般不采用rmdir  而是使用rm删除

rmdir -p  删除目录的同时将父目录删除

(6)rm  删除文件或目录(默认只能删文件,不能删目录)

rm -r 递归的删除掉目录中所有文件之后,然后再删除目录自身

rm -f 忽略提示信息直接进行操作

(7)cp 拷贝一个文件到指定位置

cp -r 递归拷贝目录中所有文件到制导位置

(8)mv 将一个文件移动到另一个位置(剪切)

(9)cd 进入指定的目录(改变当前的工作路径)

  • 文件相关指令:

(1)touch +文件名  刷新文件的时间属性,如果指定文件不存在则创建这个文件

在linux下,一个文件有三种时间属性: 访问时间、修改时间、状态改动时间
    访问时间: 记录文件最近被阅读的时间(vim,cat,more等命令都能修改该值)。
    修改时间: 记录文件最近被修改的时间(ls -l命令显示的时间即为该时间)。
    状态改动时间: 记录该文件的inode节点被修改的时间。touch命令除了-d和-t选项外都会改变该时间。而且chmod,chown等命令也能改变该值。

(2)cat 打印文件内容(常用于查看短小的文件内容,直接在终端上打印)

(3)more 分页显示文件内容 

空格:向下翻页     回车:向下按行滚动       q:退出

(4)less 分页显示文件内容

进入后:按f/b上下翻页      j/k按行滚动      匹配查找字符串:/ + str向下查找      ?+ str 向上查找      按q退出

(5)head 显示文件的前n行内容   默认前10行

也可以指定行数: head -n 3 +文件名   显示前3行内容

(6)tail 显示文件的末尾n行内容   默认末尾10行

也可以指定行数: tail -n 3 +文件名   显示末尾倒数3行内容

(7)head 和tail混合使用   通过管道符  实现显示文件  第10行内容

head -n 10 文件名 |  tail -n 1

管道符:连接两个命令,将前边命令的处理结果,交给后边命令继续处理

  • 打包相关指令:

三种压缩方式:

(1)zip/unzip:

zip test.zip  file1  file2...

unzip test.zip

(2)gzip/gunzip:

gzip test.gz  file1  file2...

gunzip test.gz

(3)bzip2/bunzip2:

bzip2 test.bz2  file1  file2...

bunzip2 test.bz2

常用打包压缩指令:

tar  对多个文件或文件夹进行打包/解包,并且可以进行压缩/解压缩

tar -c:打包    tar -x :解包

-z:按照gzip格式压缩/解压缩    -j:按照bzip2格式压缩/解压缩

即:tar -czvf 打包压缩     tar -xvf 解包解压缩

  • 匹配查找指令

(1)grep 在指定文件中匹配包含指定字符串的行

-n  显示匹配到的包含指定字符串的行在文件中的行号

-R  在指定目录中对所有文件逐个进行字符串匹配

-v  匹配不包含指定字符串的行

-i  忽略大小写进行匹配

(2)find 在指定的目录中查找符合指定规则的文件

-name 通过文件名查找文件

-size +/-[cbkMG]通过文件大小查找文件   根据文件大小  +表示大于该大小的文件   -表示小于该大小的文件

-type 通过文件类型查找文件

-amin/-mmin/-cmin   -ctime/-atime/-mtime  按照时间查找文件(min是分钟  time是天  a是访问时间  m是内容修改,c是文件变更(权限,位置变更))

  • 权限指令

(1)su username  切换用户

(2)sudo 对当前用户的这次操作进行提权

(3)u文件所有者   g文件所属组   o其他用户

        r可读【可浏览】  r可写【在目录中创建删除文件  文件内容修改】 w可执行  【可进入】

(4)umask 查看或设置权限掩码    umask  002   对应权限  775

默认在shell中文件创建权限  掩码取反  或 777-usmask

(5)chmod 修改文件权限

(6)特殊权限:沾滞位  目录文件针对其他用户的一个权限

每个人只能在目录中创建文件或删除自己的文件,不能删除别人的文件

(7)chown 修改文件所有者  chown  root   file

linux基础工具

  • yum安装工具

1,yum makecache命令:将服务器的软件包信息缓存到本地

2,yum  search命令:在所有软件包中搜索指定名称的软件包

3,yum  upgrade/update命令:更新所有软件包(二者区别不大)

4 ,yum  clear all  命令:清除缓存中所有软件包

5,yum install命令:      安装

6,yum remove命令:    卸载

  • 编辑器  vim

(1)普通模式:完成文本操作,光标移到,其他指令操作

光标移动: hjkl-左下上右; ctrl+f/b-上下翻页; gg/G-文档首行、尾行跳转
内容操作∶复制: yy/nyy,粘贴: p/np;剪切删除: dd/ndd--删除行,x-删除光标所在字符, dw-删除单词其他操作:撤销-u,反向撤销-ctrl+r;全文对齐-gg=G

(2)插入模式  i   插入数据

(3)底行模式:保存退出文件  Esc->  : wq    :q   :q!(强制退出)

注意:一个文件保存常出现的bug提示:

vim打开一个文件后,通常会创建一个临时文件以.sw*结尾
vim打开文件后,创建临时文件,编辑的时候会修改这个临时文件,只有在保存的时候,才会将修改的信息,写入到源文件中
注意:正常退出vim的时候会删除临时文件并且在文件没有正常关闭退出vim时,这个临时文件不会被删除每次打开源文件的时候都会有提示信息,这时候退出,
使用ls -a查看隐藏文件,删除掉这个交换文件以后就不会有提示了

  • 编译器

(1)编译阶段:

预处理阶段:展开所有代码(引入头文件,宏替换,删除注释......
编译阶段:检查语义语法错误;如果没有错误则将C语言解释成为汇编语言

汇编阶段:将汇编代码解释成为二进制的cpu指令
链接阶段∶将所有的指令代码打包到一起(不仅是打包我们自己的代码,还有链接库文件中的库函数指令代码),进行组织为可执行文件

(2)gcc编译器指令

gcc:C语言编译器、g++:C++语言编译器
-E只进行预处理;-S只进行编译处理;-c只进行汇编处理-О指定输出文件名称

(3)动态链接库/静态链接库

动态链接︰链接动态库生成可执行程序,并没有把库中函数的实现指令直接拿过来写入可执行程序中,而是在可执行程序中记录了库中函数的符号信息
表,在运行可执行的时候需要去加载动态库到内存中。如果动态库不存在,则程序无法运行

动态链接的优缺点:生成可执行程序比较小,运行时动态库被加载到内存中,可以多个程序使用同一份内存中库函数代码;缺点是运行时需要依赖动态库的存在,不存在则无法运行    gcc编译器采用了动态链接库

静态链接∶链接静态库生成可执行程序,直接将库中我们用到的函数的实现代码指令,写入到了可执行程序文件中,程序运行的时候没有什么依赖

静态链接的优缺点:程序运行没有其他依赖,可以直接运行;但是可执行程序比较大,并如果多个程序使用同一个库中的函数,则这些程序同时运行时,则相同的库函数代码在内存中会存在多份,各是各的。

  • gdb调试器

目的:为了排查程序的运行错误

程序的错误分类:编译错误,链接错误,运行时错误(运行中逻辑不对以及程序运行时崩溃)

调试程序的前提:程序必须是一个debug版本,gcc/g++默认生成release版本,  -g选项  生成debug可调式版本

gdb常用调试指令:gdb  ./test.exe

流程控制:

r    run :直接运行程序

    start:开始逐步调试

l   list:查看调试行附近代码  

n  next:下一步--逐过程--遇到函数直接运行完毕

s   step:下一步--逐语句--遇到函数进入函数继续调试

     until:直接运行到指定位置    until test.c:16   运行到16行

     continue:继续从当前调试位置运行

b   break:打断点   break  test.c:14   在14行断点

ib   info break: 查看断点信息

d   delete:删除断点   delete  id

     watch:变量监控断点--当变量发生改变的时候停下来   watch variable_name

q    quit:退出gdb

内存控制:

p   print:查看或设置变量内容   示例:print variable_name 查看变量   print variable=3   可以设置更改变量值大小

bt  breaktrace:查看函数调用栈--通常用于检测程序运行时崩溃位置

  • make/Makefile:项目的自动化构建工具

Makefile:文本文件,记录一个项目的构建规则流程

makefile编写规则:

目标对象,依赖对象  , \t 为了生成目标对象要执行的指令,预定义变量  ,伪对象

预定义变量的使用:$@表示目标对象   $^表示所有依赖对象   $<表示依赖对象的第一个

伪对象:声明一个目标对象与外部文件无关,表示每次这个对象不管是否最新都要重新生成  .PHONY:

make:是一个解释程序,对Makefile中记录的构建规则流程逐步解释执行,完成项目的构建

make解释执行规则:

1,make指令表示运行make解释程序,程序会在当前目录下找到名称为makefile/Makefile文件,解释执行其中的项目构建规则

2,判断目标对象是否已经存在,存在的话是否需要重新生成--根据源码文件的最后一次修改时间对比

3,make每次在makefile中只会找到第一个目标对象进行生成,生成之后退出

4,make在生成目标对象的时候,会先查找依赖对象的生成规则,先生成依赖对象,然后再去生成目标对象


基本写法示例:

main:main.o child.o

gcc $^   -o  $@

%.o:%.c

gcc -c $<  -o $@

.PHONY:clean

clean:

rm  main.o  child.o  main

  • git项目版本管理工具

1,   在github建立远程仓库

2,将远程仓库克隆到本地: git clone  https://github/AllenSquirrel/....

3,提交本次修改记录   git add  --all  ./   (提交指定文件  git add  path/file)

4,提交本次仓库版本管理 :git commit  -m “本次修改的备注信息”

5,   将本地版本同步到远程仓库:git push origin master(master是主分支)

Linux基础(指令+工具)相关推荐

  1. Linux基础指令总结

    Linux基础指令 ssh ctrl+insert和shift+insert ctrl+l ls ls-l和ll ls-a pwd cd touch cat echo mkdir rm cp mv t ...

  2. Linux 基础指令英文全称

    Linux 基础指令英文全称 指令 英文 作用 atq AT Queue 列出等待的计划任务 atrm AT ReMove 删除等待的任务 cat CATenate 正序列出文本,tac逐行倒叙列出 ...

  3. Day04 红帽下Linux基础指令1

    红帽下Linux基础指令1 文章目录 红帽下Linux基础指令1 虚拟机服务器 实验环境 相关指令 以远程连接的形式登录服务器 切换用户 在workstation服务器中 了解Linux Linux基 ...

  4. 总结-Linux基础指令

    虚拟机桥接模式:需要连接wifi或网络 NAT模式:只要你电脑能联网,虚拟机使用主机上网. 基础指令:ifconfig---查看网卡信息(IP地址) 命令使用格式: 命令名称 [操作选项] [操作对象 ...

  5. linux基础指令下

    目录 man指令(重要) cp指令(重要): mv指令(重要): cat: more指令以及less指令: head指令和tail指令以及管道的认识(重点): 时间相关的指令: Cal指令: find ...

  6. Linux基础指令(覆盖80%)

    基础指令(常用) 1.[root@localhost 桌面]# root:当前登录的用户名 localhost:登录的主机名 桌面:当前工作目录 #:身份识别符("#":代表roo ...

  7. Linux基础开发工具快速入门

    学习导航 一.软件包管理器yum 1.linux如何进行安装 2.什么是软件包 3.yum如何安装程序 (1)原理的感性理解 (2)yum常用指令 二.Linux编辑器Vim的使用 1.初步认识 2. ...

  8. Linux | 基础指令

    目录 ls pwd cd touch mkdir tree rmdir/rm man cp mv echo cat more less head / tail find grep which xarg ...

  9. Linux —— 基础开发工具的基本使用 —— yum、vim、gcc、make和makefile,gdb的简单应用

    目录 1.由生活常识引发的思考 2.yum的概念与使用 2.1yum的概念 2.2yum的使用 3.vim的概念和使用 3.1vim的概念 3.2vim的基本操作 3.2命令模式.插入模式.末行模式的 ...

  10. Linux基础指令的基本操作(一)

    文章目录 Linux用户管理: 1.adduser添加用户 2.passwd修改用户密码 3.userdel删除用户 其他指令 alias指令(取别名) whoami指令 man指令(重要) bc指令 ...

最新文章

  1. 学习笔记99—word 如何增加底纹
  2. java非法字符65289_求详细点的回答 谢谢
  3. [转] vim自定义配置 和 在ubnetu中安装vim
  4. java nio copy_使用NIO快速复制Java文件
  5. 关于numpy mean函数的axis参数
  6. 我的Spring MVC第一个应用
  7. ff14个服务器位置,新人求推荐个服务器
  8. SIM卡高速PCB设计指南
  9. 如何实现幻灯片效果/图片轮播
  10. Java项目论文+PPT+源码等]S2SH+mysql的报刊订阅系统
  11. python mp3转wav_python 录音,WAV转MP3
  12. 甘肃康县乡村“蝶变”:北方山沟引来“南方媳妇”
  13. 2022大宗商品现货交易所织梦网站模板源码+大气美观
  14. Ad Mucher最新有效注册,升级方式
  15. Laravel Trait method broker has not been applied, because there are collisions with other trait meth
  16. 罗云彬:实现水波特效的代码例子
  17. 笔记本电脑无法连上WiFi的解决办法
  18. 《数据结构》实验报告(一)——顺序表存储结构及实现
  19. 服务器重装系统之浪潮服务器
  20. 关于 nodejs-websocket 的 wss 设置

热门文章

  1. 详解线性代数的二次型
  2. 诚之和:敷尔佳热卖背后销售混乱宣传过度
  3. ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展
  4. JS的隐式转换与显式转换
  5. amcharts_flash_1.6(绝版了)破解说明
  6. xp系统无法自动修复此计算机该怎么解决,xp系统启动修复无法自动修复此计算机的具体办法...
  7. bilibili视频下载工具
  8. 半夜钱款莫名被转走!睡觉手机到底该不该关机?安全专家解读新型网络盗窃!...
  9. JavaEE--------Linux 快速入门教程
  10. Maven仓库理解和优先级