0
点赞
收藏
分享

微信扫一扫

Linux 1:基础知识和常用命令

扬帆远航_df7c 2022-04-25 阅读 31
linuxc++

文章目录


一、Linux基础

1. 为什么要学习Linux?

  • 对于绝大多数的企业来说,服务器一般安装在linux上
  • 现在主流的云计算包括大数据,等等都是默认支持linux系统
  • 面试岗位需求

2. Linux学习方法

  • 1.C语言可以当做是一门技能,大量的练习,但是Linux绝大部分的内容是需要理解,一般练习也就是
    基础命令的练习
  • 2.学习方法:理解记忆+看书 (上课理解,下课巩固+扩展),这样子可能学习效率更高

二、Linux历史介绍

linux(类unix系统):多用户多任务的操作系统

unix系统:贝尔实验室1969年开发,unix7系统时候,发现unix的商业价值,就开始收回授权,最终在1982年发布了第一个完全商业版本unix system 3

芬兰的一个教授因为unix的版权原因,就准备开发一个类unix 的操作系统,Minix(微型unix系统),主要是用来教学和教育机构。

linus(林纳斯·托瓦兹),学习Minix源代码,半年后,开发一个linux内核(最初的版本)。

GNU,革奴计划:理查德斯托曼,致力于开发一个完全免费,自由,开源的并且兼容unix系统的操作系统GNU,但是这个计划发展了10来年,唯独缺少一个内核,当然这个计划有内核,叫hurd(只不过,一直在开发中)刚好GNU缺少内核,Linux缺少配套工具,刚好合在一起就是一个完整的操作系统,所以有人认为linux应该叫做GNU/Linux

GPL协议:理查德斯托曼在89年和一群律师一起起草了 一份协议,这个协议规定linux 的派生版本必须也免费

linux的优点(公司,开发人员为什么选择LINUX)

三、Linux简介

1. Linux和window系统有什么区别?

  • Linux系统开源,Window不开源
  • Linux主要应用于服务器上,Window主要应用于个人电脑
  • Linux主要用命令行操作,Window主要用图形化操作界面
  • Linux免费,window免费
  • Linux是多用户系统,Window是单用户系统

2. Linux的内核版本和发行版本

Linux内核版本:www.kernel.org

2.1 查看自己的内核版本号

在这里插入图片描述

2.2 linux的发行版本

  • 1.红帽子公司 全球最大的开源技术厂商,提供非常广泛的linux套件,提供全球技术支持(收费)。
    有企业版(RHEL),有社区版本(centos),还有一个桌面版本(Fedora)
  • 2.debian公司
    企业版本(debian) 社区版本(ubuntu)
    ubuntu系统一款基于debian派生出来的一个产品,对最新的软件兼容性很好,大多数认为ubuntu和fedora系统都是非常好的linux系统

优点:

  • ubuntu系统广泛应用于电脑,服务器,物联网,云…
  • 既适合家庭使用环境,也适合商业环境
  • ubuntu系统拥有良好的安装及操作系统
  • ubuntu系统承诺免费(没有技术支持)

3.桌面介绍

3.1开关机(尽可能通过这里)

在这里插入图片描述

3.2 终端的打开

  • 在桌面上通过鼠标右边可以打开这个终端
  • ctrl+alt+t
    在这里插入图片描述

3.3 怎么控制终端的大小

扩大ctrl shift ‘+’
缩小ctrl ‘-’
进入管理员权限sudo su
退出管理员权限ex

四、Linux目录结构

window:将存储空间分为多个盘符:C,D,E,F。。。。

linux:只有一个根目录,倒立的属性结构,所有文件都是从根目录开始向下存储

1. linux的文件目录结构图

在这里插入图片描述

2. 常用目录介绍:

/bin存放常用的命令(二进制可执行程序)(重点)
/boot存放系统内核及启动相关的文件,类似于window里面的C盘,很重要,一般不会让别的人去挤压它的存储空间(重点)
/dev存放我们的设备文件(重点)
/etc存放系统配置文件(重点)
/home家目录(所有普通用户的家目录)
/lib存放库文件
/proc存放虚拟文件系统目录,保存进程在内存中的信息(重点)
/usr存放系统应用文档和程序 例如QQ微信(重点)
/var存放系统运行中经常修改的文件,例如系统日志
/root存放管理员的家目录
/mnt临时挂载点
/tmp存放临时文件,所有用户都可以访问

