Linux

1.初始Linux

1.1操作系统简介

1.概述

操作系统(Operation System, OS),是管理计算机硬件软件资源的计算机程序,同时也是计算机系统的内核与基石。

2.作用

3.操作系统结构图
在这里插入图片描述

4.主流操作系统按照应用领域的划分

1、桌面操作系统

  • Window 系列
    • 用户群体大
  • macOS
    • 细节处理的更好, 没有windows软件丰富, 价格高
  • Linux
    • 应用软件少

2、服务器操作系统

  • Linux

    • 安全、稳定、免费
    • 占有率高
  • Windows Server

    • 付费
    • 占有率低

3、嵌入式操作系统

  • Linux

4、移动设备操作系统

  • IOS
  • Android (基于Linux)
  • 华为鸿蒙(基于linux)

1.2Linux简介

1.特点

  • 两基本思想
    • 一切都是文件
    • 每个软件都有确定的用途
  • 完全免费
  • 完全兼容POSIX1.0标准
  • 多用户,多任务
  • 良好的界面
  • 支持多种平台

2.优点

  • 源代码完全开源
  • 具有非常强大的网络功能
  • 工具链完整

2.Linux的安装和使用

2.1Vmware

1.简介

  • 不需要区分或重开机就能在同一台pc上使用两种以上的操作系统
  • 完全隔离并且保护不同操作系统的环境以及所有软件,材料。
  • 不同的操作系统之间还能互动操作
  • 有复原功能
  • 能够设置并且随时修改操作系统的操作环境

3.系统与设置命令

3.1Linux 用户和用户组管理

3.1.1Linux账号管理

1.必须在root用户的权限下
2.使用命令时保证此用户不再使用中(一般直接退出)
3.查看选项可直接输入相关命令(如:useradd,passwd,usermod,userdel·····)

  • 创建用户:useradd (选项) 用户名
  • 用户口令(密码): passwd (选项) 用户名
  • 修改用户:usermod 选项 用户名
    • 例如:usermod -l bbb aaa
  • 删除用户:userdel (选项) 用户名

3.1.2Linux用户组

  • 创建用户组:groupadd (选项) 用户组名
  • 修改用户组:groupmod (选项) 用户组名
    • 例如:groupmod -n kaifazu kaifa
  • 查询用户所属组:groups 用户名
  • 删除用户组:groupdel 用户组名

3.1.3将用户添加到组

语法: gpasswd (选项) 用户组名
gpasswd是Linux下的给管理工具,用于将一个用户添加到组或从组中删除
例如: gpasswd -a user1 kaifazu

选项:

  • -a:添加用户到组
  • -d:从组中删除用户
  • -A:指定管理员
  • -M:指定组成员和-A的用途差不多
  • -r:删除密码
  • -R:限制用户登入组,只有组中的成员才可以newgrp加入该组

3.2系统管理

3.2.1日期管理

语法:date (选项)

选项:

  • -d “字符串”:显示字符串所指的日期与时间
  • -s “字符串”:根据字符串来设置日期与时间
  • -u:显示GMT
  • –help:在线帮助
  • –version:显示版本信息

3.2.2显示用户

语法:logname (选项)

选项:

  • –help:在线帮助
  • –version:显示版本信息

3.2.3切换用户

语法:su (选项)

选项:

  • -c 命令 :切换用户执行命令,执行完毕后再变回原来的用户
    • su -c ls root
  • –help:显示说明文件
  • –version:显示版本信息
  • 用户名 :要变更的用户名
  • ARG:传入新的shell参数

3.2.4id命令

1.我们如果需要查看当前账号详细信息的时候,比如查看它的用户id、群组id以及所属组的时候,我们就可以使用id命令进行查看
2.id命令用于显示用户的ID,以及所属群组的ID。
3.id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
4.id命令参数虽然很多,但是常用的也就是id命令,不带参数的,主要看他的uid和组信息

格式:
id (选项)
在这里插入图片描述

3.2.5sudo命令

提高普通用户的操作选项
格式:sudo (选项)

选项

  • -V:显示版本信息
  • -h:显示指令的使用方式
  • -l:显示出自己的权限

3.2.6top命令

实时显示process(进程)的状态
格式:top (选项)

top (选项)

  • top 实时的显示所有进程的信息
  • top -c 实时的显示所有进程的信息(显示完整命令)
  • top -p PID 实时的显示指定进程的信息

结束监控快捷键:q

3.2.7ps命令

查看当前时刻的进程信息
格式:ps (选项)

