步入Linux的现代方法

步入Linux的现代方法

0:Linux的初步认识

系统的认识

什么是系统?

  • 鼠标能点、键盘能输入的东西、阅读看电影,还可以拓展安装一些软件简单来说就是人机交互所依赖的东西,开机依赖系统

Linux操作系统认识,以及开源的提出:Linux千奇百怪的版本

目前世界上流行的电脑系统:

  • Windows——Bill Gates(比尔·盖茨)
  • GUN/Linux——Linus Benedict Torvalds(林纳斯·托瓦兹)——开源
  • Unix(Linux的爸爸)——汤普森和里奇和——给政府机关公司等机构付费使用
  • Linux发行版本:Ubuntu CentOS Red Hat Kali……

Linux的用途,各类发行版本

Linux主要运用在服务器上

  • Linux严格来说是指单指操作系统的内核,因操作系统中包含了许多用户图形接口和其他使用工具
  • 只要遵循GNU通用公共许可证(GPL),任何个人和机构都可以自由的使用Linux的所有底层源代码,也可以自由的修改和再发布

Linux衍生

  • Fedora——Red Hat,CentOS,Mobin
  • Debian——Ubuntu,Deepin,Raspberry Pi OS,Knopix
  • OpenSUSE——GeckoLunix,OpenSUSE EcoLab Spin

1:VMware虚拟机的使用

  1. VMware虚拟机

安装系统的方式

  • 实体机
  • 双系统
  • 虚拟机

VMware版本

  • 软件版本,大多数人追求新版本,企业中更多需要的是稳定,我们应该根据企业标准去学习,企业要什么我们学什么

VMware更新

  • 更新版本并不会影响虚拟机的还原

2:发行版本安装

先尝试安装Ubuntu

PS:查看软件安装执行内容,有助于学习

VMware Tools

VMware Tools安装

  • 打开终端,进入根目录,输入ls命令,在主目录下可以看到安装包
  • 使用tar -zvxf + 压缩文件名解压文件,然后用ls.命令查看是否有解压后的文件
  • 使用cd命令进入解压后的文件,再执行sudo . /vmware -install.pl命令安装
  • 遇到提示yes或者no都可直接输入yes或者回车

Linux其他发行版本的安装

  • 商业发行版
  • 社区发行版

下载指导

  • 从官网下载

3:步入Linux的世界

Linux究竟需要我们学习什么?——Linux四大组成部分

Linux入门不是学“Linux”,先体验各发行版Linux,比较和其他系统的不同和相同点,Linux学习的是Shell

Linux操作系统四个部分

  • Linux Kernel内核
  • GNU(”GNU’S Not Unix!”)工具
  • GUI Desktop环境
  • Application 应用

PS:IT术语,它并不是遵循通常的英语音标,而是专业术语

Linux是命令还是图形界面?——GUI是什么?GNU是什么?GUN/Linux和Linux有什么区别?

  • GUI——界面
  • GNU——命令、系统工具

Linux内核组成部分

Linux Kernal

  • 硬件设备的管理
  • 软件程序(系统)、操作系统
  • 系统内存
  • 文件管理

文件系统

文件系统就是读写标准

  • Linux中分区概念ext ext2 ext3 ext4
  • Windows磁盘文件管理概念FAT32 NTFS exFAT

GNU核心:Coreutils and Shell

GNU组织

Unix上具有的一些软件,Linux内核本身没有,所以GNU模仿Unix,为Linux写了一些必要的软件

GNU核心Coreutils

指原本再Unix上的一些命令和工具,被移植到了Linux上,供Linux使用的一套工具,coreutilities软件包,包括:

  • 用来处理文件的工具
  • 用来操作文件的工具
  • 用来管理进程的工具

GNU核心Shell

提供给用户使用的软件,用户拿它使用电脑,实现交互

命令行壳层提供一个命令行界面(CLI)

图象壳层提供一个图形用户界面(GUI)

GUI Desktop

  • XWindows
  • KDE
  • GHOME
  • Unity

结束语:经验介绍

  • 重点在于Shell
  • 画思维导图总结Linux操作系统关系

4:Bash shell命令

CLI(command-line interface,命令行界面)准备

CLI相关设置,选择Preferences

20240923223840666-image

  • Theme Variant 主题变换
  • Open new terminals in 打开一个新终端的方式,Tab代表在同一窗口下创建新终端,Window代表开一个新窗口打开新终端
  • New tab position 新终端位置,默认为上一次位置

