Linux初识(基础指令和常用工具)

使用xshell连接虚拟机(服务器)
查看虚拟机或服务器的IP地址:ifconfig
新建连接信息,进行连接
操作系统:是一个程序软件,按照程序指令固定完成指令的功能,让计算机更好用。
linux操作系统———开源且免费
公司在linux系统的源码上进行定制化开发,开发出了自己的系统进行发布(linux发行版)
centos(红帽子系) Ubuntu(debian系)

国产的linux:deepin

基础指令

文件指令

linux下一切皆文件:所有的东西都当做文件进行操作
指令:ls 查看指定文件夹(目录)下的文件信息
linux默认打开一个终端,就会默认处于一个指定的目录(当前登录用户的家目录)
linux是一个多用户的操作系统(可以创建多个用户,多个用户同时操作,互不影响)
linux为每个用户都创建了一个家目录,每个用户都只能在自己家里干活
ls -a 查看隐藏文件
ls -l 查看文件详细信息
一个命令可能会有很多选项功能,使用对应操作就可以附加功能
ls -la 可以附加使用

指令使用格式:
命令名称 [操作选项] [操作对象]

pwd 打印当前工作路径
目录或文件之间用 / 间隔,但是如果一个路径最开始是 / ,则 / 此时不是间隔,而是根目录
在这里插入图片描述
表示当前在dev目录,dev在home目录,home在根目录中。
linux下目录结构:目录结构具有唯一性,并且是一个树形结构,最底层是根目录 /
mkdir 创建目录,后边跟目录名称
mkdir testdir
mkdir -p ./a/b/c 递归多层级创建目录
rmdir 清理空目录(不常用)
rm 删除文件
-r 递归删除指定目录下的所有文件
-i 添加操作信息
-f 忽略所有提示信息,直接操作
cp 拷贝一个文件到指定位置(有两个操作对象,要拷贝文件,放置目录)
mv 剪切
rename myFile newName myFile.text 重命名 mv
cd 进入指定目录(改变当前的工作路径)
cd ~ 回到当前的家目录
cat 将文件内容显示到终端上
-n 显示行号,只适合短小文件,默认显示1000行

Ctrl+c : 中断当前操作

touch 刷新文件创建时间,文件不存在会创建
more 对文件内容进行分页显示
空格 - 向下翻页 ; 回车-向下按行滚动 ; q-退出显示
less 对文件进行分页显示
f-向下翻页 ; b-向上翻页 ; jk-上下按行滚动 ; q-退出 ; /string 向下查找字符串 ; ?string向上查找字符串 ;
head 显示文件前你行内容
tail 显示文件末尾n行
需求:打印第三行内容:head -n 3 filename | tail -n 1

管道符: **|**连接两个命令,前一命令的结果作为后一命令的输入
重定向符号:
"> >"追加
“>” 重新写入

文件压缩操作:
gzip gunzip ; bzip2 bunzip2 ;
tar 打包指令
-c 打包
-x 解包
-v 显示详细打包解包信息
-z 打包或解包的同时使用gzip的格式进行压缩或解压缩
-j 用bizp2
-f 跟压缩包名
tar -czvf
tar -xzvf

su 切换用户
su root
su dev
创建用户 useradd -m username
删除用户 userdel -r username
设置密码 passwd username

匹配与查找指令
grep 字符串匹配查找
-i 忽略大小写
-R 针对指定目录下所有文件进行内容匹配
find 指定目录下,查找符合指定规则的的文件
-name 通过文件名过滤
-size 通过文件大小过滤
-mtime 、atime、ctime 通过时间过滤

shell指令:是一个程序,不断捕捉键盘输入的指令,接收用户输入,执行对应指令的功能程序
shell又称命令行解释器
shell是用户与系统内核沟通的桥梁(shell是这类程序的统称),具体有bash、dash…
clear 清屏
date 打印时间

权限

linux是一个多用户操作系统:多个用户登录,各自操作互不影响。
对于不同用户,授权不同
系统操作权限:root用户 其他用户都是普通用户,普通用户操作受限
      涉及指令:su ; useradd ; userdel ; passwd
      sudo: 给普通用户的操作进行临时提权
      前提条件:该用户需要被添加到sudoers配置文件中,visudo 修改配置文件
文件操作权限:
      系统对文件访问的用户分为了三类:
      文件所有者:文件的创建者,文件访问的权限都是文件所欲这进行控制的
      文件所属组:可以进行某些操作
      其他用户:
      将用户对文件的操作分为三类:可读、可写、可执行(rwx)
权限标识:rwx rwx rwx      对应三类用户的权限(ls -l 查看)
用三个八进制数字显示:777
umask 查看或设置文件的穿件权限掩码
      掩码影响了文件创建出来后的默认权限(掩码取反,只限命令行创建)
touch 命令默认权限是666,umask掩码默认002
在命令行创建文件,默认全新啊就是777减去掩码的值,注意创建目录是可执行文件,创建普通通文件可能不是普通文件,会比实质值少1。
chmod修改已存在文件权限,可以指定那三类用户之一,进行添加或删除某一权限
chmod g+w xinjian 对文件所属组添加写权限
chmod 777 filename 直接设置,需要计算
chown修改文件所有者
chogrp修改文件所属组
沾滞位:chmod +t dir 其他用户在同一目录可以创建文件,可以删除自己的文件,但是不能删除别人的文件
Xshell中按方向键上下,获取之前输入的指令

常用工具

linux下与编程有关的工具:yum、vim、gcc、gbd、makefile、git

