Linxu学习

目录

前言引入

Linux OS和各种发行版的关系

 如何使用云服务器​编辑

Shell

关于Linux的操作方式

命令行的参数

 Linux命令行的复制操作​编辑

Linux文件系统简介

具体的命令

who和whom

ls命令

pwd命令

cd命令

touch命令

cat命令

mkdir命令

rm命令

mv命令

cp命令

man命令

more命令

less命令

 head命令

tail命令

Linux管道

重定向

grep指令

find指令

 ps

netstat

free


前言引入

Linux OS和各种发行版的关系

Linux 严格意义来说只是一个 "操作系统内核".一个完整的操作系统 = 操作系统内核 + 配套的应用程序.由于 Linux 是一个完全开源免费的内核, 因此有些公司/开源组织又基于 Linux 内核, 提供了不同的配套程序. 这就构成了不同的 "发行版".
 

  • LinuxOS主要做的OS内核(进程管理,内存管理,网络管理,驱动管理)——只负责造车的发动机image-20220520185445070
  • 各种各样的Linux发行版(基于LinuxOS的基础上的产品),Ubuntu,Redhat,Arch....,比较有名的就是Centos,但是放弃了支持这个,但是国内云厂商继续支持(TencentOS),基本都是再Centos 8.X继续的
  • 不同的发行版的Linux,使用(80%)上都是一样的,但是有些是不太一样的

 如何使用云服务器

Shell

  • Shell就是操作Linux的一个平台/界面/控制台
  • SSH协议:Secure Shell 安全版的Shell,会默认启动着一个ssh服务器的,进程名一般叫sshd 
  • 我们要操作我们的云服务器的话,需要一个ssh的客户端,我们的客户端软件就是Xshell,也可以使用别的客户端

在自己的电脑操作云服务器需要哪些操作

  1. ssh客户端
  2. 云服务器的公网IP
  3. 云服务器的ssh服务器的监听端口——默认是22端口
  4. 登录系统需要的用户名——root
  5. 登录系统需要的密码

关于Linux的操作方式

两种操作模式

  • 我们的Linux就是基于命令行的操作模式 

命令行的参数

  • 每个参数之间需要空格,空格的数量无所谓
  • 首先类似gcc的是命令名称
  • 后面的三个词,其实都被作为三个字符串的形式的参数,传入第一个参数代表的程序中,进行处理
  • 如何将空格分割的参数当成一个参数(比如aab ccc),按形式是两个参数,如何变成一个参数呢?可以用“aab ccc”或者'aab ccc'
  • Linux中提前写好的很多程序,遵循一些规划,参数在逻辑上被分为选项和输入

 命令行的自动补全

  •  因为每次输入都很累,所以提供了自动补全功能,使用Tab来进行补全
  • 由于w开头的候选命令很多,一次tab不行,需要两次tab,列出所有候选命令,如果候选命令有一个,使用一个tab就行

 Linux命令行的复制操作

Linux文件系统简介


1、Linux文件系统与Windows有较大的差别

  • 虽然都是使用树形结构组织文件,文件都是分为文件夹和普通文件(文件夹可以作为叶子节点也可以是非叶子节点,普通文件只能是叶子节点)
  • Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如C、D、E、F等
  • Linux的文件结构是单个的树状结构,根目录(用"/"表示),其他目录都要位于根目录下,/root是用户专属的目录,一般称为该用户的家目录(home),所有的操作在root下进行
  • 在Linux中使用正斜杠(/)而不是反斜杠(\)来划分目录。在Linux中,反斜杠是用来标识转义字符的

2、绝对路径:路径的写法,由根目录/写起

  • 例如: /usr/share/doc 这个目录
  • 绝对路径总是以正斜杠作为起始的,指明文件系统的根目录

3、相对路径:路径的写法,不是由/写起

  • 例如由/usr/share/doc要到/usr/share/man底下时,可以写成:cd ../man这就是相对路径的写法,相对路径表示就是从当前目录开始出发
  •  .表示当前所在路径,..表示当前所在路径的上一层

4、为了便于定位和查找,Linux中的每个目录一般都存放特定类型的文件,下表列出了各种Linux发行版本的常见目录

  • bin 是 Binary 的缩写,存放着可执行文件或可执行文件的链接(类似快捷方式)与 /bin 类似的是 /sbin 目录,System Binary 的缩写,这里存放的命令可以对系统配置进行操作。普通用户可能可以使用这里的命令查看某些系统状态,但是如果想更改配置,就需要 sudo 授权或者切换成超级用户。
  • 这里是系统启动需要的文件,你可以看到 grub 文件夹,它是常见的开机引导程序。我们不应该乱动这里的文件。
  • dev 是 device 的缩写,这里存放这所有的设备文件。在 Linux 中,所有东西都是以文件的形式存在的,包括硬件设备。比如说,sdasdb 就是我电脑上的两块硬盘,后面的数字是硬盘分区:

  • etc这个目录经常使用,存放很多程序的配置信息,比如包管理工具 apt:

  • tmp 是 temporary 的缩写,存储一些程序的临时文件。

  • var 是 variable 的缩写,这个名字是历史遗留的,现在该目录最主要的作用是存储日志(log)信息,比如说程序崩溃,防火墙检测到异常等等信息都会记录在这里。