20240923224011510-image_1

  • 快捷方式设置,Ctrl+Alt+T 打开新终端

20240923224011312-image_2

20240923224011273-image_3

 

 

CLI terminal

  • 用户名@机器名:当前所在目录$表示等待用户输入
  • ~表示用户home目录
  • /home是存放所有用户文件的根目录

20240923224010553-image_5

  • Settings中About可以查看机器名与相关信息

20240923224010904-image_6

20240923224010725-image_7

 

 

Linux命令参数

  • ls命令是用来显示目标列表,在Linux中是使用率最高的命令之一
  • ls -l的缩写就是ll,列出当前目前可见文件详细信息,输出的信息从左到右依次包括文件名、文件类型、权限、硬链接数、所有者名、组名、大小(byte)
  • man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助,配置文件帮助和编程帮助等信息

Linux命令搜索引擎 命令,Linux Linux命令搜索引擎 命令详解:最专业的Linux命令大全,内容包含Linux命令手册、详解、学习,值得收藏的Linux命令速查手册。 – Linux 命令搜索引擎 (wangchujiang.com)

https://wangchujiang.com/linux-command/

Linux根目录,它们和Windows有什么区别

  • Windows盘符,文件目录\反斜杠
  • Linux一切皆文件,文件目录/斜线

Linux根目录解析,fhs权威论文,搞定所有的发行版本文件夹分布

  • / Linux根目录
  • /bin 二进制目录 GNU工具 命令
  • /cdrom 光盘
  • /etc 系统配置文件
  • /home 用户主目录
  • /lib 库目录 存放库文件
  • /lost+found 当系统发生错误时,将一些丢失的片段放置在这个目录下
  • /mnt 挂载(外在的设备和电脑进行连接)目录
  • /proc 伪文件系统
  • /run 运行目录
  • /snap 包管理,软件包安装管理方式
  • /tmp 临时目录
  • /var 可变目录
  • /boot 启动目录
  • **/**dev 设备目录
  • /media 媒体目录
  • /opt 可选目录
  • /root root用户的主目录 管理员
  • /sbin 系统二进制目录,GNU高级管理员使用的命令或者工具
  • /srv 服务目录
  • /usr 用户二进制目录,GNU工具

Filesystem Hierarchy Standard (pathname.com)

https://www.pathname.com/fhs/

cd命令

  • cd进入用户主目录
  • cd.. 切换到上一层
  • cd -返回到上一次的工作目录

Ctrl + C? 在Linux上可不是复制

Ctrl+C( kill foreground process ) 发送SIGINT信号给前台进程组中的所有进程,强制终止程序的执行

  • Ctrl+l 清屏

绝对路径

  • 全路径** D:\Study\Frank_FuckPPT\Linux**

相对路径

  • 不全路径** \Frank_FuckPPT\Linux**

Linux上的路径与Windows上的路径

  • gedit /Doucument/doc/1.txt 操作根目录 绝对路径
  • gedit ~/Document/doc/1.txt 当前目录 相对路径
  • gedit ./Document/doc/1.txt 当前目录 相对路径
  • gedit Document/doc/1.txt 当前目录 相对路径

如何练习?经验课

  • 单点符号.当前文件
  • 双点符号..当前目录的父目录

ls进阶用法:文件夹下各种匹配过滤符号

  • ***** 号替代多个符号
  • **?**号替代一个符号
  • -a,,–all 列出目录中所有文件,包括以“.”开头的文件
  • -l, –format=long,–format=verbose除每个文件名外,增加显示文件类型、权限、硬链接数等信息
  • -F,–classify, –file-type在每个文件名后附上一个字符以说明该文件的类型

touch命令

touch

  • 用于把已存在文件的时间标签更新为系统当前的时间(默认方式)
  • 用来创建新的空文件

cp命令

cp将源文件或目录复制到目标文件或目录中 **源文件:**制定源文件列表。默认情况下,cp命令不能复制目录,如果想要复制目录,则必须使用-R选项 **目标文件:**指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录

  • cp 你想复制的文件? 你想复制到哪?
  • -i 覆盖既有文件之前线询问用户
  • -R/r 递归处理,将指定目录下的所有文件与子文件一并处理

cp递归练习技巧

  • pwd 显示当前工作目录

20240923224436538-image_8

 

Linux终端光标移动技巧

  • Tab 自动补全
  • Ctrl + E 跳到行尾
  • Ctrl + B 光标向左移动
  • Ctrl + H 删除光标前一个字符 相当于退格
  • Ctrl + T 把光标前一个字符往后移动
  • Ctrl + R 搜索之前用过的命令
  • Ctrl + W 删除光标前一个单词
  • Ctrl + U 删除光标前面的内容
  • Ctrl + K 删除光标后面的内容

lnk链接文件的介绍

  • .lnk 快捷方式
  • Linux链接文件

符号链接(软链接)

  • 指快捷方式 原来的文件/文件夹必须存在

硬链接

  • 指副本 原来的文件/文件夹必须存在

符号连接和硬链接

  • ln命令用来为文件创建链接,链接类型分为硬链接和符号链接两种,默认的链接类型是硬链接。如果要创建符号链接必须使用-s选项
  • ln 原文件名 链接的文件名
  • ls -l 查看
  • 软链接:有指向,是一个单独的文件,不同介质
  • 硬链接:无指向,同一介质
  • 软链接复制的是链接文件

注意事项

  • 符号链接Symbolic links
  • 软链接 Soft links

mv命令

  • mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中
  • 重命名,mv 重命名谁 命名成什么

移动和骚操作

  • 移动,mv 移动的文件 移动到的目录
  • 输入完之后,cd !$
  • !$是列出并执行你命令历史里面最近的一条记录的路径

rm——最佳年度删库跑路

  • sudo rm -rf /* 该命令极度危险
  • rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文 件,只是删除整个链接文件,而原有文件保持不变
  • rm -I 有提示
  • **rm -t -rf **无提示

注意:Linux没有回收站

创建文件夹以及删除文件夹

  • mkdir 用来创建目录
  • rmdir 用来删除空目录

文件类型

  • file用来探测给定文件的类型
  • Windows 文本是txt
  • Linux 文本是text

cat,more,less

  • cat 连接多个文件并打印到标准输出,适用于短文本
  • -n, –number 对所有行编号,从1开始编号
  • more 显示文件内容,每次显示一,以全屏方式显示
  • b上一页 space 下一页 q退出
  • less分屏上下翻页浏览文件内容
  • less命令允许用户向前或向后浏览文件,而more命令只能向前浏览
  • 用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键
  • 浏览文件中输入 / 用于搜索

tail 和 head 命令

  • tail 在屏幕上显示指定文件的末尾若干行tail -n 2 demo.c
  • head显示文件的开头部分head -n 2 demo.c

5:Shell+更上一层系统上的shell

任务管理器

  • 进程、性能、用户、服务
  • 服务:监测用户行为,为用户服务

20240923224649729-image (1)

20240923224649387-image

 

 

ps和top命令

  • top 可以实时动态的查看系统的整体运行情况,是一个综合了多方信息检测系统性能和运行信息的实用工具
  • ps(process status)是Linux最复杂的命令之一,是最基本同时也是非常强大的进程查看命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的
  • ps axo pid,commm,pcpu 查看进程的PID、名称以及CPU占用率
  • ps aux | grep named 查看named进程详细信息

kill命令

  • 配合ps -aux | grep named 查看named进程详细信息
  • Kill pid 杀死进程

挂载的含义

插入新硬盘,分了新磁盘区sdb1,但它现再还不属于/,把新硬盘的区sdb1挂载到工作目录的/Share/文件夹下,之后访问这个/Share/文件夹就相当于访问这个硬盘的sdb1分区了,对/Share/的任何操作,都相当于对sdb1里文件的操作

mount

  • monut 用于挂载Linux系统外的文件
  • /mnt 为自动挂载点
  • **sudo fdisk -l **查看硬盘及分区信息
  • sudo mount /dev/sdc1/mnt
  • sudo umount /mnt
  • 自动挂载目录不能卸载

安卓设备连接挂载

  • 安卓链接协议(SMB)挂载路径 /run/suer/1000/gvfs

df和du

  • df 用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB,可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息
  • h或–human-readable以可读性较高的方式来显示信息
  • du 也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的

sort命令

  • Sort 对文本文件中所有行进行排序,默认对每一行第一个字符排序,并展示出来,并不会改变原来的文件
  • -n,–numeric-sort 根据数字排序
  • -M,–month-sort安装非月份、一月、十二月的顺序排序
  • -r,–reverse将结果倒叙排列

grep基础认识、搜索文件

  • grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

20240923224720282-image (2)

图片[12]-步入Linux的现代方法-开心狐社区

打包,压缩,归档,解压缩 它们究竟区别在哪?

  • **tar **打包,压缩
  • tar -cvf 1.tar 1.txt 仅打包,不压缩
  • tar -zcvf 1.tar.gz 1.txt 打包后。以gzip(gz)压缩
  • tar -zxvf /opt/soft/test/1.tar.gz 将tar包解压缩

练习

  • 安装vmwaretools

章节结束语与经验

  • 探索Shell

6:父子shell-步入Linux的现代方法

父子shell的概念

  • bash
  • ps-f
  • ps –forest

20240923224818712-image

 

分号在命令里有什么作用

  • 命令之间带分号依次执行
  • 创建一个子shell去执行

20240923224851848-image (1)

20240923224851832-image (2)

 

 

sleep和jobs

  • sleep 将目前动作延迟一段时间 ,后面可接 s 为秒,m 为 分钟,h 为小时,d 为日数
  • 挂在后台,如果要干掉,则用kill命令
  • jobs 显示作业的状态,-l 在作业信息中额外的列出PID

20240923224909349-image (3)

 

后台

  • 后台执行 tar -zxvf ……;&

coproc协程

  • Liunx协程处理命令。协程可以同时做两件事。在后台生成一个子shell,并在子shell中执行命令coproc sleep 10,coproc frank_av{ sleep 10; sleep 300;},一定要分号结尾,大括号内空格

外部命令和内建命令

  • Shell执行的命令可以分为内建命令(built-in)和外部命令(external) 前者是构建在shell内部 后者是一个独立的文件(可以是二进制文件,也可以是一个脚本) 内建命令由当前shell本身来执行,例如echo, cd等等
  • 外部命令的执行shell进程会fork一个子进程,父进程随后挂起,然后在子进程中exec加载外部文件,子进程返回后,父进程才继续执行

20240923224929974-image (4)

 

alias别名

  • alias 定义或显示别名
  • type 显示指定命令的类型
  • alias li=”ls -li”,但是关闭当前shell就不能用了

 

章节结束语与经验

  • 掌握与熟用

7:环境变量-步入Linux的现代方法

什么是环境变量?

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等,文件夹写入的环境变量,意味则可以在任何位置访问该文件夹,相当于告诉系统这个目录在哪里

全局环境变量和局部环境变量

  • windows:系统变量与用户变量
  • linux:全局环境变量和局部环境变量
  • 全局环境变量printenv
printenv USER
echo $USER
cd $HOME

20240923230357525-image (18)

20240923225000317-image (6)

 

 

用户和局部变量的定义

  • 局部变量只能在当前shell执行,子shell或者退出后就不能用了 注意 定义局部变量不要大写,全局变量用大写,下划线命名法

20240923225037591-image (7)

 

定义全局变量

  • export 为shell变量或函数设置导出属性 可以子shell里执行,但关闭后仍失效

20240923225101124-image (8)

20240923225102622-image (9)

 

 

默认的环境变量

  • set

20240923230255617-image (17)

 

为啥要用环境变量

  • 配置开发环境需要使用
  • 临时环境变量PATH=$PATH:/home/yeats/Templates/

20240923225136871-image (11)

 

永久配置环境变量?

启动文件:开机的时候默认执行的环境变量bash shell

  1. 登录shell
  2. 非登录就打开shell
  3. 运行脚本非交互shell

cat /etc/profile

~/.bashrc

~/.bash_profile

~/.profile

~/.bash_login

cat bashrc

加入全局环境变量(需学习vim)

 

8:PMS和软件安装的介绍-步入Linux的现代方法

PMS系统和软件安装的介绍

PMS Package Management System

  • 解决工具依赖问题 apt install apt-get install apt-cache aptitude(已淘汰)

安装、更新、卸载

  • apt -h 更新 sudo apt update 升级 sudo apt upgrade 卸载 sudo apt remove oneko

其他发行版本?

server版本配置镜像源 sudo vim /etc/apt/source.list http://archive.ubuntu.com/ubuntu/ 修改成国内阿里云库: http://mirrors.aliyun.com/ubuntu/

安装第三方软件案例:例如github开源软件的指导

9:用户和权限-步入Linux的现代方法

用户权限的含义和作用

  • 用户与权限,不可能让所有人有所有的权限-不安全,避免被入侵,用户ID UID,系统用户UID<500 cat /etc/passwd sudo cat /etc/shadow

创建、删除、更改用户

创建sudo useradd user1 删除sudo userdel user1 更改密码sudo passwd user1 chage 修改帐号和密码的有效期限

group

  • linux组groups 目的 :共享资源的权限

tail /etc/group ubuntu不允许把所有用户纳入一个组,而是每个用户都有一个单独的组 sudo groupadd groupfrank sudo groupdel groupfrank

 

 

文件、文件夹权限

rwx 文件所有者(Owner)组创始人的权限 r-x 用户组(Group)组下属成员权限 r-x 其它用户(Other Users)其它组成员权限

20240923225922588-image (13)

 

 

详见:Linux chmod命令

作业:自学chmod命令

  • usermod命令 用于修改用户的基本信息 usermod 命令不允许你改变正在线上的使用者帐号名称 当 usermod 命令用来改变user id,必须确认这名user没在电脑上执行任何程序

章节结束语

边用边学,自学很重要

10 :编辑器之神——Vim

附上:vi/vim键盘图

20240923225616664-image (14)

 

编辑器简单介绍:vim编辑器之神; emac神之编辑器

  • emacs-神之编辑器
  • vim-编辑器之神

Vim是从 vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器 vi 编辑器通常被简称为 vi,而 vi 又是 visual editor 的简称 。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的 Vim 是 vi 的加强版,比 vi 更容易使用。vi 的命令几乎全部都可以在 vim 上

vim的简单使用方式

  • 安装vim sudo apt install vim
  • vim工作模式,国外一般认为两种模式 普通模式(命令操作模式):操作文件 插入模式:编辑 编辑模式到普通模式:ESC
  • 国内一般认为三种模式

一般命令模式:简称一般模式,也是最先进入的工作模式,输入vi +文件名可直接进入一般命令模式,在此模式下可进行文本内容的查看、复制、删除、替换等功 能。当不能输入相关文本内容

编辑模式:在一般模式下,输入 i 或 o 或 a 进入编辑模式,在此模式下可输入文本内 容。当输入 i 时,工作界面如图所示,只有此时状态才可以输入文件内容。输 入完成后,可单击 ESC 键退出编辑状态,进入一般模式

命令行模式:在一般模式下,输入:或/或?进入命令行模式,在此模式下可输入相关命令当输入:wq 此时命令表示保存退出命令,单击回车键,自动保存文件,并退 出 vi 编辑器或者单击 ESC 键,重新返回一般模式

三种工作模式关系如图所示

20240923225653425-image (15)

 

vim 编辑器的退出,一般分三种情况

:q 表示不保存退出 :wq 保存退出 :q!强制退出,此时也不保存文件

移动光标

上:k 下:j 左:h 右:l 下一行:b 上一行:w 查找上一处字符:N 查找下一处字符:n

翻页

上翻页(BACKWARD):ctrl+B 下翻页(FORWARD):ctrl+F 上滚:ctrl+E 下滚:ctrl+Y 移动到最后一行:G 或者shift+g 移动到第一行:gg

不同方式编辑文本、跳跃单词操作技巧

i光标位置的前面插入 a 光标位置后面的插入 o 直接enter到下一行 x 删除光标所在字符 dd 删除整个一行 u 撤销 dw 移除当前所在光标往后到单词 b 跳跃单词首字母 e 跳跃单词最后 w 跳跃单词 先跳跃到单词首字母,然后跳跃到单词最后 shift+w ;shift+b大跳

跳跃行首行尾技巧

  • shift+6 或者0 跳跃到本行到开头
  • shift+4 跳跃到本行末尾

大括号跳跃函数段落技巧

  • {}跳跃大括号

vim复制剪切粘贴

p粘贴 yw复制一个单词 y$ 从当前开始往后复制到行末尾

Visual可视化模式

v 选择文本 V 选择行 v G 全选 ctrl+v矩阵选择 o切换文本首尾 vaw快速选择单词 vab包括括号 vaB包括大括号 va< 包括尖括号

视图模式其它技巧

v shift+<往左缩进 v shift+>往右缩进 shift+~或者shift+u shift+U大小写转换

查找和替换

查找 / 按n查找下一个 :s /const/let/g 一行const替换成let :%s /const/let/g 所有const替换成let set number 临时显示行号 :9,15s /const/let/g 9-15行const替换成let :%s /const/let/gc 有提示的替换

vim的基础配置

touch .vimrc vim .vimrc 将以下代码写入.vimrc中

set syntax=on
set tabstop=4
set softtabstop=4
set number
set enc=utf-8
set showmatch

source.vimrc

20240923225723155-image (16)

图片[29]-步入Linux的现代方法-开心狐社区

结束语

只有你不停地向前,才知道自己要做什么

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容