Linux系统相关笔记

发布于:2022-12-17 ⋅ 阅读:(930) ⋅ 点赞:(0)

下载: https://ubuntu.com/

常用命令

Ctrl + Shift + T  打开命令窗

Ctrl + Shift + +  放大窗口

Ctrl + -        缩小窗口

关机sudo shutdown -h now

重启sudo reboot

普通用户切换到超级用户 sudo -i     输入密码后切换

超级用户切换普通用户  su - 用户名

cd  ~/文件夹/   改变当前工作目录到文件夹

pwd            查看当前路径

~    用户主目录

.    当前路径

..    上级路径

pwd 查看路径

/home/文件夹 /1.c 绝对路径

文件夹 /1.c       相对路径

ls   查看文件夹

蓝色——文件夹

白色——普通文档

绿色——可执行程序

淡蓝色——链接文件

ls -a    显示隐藏文件

ls -l    显示详细信息(使用时间,属性等)

d;rwx;rwx;r-x分为四组

clear 清屏

cat  适合查看短的文件

More bashrc  适合查看长的文件

按space(空格)翻页

按Enter(回车)下一行

按Q退出

gcc的编译流程

  1. 预处理:将C源文件编译成C文件,只做头文件的展开,宏替换掉,注释去掉,不做语法检查(意味着当前代码有问题的时候,不会直接在这一步检测到的)

gcc -E 1.c -o 1.i

  1. 编译:将上一步生成的C文件编译成汇编文件

gcc -S 1.i -o 1.s

  1. 汇编:将上一步生成的汇编文件编译成机器文件(OBJ格式)

gcc -c 1.s -o 1.o

(4)链接:将所有的机器文件共同参与链接,生成一个总的可执行文件

gcc  test.o  test2.o  test3.o   -o  MyApp(可执行文件)

mkdir lin    创建一个文件lin

touch 1.txt  创建一个文档1.txt

rm 删除文件 rmdir 删除空文件夹 rmdir -r删除文件夹

mv 1.txt 2.txt 将文件1.txt重命名为2.txt

mv 文件1  文件夹2/   将文件1移动到文件夹2

cp 文件1  文件夹2/   将文件1复制到文件夹2 cp  -r 操作文件夹

末行模式<-----------命令模式------->插入模式

命令模式输入 ’ : ’ 末行模式

wq 保存退出            3yy复制3行

w只保存不退出          p  粘贴

q只退出不保存          3dd删除3行

Set nu 设置行号          u撤回

:s/abc/de/g  将全部的abc替换为de(不加g只替换第一个)

Linux的软件包管理

离线安装

注意:离线安装不会检查软件之间的依赖关系。

前提:必须在本地文件系统中存在一个软件包

安装:dpkg  -i  软件包名(全称,带后缀的)

删除:dpkg  -r  软件名

卸载:dpkg  -P  软件名(删除软件的同时移除配置文件)

查看软件的安装清单:dpkg  -L  软件名

查看软件的安装状态:dpkg  -s  软件名

在线安装

前提:有网

特点:会自动检查软件包之间的依赖,不用用户自己做

平台:apt-get(前提:具备超级权限:sudo)

安装:sudo  apt-get  install  软件包名

删除:sudo  apt-get  remove  软件包名

卸载:sudo  apt-get   remove  --purge  软件包名  

更新软件包的信息sudo  apt-get  update  软件名

升级软件包的版本sudo  apt-get  upgrade  软件包名(不写默认所有软件)

计算机的基本结构

输入输出设备:键盘,鼠标,显示屏,打印机,扫描仪。。。。

CPU处理器: 通过算术逻辑运算器和控制器来控制系统性能

算术逻辑运算器:负责的是算术运算以及逻辑运算,任何复杂的运算最终都离不来算术运算或者逻辑运算。

控制器:相当于计算机的指挥系统,从内存中读取(按条读取)指令到寄存器中去,然后再从寄存器中进行逐条执行命令。

存储器:

外部存储器(外存):数据永久保存,不会丢失,计算机掉电也不会丢失数据。特点:容量比较大的,适合存储不着急使用的程序或者文件。

内部存储器(内存或者主存):数据暂时性保存着,意味着掉电数据会丢失,容量相对较小,适合存储一些即将被运行或者正在运行的程序以及文件