ps (选项)

  • ps:显示当前正在运行的进程的信息
  • ps -A:显示系统中所有的进程信息
  • ps -ef:显示系统中所有的进程信息(完整信息)
  • ps -u 用户名:显式指定用户的进程信息

3.2.8kill命令

中断执行中的程序
格式:kill (编号) 进程PID

常用:

  • kill 进程PID:杀死指定进程
  • kill -9 进程PID:彻底杀死指定进程
  • kill -l:显示编号及其作用
  • kill -9 $(ps -ef|grep 用户名):杀死指定用户的所有进程
  • killall -u 用户名:杀死指定用户的所有进程

3.2.9关机命令

格式:shutdown(选项)

常用

  • shutdown:关机(不同的版本会有差异)
  • shutdown -h now:立马关机
  • shutdown +1 “警告信息”:1分钟后关机
  • shutdown -r +1 “警告信息”:1分钟后重启
  • shutdown -c:取消当前关机操作

3.2.10重启命令

格式:reboot(选项)

常用
reboot:立马重启

3.2.11who命令

显示当前登录系统的用户
格式:who (选项)

选项

  • -H:会多显示出标题信息
  • –help:在线帮助
  • –version:显示版本信息

3.2.12timedatectl命令

校正服务器时间,时区

常用

  • timedatectl status:显示系统的当前时间和日期
  • timedatectl set-ntp false:禁用时间同步
  • timedatectl set-time “2222-2-2 11:11:11”:设置时间
  • timedatectl set-ntp true:启用时间同步

3.2.13clear命令

清屏(但不删内容)

3.2.14exit命令

exit命令用于退出目前的shell。

4.Linux的目录管理

Linux只有一个根目录/,所有的文件与目录都在它下面

4.1Linux文件与目录管理

4.1.1目录常用命令

常见命令作用
ls列出目录
cd切换目录
pwd显示目前的目录
mkdir创建新目录
rmdir删除空目录
cp复制文件或目录
rm删除文件或目录
mv移动文件或目录 修改文件或目录的名字

ls

列出目录里的内容
格式:ls (选项)

选项

  • ls:显示不隐藏的文件与文件夹
  • ls -a:显示所有的文件和文件夹(包括隐藏)
  • ls -l:显示不隐藏的文件与文件夹的详细信息
  • ls -al:显示所有文件与文件夹的详细信息

pwd

显示当前所在目录
语法:pwd -P或直接pwd

cd

切换目录
语法:cd (相对路径或绝对路径)
特例:cd …返回到上一级目录

  • 相对路径:相对当前目录而言

  • 绝对路径:有根目录/开始

mkdir

创建目录

常用

  • mkdir aaa(目录名) :创建目录
  • mkdir -p bbb(目录名)/ccc(目录名):创建多级目录

rmdir

删除空的目录

常用

  • rmdir aaa(目录名) :删除目录
  • rmdir -p bbb(目录名)/ccc(目录名):删除ccc,如果删完后bbb是空的,bbb也一起删除。

rm

删除文件或目录
语法:rm (选项) 文件/目录

常用

  • rm 文件:删除文件
  • rm -r 文件/目录:删除文件或目录中的所有内容
#删除文件,不加任何参数,会有询问的页面
[root@LiangGaRy-Master ~]# rm a.txt 
rm:是否删除普通文件 "a.txt"?y
 
#删除目录
[root@LiangGaRy-Master ~]# rm 123
rm: 无法删除"123": 是一个目录
#如果不加参数,无法删除目录
 
[root@LiangGaRy-Master ~]# rm 123
rm: 无法删除"123": 是一个目录
[root@LiangGaRy-Master ~]# rm -r 123
rm:是否进入目录"123"? y
rm:是否删除普通文件 "123/a.txt"?y
rm:是否删除普通文件 "123/c.txt"?y
rm:是否删除普通文件 "123/b.txt"?y
rm:是否删除目录 "123"?y
 
#通常的操作是:
[root@LiangGaRy-Master ~]# rm -rf aaa
实际操作的时候一定要注意,谨慎

cp

复制文件
语法:cp (选项) 数据源 目的地