注:
1、Linux是以树的结构存储文件的。不管你的电脑中有几块硬盘(即便没有),也不管硬盘分了几个区,Linux都会给你整出来个根目录,也就是上图中最顶层的“/”

  • 一旦你安装了Linux,它就会在根目录下创建几个文件夹,这些文件夹的名字是“root”、“home”、“dev”等等。路径分别是“/root”、“/home”、“/dev”等

2、众所周知,存储文件需要硬盘。Linux这波操作光搞了个目录,但是与硬盘和分区没有任何关系,那么这些文件夹和之后要写入的文件存在哪里啊?这就引入了Linux下“挂载”的概念

挂载即把一个分区或磁盘放在一个目录里

  •     挂载点就是一个特定的目录
  •     挂载的本质就是为设备提供一个访问入口,例如将光盘挂载到/mnt/cdrom的话,就可以通过访问/mnt/cdrom这个目录来访问光盘

具体的命令

首先进入Linux我们要知道的就是我是谁,我在哪,我的周围有什么,我是谁

who和whom

  • who表示当前登录系统的所有用户
  • whoami 我们是以哪个用户登录上了的

ls命令


1、作用:列出目标目录中所有的子目录和文件

  • 如果ls指定其他目录,那么就会显示指定目录下的文件和目录,也就是知道我的周围有什么的功能
  • 通过ls命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)、查看目录信息等等

2、命令格式:ls [选项] [目录名]

3、常用参数:

  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
  • -l 列出文件的详细信息。
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -R 列出所有子目录下的文件。(递归)
  • 可以写成 ls -la,等价于 ls -l -a

注:

  • 默认情况下,ls命令会输出目录下所有非隐藏文件,有时候这个输出会很多。因此可以使用过滤器来决定输出那些文件信息

    ⑴这个过滤器就是一个简单文本匹配的字符串

2、ls命令能够识别标准通配符,可以在过滤器中用它们进行模式匹配

  •     问号(?):代表一个字符,代表任意位置的单个字符
  •     星号(*):代表零个或多个字符

3、ls -l命令的输出跟ll命令的输出是一样的(ll是ls -l的别名)

4、在操作文件或目录时可以直接使用文件名或目录名、也可以使用绝对路径+文件名或目录名

  • 直接使用目录名或文件名的话:需要保证文件或目录在当前工作目录下
  • 使用绝对路径则没有要求

pwd命令

1、命令功能:查看当前工作目录的完整路径

2、命令格式:pwd [选项]

3、常用参数:一般情况下不带任何参数

  •     如果目录是链接时:pwd -P显示出实际路径,而非使用连接(link)路径

cd命令

  • 1、作用:切换当前目录至指定目录
  • 2、命令格式:cd [目录名]
  • 3    路径可以是绝对路径也可以是相对路径
  • 4    ..表示父目录,.表示当前目录

注意

  • 1、未切换目录时显示的是波浪号(~):表示当前位于主目录中(为用户目录,不是根目录)
  • 2、当前用户主目录和系统根目录是两个不同的概念
  • 3   cd-表示返回上一次的目录

touch命令

  • 语法:touch [选项]… 文件…
  • 功能:1如果一个文件不存在,创建一个新文件(普通文件),文件内容是空的 2如果一个文件存在,修改这个文件的last modified(上一次的修改时间/最后修改时间)

常用选项:

  • -a 或–time=atime或–time=access或–time=use只更改存取时间。
  • -c 或–no-create 不建立任何文档。
  • -d 使用指定的日期时间,而非现在的时间。
  • -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
  • -m 或–time=mtime或–time=modify 只更改变动时间。
  • -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
  • -t 使用指定的日期时间,而非现在的时间

cat命令


1、作用:cat主要有三大功能

  • 一次显示整个文件:cat filename
  •  从键盘创建一个文件:cat > filename只能创建新文件,不能编辑已有文件
  • 将几个文件合并为一个文件:cat file1 file2 > file

2、命令格式:cat [选项] [文件]...

3、命令参数:    

  • -n:对输出的所有行编号,由1开始对所有输出的行数编号
  • -b:对非空输出行编号
  •  -s 不输出多行空行

4、cat命令是一次性显示整个文件内容(不能编辑),一般用于查看不会实时变更的文件内容
    而tail命令一般用于查看会实时变更的文件内容,如日志文件等
    

mkdir命令

  • 语法:mkdir [选项] dirname…
  • 功能:在当前目录下创建一个名为 “dirname”的目录

常用选项:

  • -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录;

rm命令

  • 1、作用:删除一个目录中的一个或多个文件或目录

  •   如果没有使用-r选项,则rm不会删除目录。如果使用rm来删除文件,通常仍可以将该文件恢复原状

  • 2、命令格式:rm [选项] 文件1 文件2... 

3、命令参数:

  • -f 即使文件属性为只读(即写保护),亦直接删除
  • -i 删除前逐一询问确认(交互式)
  • -r 删除目录及其下所有文件