寄存器:存储在CPU当中的存储器,容量是最小的,存储在寄存器中的数据能够快速被处理,不需要从内存加载指令以及从外存拷贝数据到内存中去。

IP:

全称:Internet  Protocol 网络协议

作用:路由的功能(找路,真正找目标主机是通过ARP协议解析数据包得到MAC地址,进而找到目标主机)

形式:IP地址 = 网络地址 + 主机地址

IP地址多大?---》4个字节,以点分十进制形式表示的

注意:网络地址和主机地址占据字节数的不同,IP地址的类型也会有区分

A类:1个字节网络地址+3个字节的主机地址,规定网络地址的最高位是0

      A类IP的范围:0.0.0.0 ~ 127.255.255.255

            因为种种限制:A类IP我们可以正常使用的范围是:1.0.0.2 ~ 126.255.255.254  

                     

B类:2个字节网络地址+2个字节的主机地址,规定网络地址的最高位是10

      B类IP的范围:128.0.0.0 ~ 191.255.255.255

            能够使用的范围:128.0.0.2 ~ 191.255.255.254

C类:3个字节网络地址+1个字节的主机地址,规定网络地址的最高位是110

C类IP的范围:192.0.0.0 ~ 223.255.255.255

            能够使用的范围:192.0.0.2 ~ 223.255.255.254

注意:以上三类是按照字节数所占不同来进行区分

D类:一般作为组播地址(网络地址最高位为:1110)

E类:等待将来使用(网络地址最高位为:11110)

注意:D类和E类是IP的另一种类型

子网掩码:

功能:判断两台主机之间的通信是外网通信还是内网通信

子网掩码的设置:规定:网络地址全为1,主机地址全为0

默认的子网掩码设置如下:

A类IP:255.0.0.0

B类IP:255.255.0.0

C类IP:255.255.255.0

网关:

网间连接器,是一台主机通往另一台主机的IP地址,网关可以有多个,但一般会有一个默认的网关。

默认网关的设置方法:如果是C类IP地址:192.168.X.1 (X是网段)

DNS服务器:

域名解析服务器

作用:DNS服务器上存储了一张域名和IP对应的一张表,当用户访问域名的时候,就会请求这张表,进而访问到IP地址。

注意:一个IP地址可以有多个域名,但是一个域名只会唯一的对应一个IP地址。

用户管理相关

1、修改密码:

方式1:passwd(特例)

注意:默认修改当前用户的密码,但是密码应该越来越复杂才可以,否则修改不成功。

方式2:sudo passwd  用户名(最为标准的)

注意:万能的,对于密码的长短无任何限制。修改的用户名也没有限制。

2、添加新用户:

格式:sudo  adduser 用户名

3、删除用户:

格式:sudo  deluser  用户名   --remove-home  

注意:

1、带-remove-home删除用户时也会删除家目录。

2、如何确保是否存在一个用户,打开vim /etc/passwd这个文件,。查看是否存在该用户来确定。

文件目录操作

1.echo

标准输出,不是函数,是一个命令,可以在命令行或者脚本中使用它完成标准输出

注意:echo 是用来标准输出的,输出的内容可以是取一个变量的值,也可以是一个字符串常量(没有类型的区分)

2.head / tail 查看文件内容

head  -N   文件名  :查看文本的前N行

tail   -N    文件名:查看文本的后N行

不带-N的时候,默认查看前后各10行

3.more / less   查看文件内容

more / less  文件名

more:带百分比显示,按下空格键一页一页显示,按下回车一行一行显示

less:按下空格键一页一页显示,按下回车一行一行显示

4.env

查看系统中的环境变量,该环境变量全部大写的,如果有多个值的时候,以冒号隔开。

5.grep 匹配搜索命令(在文本中进行检索-->文本的内容)

     命令名称  选项  格式  文件名(可以包含路径)

注意:要是不写文件名,则会默认检索当前路径下的所有文件中指定格式。

           -n:输出含有指定格式的所有行

           -v:与-n的意思相反,只会输出不含有指定的格式的那些行之外的所有行

           -c:输出含有指定格式在内的所有行的行数。

6、find 查找指定的目录下的信息(信息---》文件名)

     命令名称  路径  选项   描述

选项:

     -name :支持通配符:*  ?

注意:使用*和?时,需要加双引号,否则有问题。

7、ln

作用:创建链接文件