常用

  • cp aaa/a.txt ccc:将aaa文件夹中的a.txt文件复制到ccc文件夹中
  • cp -r aaa/* ccc:将aaa文件夹中的所有内容复制到ccc文件夹中
  • cp -r aaa ccc:将aaa文件夹复制到ccc文件夹中

mv

改名(同一文件夹下)或移动文件,文件夹(不同一文件夹下)
语法:mv (选项) 数据源 目的地

4.2Linux文件基本属性

在这里插入图片描述

4.3Linux文件属主(所属用户)和属组

1.更改属组

语法:chgrp (选项) 组名 文件
选项: -R:对当前目录下的所有档案与子目录进行相同权限的变更

常用

  • chgrp root aaa:将aaa的属组改为root
  • chgrp -v root aaa:将aaa的属组改为root(会多一条提示语句)

2.更改属主和属组

语法1:chown 属主名 文件名: 更改属主
语法2:chown (选项) 属主名:属组名 文件名:更改属主和属组

选项

  • -R:处理指定目录以及其子目录下的所有文件

举例

  • chown root aaa:将aaa的属主改为root
  • chown root:root bbb:将bbb的属主和属组改为root
  • chown -R root:root bbb:将bbb文件夹和里面所有的属主和属组改为root

3.chmod命令

作用:修改属主,属组,其他用户的权限
修改方式:数字方式和符号方式

  • 数字方式

    • 语法:chmod (选项) 数字权限 文件或目录
    • 在这里插入图片描述
    • 选项:
      • -R:对当前目录下的所有档案与子目录进行相同权限的变更
      • –help:获取选项信息
      • –version:显示版本
    • 举例:chmod -R 700 aaa
  • 符号方式

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 举例:

      • chmod o-rwx bbb
      • chmod -R a=rwx bbb
      • chmod -R u=rwx,g=rwx,o=rwx bbb

5.文件管理

5.1touch命令

如果文件不存在就创建文件,如果文件存在就修改它的时间属性
语法:touch (选项) 文件名

常用

  • touch a.txt:如果文件不存在就创建文件,如果文件存在就修改它的时间属性
  • touch a{1…10}.txt:批量创建空文件
  • stat a.txt:查看文件的详细信息

5.2vi与vim编辑器

5.2.1vi与vim介绍

1、vi介绍

vi是 visual interface的简称, 是linux中最经典的文本编辑器。

  • vi的特点
    • 只能是编辑 文本内容, 不能对 字体 段落进行排版
    • 不支持鼠标操作
    • 没有菜单
    • 只有命令
  • vi编辑器在 系统管理 服务器管理 编辑文件时, 其功能永远不是图形界面的编辑器能比拟的

2、vim介绍

vim:是从 vi (系统内置命令)发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。

vim 则可以说是程序开发者的一项很好用的工具。

5.2.2vi/vim模式

vi/vim模式主要分为以下三种:

命令模式:在Linux终端中输入“vim 文件名”就进入了命令模式,但不能输入文字。
编辑模式:在命令模式下按i就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。
末行模式:在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。

下面是三种模式的简单分析图:

在这里插入图片描述

上图总结

上面的三种模式简单总结下就是:

1、vim 开始进入时是命令模式

2、按下I的时候会进入编辑模式

3、按下ESC然后在按下:的时候是末行模式

5.2.3打开和新建文件

语法:vim 文件名

说明:

  • 如果文件已经存在,就会直接打开文件
  • 如果文件不存在,会打开一个临时文件,再保存且退出后,就会创建一个文件

5.2.4三种模式切换

在这里插入图片描述

进入末行模式保存文件

语法:

  • :q          当vim进入文件没有对文件内容做任何操作直接退出
  • :q!         当vim进入文件对文件内容有操作但不想保存退出
  • :wq        正常保存退出
  • :wq!       强行保存退出,只针对与root用户或所有人

5.2.5文件查看

命令功能
cat 文件名查看小文件内容
less -N 文件名分屏显示大文件内容
head -n 文件名查看文件的前一部分
tail -n 文件名查看文件的最后部分
grep 关键字 文件名根据关键字搜索文本文件内容

1.cat命令

  • cat a.txt:查看a.txt的内容
  • cat -n a.txt:查看a.txt的内容(加入行号)

2.grep命令

根据关键字,搜索文本文件内容
语法:grep (选项) 关键字 文件名

选项

  • -n:把包含关键字的行数也显现出来
  • -i:把包含关键字的行也显现出来,搜索时,忽略大小写
  • -v:把包含关键字的行也显现出来

与进程命令一起使用

  • ps -ef | grep 关键字:查找包含关键字的进程
  • ps -ef | grep -c 关键字:查找进程个数

3.tail命令

查看文件最后部分
语法:tail (选项) 文件名

选项

  • -数字:显示文件的最后几行
  • -f:动态的读取文件的最后十行(ctrl +c停止)
  • -n +数字:显示文件的内容,从指定行到文件末尾
  • -c 数字:显示最后指定的字节数

常用

  • tail -3 big.txt:显示文件的最后3行
  • tail -f big.txt:动态显示文件的最后10行
  • tail -4f big.txt:动态显示文件的最后4行
  • tail -n +30 big.txt:显示文件的内容,从第30行到文件末尾
  • tail -c 10 big.txt:显示最后10个字节

head命令与tail命令类似

4.less命令

查看大文件
语法:less (选项) 文件名

选项

  • -N:可以显示行数

按q退出less阅读,按上下键阅读

5.2.6vim定位行

查看文件并定位到具体的行数
语法:vim 文件名 +行数

5.2.7异常处理

如果vim异常退出,在磁盘上可能会保存有交换文件, 不会再原来的文件上修改

.a.txt.swp

我们直接删除.a.txt.swp交换文件即可

5.3echo命令

语法

  • echo “黑马(字符串)”:展示文本
  • echo “黑马(字符串)” > 文件名:将字符串写到文件中(覆盖文件中的内容)
  • echo “黑马(字符串)” >> 文件名:将字符串写到文件中(不覆盖文件中的内容)
  • echo 不存在的文件 &>> 文件名(存在):将命令的失败结果追加到存在的文件
    在这里插入图片描述

5.4awk命令

AWK是一种处理文本文件的语言,是一个强大的文本分析工具(文本里面的内容实际不变)
语法:awk (选项) ‘语法’ 文件名

作用
1.过滤
在这里插入图片描述
2.分割与获取

  • -F ‘,’:使用指定字符(,)分割
  • $数字:获取第几段(列)内容
  • $0:获取当前行内容

在这里插入图片描述
3.显示效果

  • OFS=“===”:向外输出时的段分割字符串
  • toupper(参数):字符转成大写
  • tolower(参数):字符转成小写
  • length(参数):返回字符长度

在这里插入图片描述
在这里插入图片描述

4.计算

语法:‘BEGIN{初始化操作} {每行都执行} END{结束时操作}’

在这里插入图片描述
在这里插入图片描述

5.5软命令(相当于快捷方式例如:QQ)

语法:ln -s 目标文件路径 快捷方式路径

在这里插入图片描述

5.6find查找

在指定目录下查找文件

语法:find 指定目录 (选项) 条件
.表示当前目录,/表示根目录

选项

  • -name “文件名”:按名字查找
  • -ctime -n或+n:按时间查找(-n:n天以内。+n:n天以前)

在这里插入图片描述

5.7read命令

6.Linux备份压缩

6.1gzip命令

压缩文件
语法:gzip (选项) 文件名

常用
gzip a.txt:压缩文件
gzip *:压缩当前目录下所有文件文件
gzip -dv *:解压当前目录下所有文件文件并列出详细信息

6.2gunzip命令

解压文件
语法:gunzip (选项) 文件名

常用
gunzip a.txt:解压文件

6.3tar命令

打包,压缩,解压(文件/文件夹)
语法:tar (必要与不必要选项) 文件

选项

  • -c:建立新的压缩文件
  • -v:显示指令执行过程
  • -f 文件名:指定压缩文件
  • -z:通过gzip指定处理压缩文件
  • -t:列出压缩文件中的内容
  • -x:解压文件

常用

  • tar -cvf 打包文件名 文件名:打包文件并指定打包后的文件名(仅打包不压缩)
  • tar -zcvf 压缩文件名 文件名/文件夹名:压缩文件或文件夹并指定压缩文件名(打包压缩)
  • tar -ztvf 压缩文件名 :查看压缩文件中有哪些文件
  • tar -zxvf 压缩文件名 :解压

在这里插入图片描述
在这里插入图片描述

6.4zip命令

概述:压缩文件
语法:zip (必要与不必要选项) 文件
注意:此命令会在压缩后产生一个具有".zip"扩展名的压缩文件

选项

  • -q:不显示指令执行过程
  • -r:递归处理。将指定目录下的所有文件和子目录一并处理

常用

  • zip -q -r 压缩文件名 文件/文件夹:压缩
    在这里插入图片描述

6.5unzip命令

概述:解压文件
语法:unzip (必要与不必要选项) 文件
注意:解压".zip"扩展名的压缩文件

选项

  • -l:显示压缩文件里的内容
  • -d 文件:指定文件解压后要存储的目录

常用

  • unzip -l 压缩文件名:显示压缩文件里的内容
  • unzip -d 指定文件夹 压缩文件:解压

在这里插入图片描述

6.6bzip2命令

压缩
语法:bzip2 (选项) 文件
注意:压缩后的文件比原来的要小,但是花费时间长。若没有加上任何参数,则会产生扩展名为".bz2"的压缩文件,并删除原始文件。

6.7bunzip2命令

解压
语法:bunzip2 (选项) 文件

选项

  • -v:解压文件时,显示详细信息

在这里插入图片描述

7.网络与磁盘管理

7.1网络命令

7.1.1ifconfig命令

显示或配置网络设备的命令
语法:ifconfig (选项)

常用

  • ifconfig:显示激活的网卡信息
  • ifconfig ens37 down:关闭网卡
  • ifconfig ens37 up:启动网卡
  • ifconfig ens37 192.168.23.199:配置ip地址
  • ifconfig ens37 192.168.23.199 netmask 255.255.255.0:配置ip地址和子网掩码

7.1.2ping命令

检测是否与主机连通
语法:ping (选项) 网址

选项

  • -c 数字:设置完成要求回应的次数

常用

  • ping www.baidu.com:检测是否与百度连通(ctrl + c 停止)
  • ping -c 2 www.baidu.com:指定接受包的次数

7.1.3netstat命令

显示网络状态
语法:netstat (选项)

选项

  • -a:显示所有连线中的Socket
  • -i:显示网卡列表

7.2磁盘命令

7.2.1lsblk命令

列出硬盘的使用情况
语法:lsblk (选项)

选项

  • -f:显示系统信息

常用

  • lsblk:列出硬盘的使用情况
  • lsblk -f:显示系统信息

7.2.2df命令

显示目前在Linux系统上,硬盘的使用情况
语法:df (选项)

选项

  • –total:显示所有的信息
  • -h:把显示所占内存大小换算成KB,MB,GB等形式进行展示

常用

  • df:显示目前在Linux系统上,硬盘的使用情况
  • df 文件夹:显示文件夹的使用情况
  • df --total:显示所有的信息
  • df -h:把显示所占内存大小换算成KB,MB,GB等形式进行展示

7.2.3mount命令

用于挂载Linux系统外的设备
语法:mount (选项) 目录

常用

  • mount -t auto /dev/cdrom 文件夹:开始挂载
  • umount 文件夹:卸载

在这里插入图片描述

8.shell与安装

8.1yum使用

8.1.1安装tree

  • yum -y install tree:安装tree
  • tree:执行tree,展示当前的目录结构

8.1.2移除tree

  • yum remove tree:移除tree

8.1.3yum查找

  • yum list tom*:找出以tom开头的软件

8.1.4yum源

8.2rpm使用

被yum代替了,rpm只能安装已经下载到本地机器上的rpm包

8.3shell使用

8.3.1shell入门

1.说明

shell就是一个命令解释器
shell是一个在操作系统和应用程序之间的一个命令翻译工具

  • window
    • 默认的shell为:cmd.exe
  • linux
    • 默认的shell为:/bin/bash

2.shell的使用方式

  • 手工方式:
    手工敲打键盘,重点:逐行输入命令,逐行进行确认执行
  • 脚本方式:
    把手工命令输入到一个文件里,执行文件,就能达到执行命令的效果,这个文件叫做脚本文件。

3.编写第一个shell

  • 新建一个文件后缀名为sh
  • 书写内容
#! /bin/bash
#这是第一个脚本文件
echo "lhk228"
echo "hello"
  • 执行

8.3.2shell注解

  • 单行注释
#  注解内容
  • 多行注释

:<< !
   注解内容
!

:<< 任意字符
    注解内容
任意字符

8.3.3shell变量

  1. 定义变量
  • 普通变量
    在这里插入图片描述

  • 命令变量
    在这里插入图片描述

  1. 使用变量(得到变量的内容)

    $变量名

    “$变量名”

    ${变量名}

    “${变量名}”
  2. 只读变量

readonly 变量名

  1. 删除变量

unset 变量名

8.3.4shell数组

  • 定义数组:arr=(1 2 3 4 5 6)
  • 给数组元素赋值:arr[0]=1
  • 获取元素:${arr[0]}
  • 获取长度:${#arr[*]}或${#arr[@]}

8.3.5shell运算符

  1. 运算符
    在这里插入图片描述

  2. 字符串运算符

  3. 关系运算符

  4. 布尔运算符

  5. 逻辑运算符

8.3.6shell流程控制

8.3.7shell函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值