3. 绝对路径和相对路径的区别

绝对路径:就是从系统根目录开始向下遍历到指定位置(文件)的路径,中途用’/'隔开

  • 假设以绝对路径表示20220406这个目录里的main可执行程
    序:/home/stu/Desktop/SWAP/20220406/main
  • 假设以绝对路径表示用户stu的桌面的位置:/home/stu/Desktop

相对路径:就是从当前位置开始到执行位置的相对路径

  • 假设以相对路径表示的20220406这个目录里的main可执行程序(当前就在20220406这个目录
    里):./main
  • “.”:代表当前目录
  • “…”:代表当前位置上一层目录
  • 例如:./main 代表当前目录下的main文件

五、系统文件类型和文件权限

1. 文件类型

Linux上有一句话:一切皆文件

既然一切都可以看做文件,那么文件分为几种类型:

普通文件“-”
目录文件“d” (directory)
管道文件“p” (piping)
链接文件“l” (link)
设备文件(块设备 ”b“ (block), 字符设备 ”c“ (char))
套接字文件“s” (socket)

分别解释:

  • 普通文件
  • 目录文件
  • 管道文件:进程间通讯的一种手段
  • 链接文件:类似windows上的快捷方式(软链接),这里需要区分软链接(符号链接)和硬链接的

区别

  • 设备文件(块设备):是指可以从这个设备的任意位置读取任意长度的信息,例如磁盘,U盘,
    sd,tf卡
  • 设备文件(字符设备):是指只能一个字节一个字节的读写的设备,不能随机读取,读取数据需要
    按照先后顺序进行,字符设备是面向流的设备,例如鼠标,键盘等
  • 套接字文件:用于网络通讯使用

linux上不以我们文件的后缀名去区分文件类型,linux一般还是写后缀名,主不过这个后缀名是帮助用户选择对应的解析器使用的。
在这里插入图片描述
查看命令:ls -l

2. 文件权限的分类

符号权限
r读权限 read4
w写权限 write2
x执行权限 execute1
-无权限0

例如:
在这里插入图片描述

u表示文件属主的访问权限
g表示文件同组成员的访问权限
o表示其他用户的访问权限

3. 修改文件权限

这里用两种文件权限的修改方法:

  • 文字设定法
  • 数字设定法
  • 修改权限命令:chmod

3.1 文字设定法

u表示属主(user)
g表示属组(group)
o表示其他人(other)
a表示所有人(all)
+表示增加权限
-表现减少权限
=表示直接赋值权限

注意:如果需要对属主,属组,其他人同时进行不同的权限修改,用逗号隔开即可

例如:当前文件的权限如下
在这里插入图片描述
举例1:对于这个可执行文件main,的其他成员other,添加一个w写权限:
在这里插入图片描述
举例2:对于这个可执行文件main,的属主成员user,减少一个执行权限x:
在这里插入图片描述
举例3:对于这个可执行文件main,的所有成员all,都没有任何权限:
在这里插入图片描述

举例4:对于这个可执行文件main,的权限修改为rwxrwxr-x:

在这里插入图片描述

3.2 数字设定法

采用数字设定法时,权限通常由3个数字组成,每一个数字都代表一个角色的权限,每个角色的数字值由所具有的权限决定:

r读权限4(100)
w写权限2(010)
x执行权限1(001)
-没有权限0(000)

例如:

  • rwxrwxr-x: 775
  • r-xr-xr–:554
  • 修改权限的格式如下:chmod XXX filename(0<= X <=7)

例如:当前文件的权限如下:
举例1:将main权限通过数字设定法修改为r-x–x-w-:
在这里插入图片描述
举例2:将main权限通过数字设定法修改为rwxrwxr-x:
在这里插入图片描述

五、常用命令

1. 基础命令

1.1 pwd

显示当前位置的绝对路径,示例如下:
在这里插入图片描述

1.2 cd

切换目录,cd 后边加的参数 代表需要切换到的目的地,可以使用绝对路径或者相对路径,示例如下:
在这里插入图片描述

  • “.” 通过“cd .” 回到当前位置
  • “…” 通过“cd …” 回到当前目录的上一层位置
  • “-” 通过“cd -”回到上一次所在目录
  • “~” 通过“cd ~”回到当前用户的家目录
    示例如下:
    在这里插入图片描述