链接文件的分类:

(1)软链接:类似于快捷方式,意味着创建的软链接文件中存储的是指向源文件的一条路径,不是存储源文件内容。

    方式: ln  -s  原文件名(绝对路径)   软链接文件名

(2)硬链接:以Inode编号创建的链接文件,意味着:硬链接文件就是源文件空间的另一个别名而已,和复制之后的文件有很大区别(硬链接文件不占空间,复制之后的文件是重新找了一片空间存储复制过来的源文件内容)

方式: ln   原文件名(绝对/相对路径)   硬链接文件名

注意:

1、源文件和软链接以及硬链接文件的影响都是双向的。

2、删除源文件,软链接立马失效,恢复(创建同名的源文件名)源文件,软链接又生效,但是此时的指向发生改变,指向最新创建的文件。

3、删除源文件,硬链接不受影响,因为只是空间的名字少了一个。恢复源文件,硬链接还是之前被删除的源文件空间,不会成为新的文件空间的别名。

4、如何确保是不是同一个文件:ls  -i  打印出物理编号进行对比。一样证明是同一个文件。

8、chmod 修改文件的权限

默认的文件权限:0664

(1)八进制法:

假设文件是1.c  0664

给文件1.c进行添加可执行权限(只给用户自己加)(111 110 100)

chmod  0764  1.c  /   chmod  764  1.c

给三组(用户,用户组,其他用户都添加可执行权限)(111 111 101)

chmod 775 1.c

(2)符号标记法

用户:u

用户组:g

其他用户:o

三者都加:a

给1.c用户自己添加可执行权限

chmod  u+x  1.c

chmod  -x    1.c (给三者都去掉可执行权限)

chmod a+x  1.c / chmod  +x  1.c  (  a+x ==  +x  )  

压缩相关

tar 命令:

选项:

-c  : 打包

-x  : 解包

-v  :可视化(可以看到打包或者解包了哪些内容)

-f  : 指明需要打包哪些文件

-z  : 自动调用压缩工具(gzip)

-j  : 自动调用压缩工具(bzip2)

目的:我们需要会解压+解包别人发给我们的压缩包,其次自己也可以进行打包+压缩相关文件

eg:

(1)打包

(2)解包

(3)打包+压缩  tar  -cvzf / -cvjf  文件名.tar.gz/文件名.tar.bz2  需要打包的文件

(4)解压+解包  tar  -xvzf / -xvjf  文件名.tar.gz/文件名.tar.bz2  -C  路径

注意:解压+解包时,如果不加-C,则默认解压到当前路径,-C加上就可以自己指明解压之后的路径。

shell特殊字符

(1)通配符

*:匹配任意长度

?:匹配一个长度

[1-9] / [a-k]:匹配指定范围之内的一个长度

[123]/ [abc]:匹配只含有指定一个长度的

[^123] / [^abc]:匹配除了指定含有一个长度的

(2)管道

定义格式:

command1  |  command2  | ....... | commandN

理解:前一个命令的输出作为后一个命令的输入

eg:

   fortune-zh  --->输出的(打印一首古诗向标准终端输出)

   cowsay   -----》需要输入(没有输入,就会进入阻塞)

   想要将fortune-zh命令的输出作为输入源给cowsay:

    ----> fortune-zh | cowsay  (牛可以说古诗)

(3)命令置换

格式:

command1  `command2`

理解:command2输出作为command1的参数

(4)输入输出重定向

输入:默认方向为键盘

输出:默认方向为终端

输出重定向:改变输出方向不再向终端输出。

>:只能接收正确命令的结果,文件不存在,则新建,存在则会先清空,再写入。

>>:只能接收正确命令的结果,文件不存在,则新建,存在则追加方式写入。

2>:只能接收错误命令的结果,文件不存在,则新建,存在则会先清空,再写入。

2>>:只能接收错误命令的结果,文件不存在,则新建,存在则追加方式写入。

&>:正确和错误的都可接收,文件不存在,新建,存在则先清空,再写入。

&>>:正确和错误的都可接收,文件不存在,新建,存在则追加方式写入。

输入重定向:改变输入方向不再从键盘键入。

<:

eg:

  平常写的: cat  1.c  ----》 就是暗含使用了输入重定向:cat  <  1.c   


网站公告

今日签到

点亮在社区的每一天
去签到