yum:软件包管理工具(类似手机应用商店)
默认情况下,centos系统的软件都是从官网下载(比较慢,建议更换源)
三板斧操作:
查看软件包:yum list | grep lrzsz
lrzsz工具:文件传输工具,实现虚拟机或服务器与当前我们主机之间的文件传输
sr 1.c 将linux文件传到主机
rz 将主机文件传入linux
安装软件包:yum install lrzsz
卸载软件包:yum remove lrzsz
vim :编辑器–写代码工具(可以安装很多插件,纯键盘操作)
有多种操作模式:三种必用,所有模式都是通过普通模式转换的
普通模式(normal):i(从光标所在位置插入) o(光标所在行的下一行) a(从光标后面插入)
插入模式(insert):ESC
底行模式(commod):英文冒号 :(一定要注意是英文输入的冒号,如果按shift+:没反应,就检查是否切换成了中文)
底行模式下:
w–保存 ; q–退出 ; wq–保存退出 ; q!——不保存强制退出
普通模式下:
移动光标:hjkl–做下上右 ; Ctrl+f/b–上下翻页 ; gg/G–文档首尾 ; w/b–以单词为单位前后移动
文本操作:
复制:yy–复制所在行 ; nyy–从当前行向下复制n行
剪切/删除(不粘贴就是删除):dd–删除光标所在行 /ndd ; 清空文本内容–ggdG
粘贴:p np–向下将剪切板内容粘贴n遍
其他 :撤销上一次操作:u ; 还原撤销:Ctrl+r
gcc编译器:
通常用法:gcc -o main.c main 后加 -Wall(展示全部警告)
运行程序: ./main 也可以 : /home/dev/Gcode/test 代码对齐(普通模式下)gg=G
gcc/g++:编译器—将高级语言代码解释成为二进制机器语言(采用动态链接)
编译过程:预处理,编译,汇编,链接
预处理:gcc -E hello.c -o hello.i vnew与原先代码作比较
      功能:去除注释,宏替换,引入头文件,根据条件编译去掉无用代码
编译:gcc -S hello.i -o hello.s
      功能:根据C语言语法语义规则,构建语法书,进行语法语义检查
汇编:将汇编指令解释成为二进制机器指令 gcc -c hello.s -o main.o
链接:将所有.c源码指令指令,以及用到的库文件中的指令,打包到一起生成一个可执行程序
动态链接:链接动态库,将库中的函数符号信息表记录到可执行程序中,生成的可执行程序较小,内存中冗余代码较少,但是会产生运行时依赖
静态链接:将库中所使用的函数的实现直接写入到可执行程序中,生成的可执行程序较大,内存中可能存在代码冗余,但是不会产生运行依赖
gcc main.o xx.o xx.o … -o main
gdb调试器
用gcc编译器默认从生成的是release版本无法调试,要先用gcc -g main.c -o debug_main生成debug版本,再进行gdb ./debug_main
调试过程:
1.使用gdb加载程序:gdb ./main
2.开始调试: start – 开始逐步调试 ; run – 直接运行
3.逐行调试:
next-- 下一步–逐过程(遇到函数把函数运行完毕) ; step–下一步–逐语句(遇到函数,进入函数进行调试) ; until main.c:20 – 直接运行到指定文件的指定行
4.查看代码: list – 默认查看调试附近代码 list main.c:20 指定行附近
5.断点操作:break main.c:20 ; break fun1 – 给函数打断点 ; continue–从当前调试位置向下运行 ; info break 查看所有断点信息 ; delete break_id 删除指定断点
6.内存操作:print var–查看指定变量的数据 ; print var=10 设置变量数据 ;
backtrace:查看函数调用栈 (程序当前运行位置肯定是栈顶函数,函数是逐个压栈的,程序崩溃时,栈顶函数就是出错函数,程序崩溃,该函数也来不及出栈)
make&makefile:项目自动化构建工具
Makefile:一个普通文本文件,其中可以记录一个项目的构建规则。
make:makefile解释器–软件程序,对当前目录下的makefile中的项目构建UI则逐行进行解释,完后才能项目构建
makefile编写规则:
目标对象:依赖对象
[tab]规则指令
make解释规则:
make在当前执行make指令的目录下找到makefile文件,然后在makefile中查找生成规则
1.make查找第一个目标对象,作为终极目标对象
2.检测依赖对象与目标对象的时间关系,判断目标对象是否需要重新生成(不存在需要生成,依赖文件修改了,需要重新生成),若目标对象需要生成,但依赖对象不存在或者需要重新生成,则会查找依赖对象的生成规则先进行生成
3.如果需要生成则执行规则指令(指令不一定是为了生成实际的文件,也可能是为了完成某个操作)
编写时将编译和链接两步分开,提高效率,对于没有新修改的文件就不用再编译,只需要更新链接即可。
4.make在完成了终极目标对象生成后就会退出,不是终极目标对象的依赖文件不会被生成,比如clean,要用make clean来进行生成。
在这里插入图片描述

编译:gcc -S test.c -o test.s
链接:gcc test.s -o test

在这里插入图片描述
.PHONY:clean
.PHONY意思表示clean是一个“伪目标”,通常放在末尾,用来删除操作
使用 make clean
就会执行clean中定义的命令
在这里插入图片描述

git三板斧操作:
在这里插入图片描述
输入命令后面要选择操作 的文件可以只需输入文件名的头几个字母按TAB键就会自动补全
例如:
我要进入当前目录下的Gcode目录
只需输入:ls G [TAB]
再按下tab键就会自动补全,变成:ls Gcode/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值