1.3 ls

显示当前目录中的所有文件,示例如下:
在这里插入图片描述
在这里插入图片描述

1.4 man

帮助手册,用于查看命令,系统调用,库函数等帮助信息,示例如下:
在这里插入图片描述
例如:

  • 查看命令:man printf
  • 查询库函数:man fopen
  • 查询系统调用: man open
  • 查看命令: man 1 ls

1.5 touch

用于创建普通文件,示例如下:
在这里插入图片描述

1.6 mkdir

创建目录文件,示例如下:
在这里插入图片描述

1.7 rmdir

删除空目录,不能删除非空目录,示例如下:
在这里插入图片描述

1.8 rm

删除文件,删除非空目录事,加-r 参数即可,示例如下:
在这里插入图片描述

rmdir只能删除空目录
rm删除文件
rm -r删除空目录和非空目录都可以(普通文件也可以)

注意:rm -r 非常危险,不会警告,直接会将整个目录递归删除掉。

1.9 cp

拷贝文件,拷贝目录文件加参数 “-r”,示例如下:
在这里插入图片描述
举例
在这里插入图片描述

  • cp -r dir1 dir2:第一次执行, dir2不存在,系统将dir2当成名字处理,则将dir1拷贝一份起名dir2
  • cp -r dir1 dir2:第二次执行, dir2存在,系统将dir2当成目录处理,将将dir1拷贝一份放到dir2里面

注意:如果拷贝普通文件时,目的路径下已经有一个和源文件同名的文件,则拷贝时,会将目的地的同名文件覆盖掉,windows上会警告提醒,到底是覆盖掉还是跳过,但是linux上不会提醒,直接覆盖掉。(Linux系统开发人员默认已经非常了解这个命令了)

示例如下
在这里插入图片描述

1.9 mv

1.9.1:剪切(移动)文件,示例如下:

在这里插入图片描述

1.9.2:文件重命名,示例如下:

在这里插入图片描述

1.10 find

在目录树中搜索指定的文件,也可以指定开始的搜索位置,示例如下:
在这里插入图片描述

1.11 grep

在文件中过滤出包含指定字符串的行,示例如下:
在这里插入图片描述

  • grep -c 只显示个数
  • grep -v 取反,将查找的数据之外的数据展示出来
  • 在这里插入图片描述

1.12 管道 |

将上一个命令的输出数据 作为 下一个命令的输入数据,示例如下:
在这里插入图片描述

1.13 wc

统计文件中的单词个数(-w),字符个数(-c),行数(-l),示例如下:
在这里插入图片描述

1.14 sudo

su username切换用户 username 不写的话,默认切换root
sudo暂借root权限执行这一行命令
sudo su username切换用户 username 不写的话,默认切换root

1.15 关机和重启

1.15.1 关机

shutdown -h now//立刻关机
halt//立刻关机
init 0//立刻关机

1.15.2

shutdown -r now//立刻重启
reboot//立刻重启
init 6//立刻重启

//系统运行等级的查看 runleve
在这里插入图片描述

0关机
1单用户模式
2多用户无网络模式
3完全的多用户 文本界面模式
4未定义或者自定义模式
5图形化界面模式
6重启
init 3这个模式就是工作中服务器用的模式

2.打包,解包,压缩,解压命令

2.1: tar 将文件打包,或者解包

参数介绍:

c创建包文件
f指定目标是一个文件而不是设备
v显示详细过程
t显示包中的内容,但是不释放(解包)
x释放包中的内容
zGNU版本添加,使得tar具有压缩和解压的功能

2.1.1 tar打包:

在这里插入图片描述

2.1.2 tar解包::

在这里插入图片描述

2.2 gzip 对文件进行压缩或者解压

2.2.1 gzip对文件进行压缩

在这里插入图片描述

  • 压缩之后的包,和压缩之前相比,大小变化很大

2.2.2 gzip对压缩文件进行解压

d 解压缩
在这里插入图片描述

2.2.3 通过tar命令对压缩文件进行一步解压

tar zxvf mytar.tar.gz
在这里插入图片描述

2.2.4 通过tar命令对多个文件进行一步压缩

tar zcvf my.tar.tar.gz A.txt B.txt dir1
在这里插入图片描述


举报

相关推荐

0 条评论