rm是一个危险的命令,使用的时候要特别当心,否则整个系统就会毁在这个命令。比如在/(根目录)下执行rm -rf *

  •  所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑

5、 删除目录下的一类文件:find 目录 -name "*.类型" | xargs rm -f

  • 通过find命令,查找指定目录下的某一类型的文件。并通过管道传递给xargs,执行后面的rm -f命令
  • 例如:find . -name "*.txt"  |xargs rm -rfv 。命令中的'.'表示当前目录下
  • rm -r *和rm ./*是删除当前目录下的所有文件。*是通配符。

mv命令

  • mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命 令,经常用来备份文件或者目录。

语法: mv [选项] 源文件或目录 目标文件或目录

功能:

  • 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中(相当于WIn中的剪切功能)。
  • 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。 (相当于Win中的重命名)
  • 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至 目标目录中。

常用选项:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
     

4、移动一个文件或目录时,指令最后一个参数肯定是一个路径;而重命名时,指令最后一个参数就不是路径了,而应该是一个文件名或目录名

cp命令

  • 语法:cp [选项] 源文件或目录 目标文件或目录
  • 功能: 复制文件或目录(类似Win中的复制粘贴功能)
  • cp/mv 关于询问,不是询问要不要复制/移动,而是询问是否覆盖原有的文件

 


常用选项:

  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
  • R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

man命令

  • Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是
  • man 语法: man [选项] 命令

常用选项:

  • -k 根据关键字搜索联机帮助
  • -num 只在第num章节找
  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

解释一下,面手册分为8章

  • 1 是普通的命令
  • 2 是系统调用,是由操作系统提供的,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文 件)
  • 3 是库函数,一般都是与C如printf,fread注意:这个库函数手册是需要安装的,命令如下:(root下执行)yum install -y man-pages1
  • 4 是特殊文件,也就是/dev下的各种设备文件
  • 5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
  • 6 是给游戏留的,由各个游戏自己定义
  • 7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
  • 8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
     

more命令

  • 语法:more [选项][文件]
  • 功能:more命令,功能类似 cat

常用选项:

  • -n 对输出的所有行编号
  • q 退出more

注意:在使用more的过程中,只能使用回车键进行向下查看,同时也可以使用/内容来搜索并查看相关的内容。

less命令

  • less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
  • less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
  • 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
  • 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

语法: less [参数] 文件

功能: less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前 不会加载整个文件。

选项:

  • -i 忽略搜索时的大小写
  • -N 显示每行的行号 /字符串:向下搜索“字符串”的功能
  • ?字符串:向上搜索“字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • q:quit
     

 head命令

  • head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的 开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

语法: head [参数]… [文件]…

功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

选项:

  • -n<行数> 显示的行数

tail命令

  • tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail - f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容.

语法: tail[必要参数][选择参数][文件]

功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

选项:

  • -f 循环读取
  • -n<行数> 显示行数

Linux管道

 进程之间通信的方式

  • 1信号量
  • 2管道
  • 3信号
  • 4共享内存
  • 5文件
  • 6网络

image-20220527175739266

  •  Linux中使用|来表示使用管道

举几个例子

获得一个文件的8 9 10行

  •  先获得有编号的所有内容,然后获得前10行,在获得前十行中的后三行

获得前20行中含有name的行

用来查看日志

统计日志中有多少个请求

Get有多少个 

访问/name的请求有多少个 

统计不同的URL的访问次数是多少 

 统计不同的方法请求的个数

重定向


输出重定向

  • 语法:> 文件
  • 功能:本来应该写入到显示器的内容,修改进程的标准输出

特征:

  • 会清空原始文件的内容,进行重新写入。
  • 如果文件不存在,就会自动创建文件并写入


 追加输出重定向 

  • 语法:>> 文件
  • 功能:将本来应该写入到显示器的内容,把它追加到文件的后面

特征:

  • 不会清空原始文件中的内容,会在原来文件内容的末尾进行追加
  • 如果文件不存在,就会自动创建

 输入重定向
语法:< 文件

功能:把本来应该i从键盘文件中读取数据的方式,修改进程的标准输入

grep指令

语法: grep [选项] 搜寻字符串文件

功能: 在文件中搜索字符串,将找到的行打印出来

常用选项

  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行

 

find指令

  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。
  • Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很 多,其中大部分选项都值得我们花时间来了解一下。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系 统可能会花费很长的时间(这里是指30G字节以上的文件系统)


语法: find pathname -options

功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

 ps

  • 语法:ps [参数]...
  • 功能:用于查看当前系统上运行的进程  ps -aux ps -elf

选项:

  • a 显示一个终端的所有进程
  • u 以用户为主的格式来显示程序状况
  • x 显示所有程序,不以终端机来区分

举例:

netstat

  • 语法:netstat [参数]...
  • 功能:查看系统上的网络状态.

选项:

  • -a 显示所有正在或不在侦听的套接字
  • -n 显示数字形式地址而不是去解析主机、端口或用户名
  • -p 显示套接字所属进程的PID和名称

举例:
 

 

free

  • 查看内存用了多少
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

库里不会投三分

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值