Linux 概述,Linux 命令和 Vim使用

Linux 概述,Linux 命令

1. Linux 概述

目前我们较为熟悉的操作系统有:

Windows Android IOS 鸿蒙

实际上 Linux 操作系统在生活中极为常见!!!

医疗设备,车辆控制设备,工业制造设备等,嵌入式设备操作系统首选都是 Linux 系统。

2. Linux 命令

2.1 Linux 终端/控制台打开
  1. Linux 鼠标右键 --> 打开终端【推荐】

  2. 通过 Ubuntu 搜索功能,输入 ter 打开终端

  1. 在目标文件中鼠标右键 --> 在终端中打开【推荐】

2.2 Linux 目录结构

Linux 整体的目录结构和 Windows 不同, Windows 采用不同的盘符方式来区分不同的磁盘,但是 Linux 中没有分区/分盘的概念

  • Linux 中是采用【根目录】为最大文件夹方式管理整个系统中的所有文件/文件夹,任何一个文件或者文件夹【绝对路径】都是从【根目录】开始。

Linux 根目录
    根目录在系统中的标识为 / ,根目录下是系统的资源文件,系统文件,系统配置文件,安装的软件目录…… 【注意重点】不要在根目录操作任何内容,有可能会导致整个Linux系统崩溃。 

Linux 用户家目录/用户目录
    用户家目录/用户目录在系统中的标识为 ~ ,每一个用户对应一个家目录/用户目录,家目录中包含用户的相关数据,相关操作,相关配置,较为自由,可以任意操作,对其他用户以及操作系统没有任何影响。
    终端非指定文件夹打开时,默认【工作路径】是当前用户的家目录,在Linux终端中命令行前缀提示为:        username@pcName:~$(自己取得用户名例如:theo@theo:~$) 
    有两种途径可以找到家目录
    1、直接点击 Home ,就可以进入家目录文件
    2、点击计算机(根目录)-> home -> theo(自己取的用户名)即可进入家目录页面 

2.3 ls 查看命令

查看当前【工作目录】中文件或者文件夹情况

  • 【工作目录】就是终端打开对应的文件是哪一个目录,当前目录就是工作目录。

1、命令案例 :
theo@theo:~$ ls
        # 查看当前工作目录下的非隐藏文件或者文件夹,有一定颜色区分,告知是普通文件或者文件夹
theo@theo:~/111$ ls -a
        # 查看当前工作目录的所有文件或者文件夹,包括隐藏文件 or 文件夹,Linux 中隐藏文件 or 文件夹前缀是 .
theo@theo:~/111$ ls -al
        # 查看当前工作目录的所有文件或者文件夹,包括隐藏文件 or 文件夹 -l 命令参数是展示文件或者文件夹的详情。

tips(技巧):

  • 工作目录 Work Directory :是当前终端打开对应的文件夹。

  • Linux中,隐藏文件或者文件夹名称都是以 . 开头。

 

2、命令行文件详情内容分析
      详情包括:类型、权限、文件个数、拥有者、限制组、文件大小、最后修改时间和文件名称。 

2.4 cd 切换路径

cd ( change directory ) 作用:切换工作目录,在 cd 后需要加上目标工作目录的路径。

【注意】工作目录切换只能操作文件夹

theo@theo:~$ cd 111 
        # 切换当前工作目录到 111,111 在家目录中,可以直接使用对应的文件夹名称进行路径切换
theo@theo:~/111$ 
        # 切换之后的控制台/终端前缀提示,路径提示告知当前工作目录是家目录中的 111 目录

绝对路径

  • 是以 Linux 系统根目录 / 开头的路径,任何一个文件或则文件夹都有一个唯一的绝对路径。

  • 操作使用的路径是 /home/theo/111

  • 绝对路径在任意工作目录中,都可以直接达到对应文件夹位置。

相对路径

  • 在 Linux 中是以当前工作路径去往其他路径的捷径,需要非常清楚路径关系。

  • 路径标识符 . 【当前工作路径】和 ..【当前工作路径的上级目录】

  • 例如:当前工作路径为 /home/theo/111,期望到/home /theo/theo/222文件夹

theo@theo:~/111$ cd ../222
theo@theo:~/222$ 
theo@theo:~$ cd ..  # 切换到上级目录
theo@theo:/home$ cd ~   # 路径提示已经到达原本的上级目录,cd ~ 表示切换到家目录
theo@theo:~$ cd .  # 路径提示已经到达切换到家目录,cd . 表示切换到当前目录
theo@theo:~$    # 路径提示没有变化
2.5 mkdir 创建文件夹【常用】

make directory 创建文件夹操作,可以在终端中指定目录中创建对应的文件夹

  • 可以创建文件夹的路径/目录,必须有写入权限!

theo@theo:~$ mkdir a    # 家目录中创建一个 a 文件夹
theo@theo:~$ cd a   # 切换工作路径到 a 文件夹中
theo@theo:~/a$ mkdir 1 2 3 4 5  # 批量创建文件夹,文件夹名称之间使用空格隔开
theo@theo:~/a$ mkdir 1/a    # 在 a 文件夹工作目录下,创建 1 文件夹中的 a 文件夹
2.6 touch 创建文件

touch 在命令行中,创建普通文件

【注意】创建的文件必须有后缀名,如果没有后缀名需要知晓对应的文件功能。

theo@theo:~/a$ touch 2.txt  # 在当前工作目录下创建 2.txt 文件
theo@theo:~/a$ touch 1.c 2.c 3.c 3.txt  
                 # 在当前工作目录下同时创建多个文件,不同的文件使用空格隔开
theo@theo:~/a$ touch .qf    # 在当前工作目录下创建 .qf 隐藏文件
theo@theo:~/a$ touch LOCK   
        # 在当前工作目录下创建 LOCK 文件,没有明确类型名称,可以作为标记文件,用于后续的程序运行判断,运行条件

常用的文件后缀名有以下内容

.c .cpp .h .hpp .txt .md .doc .ppt .xlsx

2.7 cp 复制

cp copy 命令,可以复制文件,或者文件夹

theo@theo:~/a/1$ cp 1.c 2.c # 1.c 复制一份到 2.c
theo@theo:~/a/1$ cp -r a b   # 将 a 文件夹完整复制一份给 b 文件夹
        #【注意】如果是文件操作,需要加入 -r 命令行参数
2.8 mv 移动

mv move 移动,可以移动文件,文件夹,或者重命名相关内容

theo@theo:~/a/1$ mv a c 
        # a 是一个文件夹,c 是一个不存在的文件,当前操作是将 a 文件夹重命名为 c
theo@theo:~/a/1$ mv 1.c b/2.c
        # 将 1.c 文件移动到 b 文件夹中,同时修改文件名称为 2.c 
theo@theo:~/a/1$ mv 2.c 1.c 
        # 2.c 是一个文件,1.c 是一个不存在的文件,当前操作是将 2.c 文件重命名为 1.c
theo@theo:~/a/1$ mv b c
        # b 是一个文件夹,c 是一个存在的文件,当前操作是将 b 文件夹移动到 c 文件夹中
2.9 rm 删除【慎用】

rm remove 删除操作,可以用于删除文件或者文件夹,删除操作并不是放入到回收站/垃圾桶,是直接在磁盘抹掉数据。删除操作不可逆,无法撤销。

theo@theo:~/a/1$ rm 1.c # 删除当前工作目录下 1.c 文件
theo@theo:~/a/1$ rm 1.txt 2.c 3.txt
        # 可以同时删除多个文件,不同的文件名称之间使用空格隔开
theo@theo:~/a/1$ rm c
rm: 无法删除'c': 是一个目录
        # rm: 无法删除'c': 是一个目录,文件夹不可以直接删除,需要命令行参数
theo@theo:~/a/1$ rm -rf c
        # -rf 是删除文件夹的命令行参数

rm 配合通配符完成批量操作

theo@theo:~/a/1$ rm *.c 
        # 删除文件名称不限制,文件后缀名为 .c 的普通文件
theo@theo:~/a/1$ rm 1.*
        # 删除文件名为 1 的文件,文件类型不限制
theo@theo:~/a/1$ rm *.*
        # 删除当前工作目录下的任意普通文件,【注意】无法删除隐藏文件
theo@theo:~/a/1$ rm -rf *
        # 删除当前工作目录下的任意文件和文件夹,【注意】无法删除隐藏文件
theo@theo:~/a/1$ rm .*
        # 删除当前工作目录下的隐藏文件,可能会遇见无法删除的隐藏文件
2.10 sudo +chmod

sudo 超级权限命令

chmod 修改文件/文件夹操作权限命令

权限标记对应数值
r4
w2
x1
-0
例如:
    -rwxrwxr-w ==> 775 权限
        拥有者: 可读可写可执行
            r(4) + w(2) + X(1) ==> 7
        同组人: 可读可写可执行
            r(4) + w(2) + X(1) ==> 7
        访客: 可读不可写可执行
            r(4) + -(0) + X(1) ==> 5
            
    也可倒推 755 权限
        7 ==> r(4) + w(2) + X(1)
        5 ==> r(4) + -(0) + X(1)
        5 ==> r(4) + -(0) + X(1)
        即为 rwxr-xr-x
            拥有者 可读可写可执行
            同组人 可读不可写可执行
            访客 可读不可写可执行

【注意】555权限(dr-xr-xr-x)的文件夹不具备写入数据的权限,无法正常创建文件或文件夹。

drwxrwxr-x  2 theo theo 4096 12月 26 20:10 1 theo@theo:~/q$ sudo chmod 555 1     
        # sudo 命令操作需要使用密码,修改当前 1 文件夹权限为 555 任意用户都没有写入权限,无法直接在文件夹中创建内容
[sudo] theo 的密码: (输入自己设置的密码)
theo@theo:~/q$ ls -al
总用量 12
drwxrwxr-x  3 theo theo 4096 12月 26 20:08 .
drwxr-xr-x 23 theo theo 4096 12月 26 20:06 ..
dr-xr-xr-x  2 theo theo 4096 12月 26 20:10 1
theo@theo:~/q$ cd 1
theo@theo:~/q/1$ touch 1.c
touch: 无法创建'1.c': 权限不够
theo@theo:~/q/1$ mkdir 1
mkdir: 无法创建目录"1": 权限不够      
        # 被修改权限后 1 文件夹不可写,不能直接创建   文件 1.c
theo@theo:~/q/1$ sudo touch 1.c
theo@theo:~/q/1$ sudo mkdir 1
        # 可以通过 sudo 命令给予超级权限,创建文件和文件夹
theo@theo:~/q/1$ ls -al
总用量 12
dr-xr-xr-x 3 theo theo 4096 12月 26 20:20 .
drwxrwxr-x 3 theo theo 4096 12月 26 20:08 ..
drwxr-xr-x 2 root root 4096 12月 26 20:20 1
-rw-r--r-- 1 root root    0 12月 26 20:19 1.c
-rw-rw-r-- 1 theo theo    0 12月 26 20:11 1.txt
2.11 tar 压缩 or 解压缩

压缩

theo@theo:~/111$ tar -cvf test.tar 1 2
        # 将当前工作目录下的 1 和 2 文件夹压缩成 test.tar

解压缩

theo@theo:~/111$ tar -xvf test.tar
        # 解压文件,压缩包内容解压到当前工作目录
theo@theo:~/111$ tar -xvf test.tar -C 2
        # 解压文件,压缩包内容解压到 -C 指定的文件夹
2.11 其他补充命令
  1. ifconfig 查看当前虚拟机网络情况

  2. ping 用于网络测试,可以 ping 远端的 ip 地址,判断网络连接情况。

    theo@theo:~/111$ ping www.baidu.com 
            # ping 目标的网址
    theo@theo:~/111$ ping 120.222.152.85
            # ping 目标 ip
  3. pwd 查看当前工作目录(print work directory)

    theo@theo:~/111$ pwd
    /home/theo/111  # 绝对路径提示
  4. clear 清理命令行屏幕,常用 ctrl + L

  5. 方向键上下 ↑/↓ 回顾之前的命令内容

  6. cat

    theo@theo:~/111$ cat 2.txt
    aaa
    bbb
    ccc
    ddd
    eee
    fff
    ggg
    hhh
  7. tac

    theo@theo:~/111$ tac 2.txt  # 反向查看文本文档内容
    hhh
    ggg
    fff
    eee
    ddd
    ccc
    bbb
    aaa
  8. nl

    theo@theo:~/111$ nl 2.txt   
                        #正向带行号查看文本文档内容
         1  aaa
         2  bbb
         3  ccc
         4  ddd
         5  eee
         6  fff
         7  ggg
         8  hhh
    ​

3. Vim 使用

3.1 Vim 概述
终端编译器之神,作者已经去世。开源,开放,包容一切的开发工具。
Vim 有三种模式
    编辑模式
    插入模式
    命令模式

3.2 编辑模式
可以完成编辑相关的命令/指令,例如 复制,粘贴,删除,跳转
命令样式效果解释
yy复制光标所在行
y[n]yn表示数值,复制从光标所在行开始一共 n 行
dd剪切光标所在行内容,如果仅剪切不粘贴,就是删除操作
d[n]dn表示数值,剪切光标所在行开始一共 n 行
p粘贴当前剪切板中的内容
gg光标直接在整个文档的第一行
[n]ggn表示行数,跳转到文档的指定行
hjkl光标移动控制,h 左移动 j 下移动 k 上移动 l 右移动
u

撤销一次操作

i在光标所在位置,直接开启插入模式
o在光标所在位置,另起一行开始插入模式
shift + :进入命令模式

3.3 插入模式

从编辑模式进入到插入模式,需要使用字母 i 或 o

i 插入模式直接从当前光标所在位置开始
0 插入模式从光标所在位置另起一行开始

正常写代码操作

如果误使用 Ctrl + S , Ctrl + V , Ctrl + C 操作文件,需要使用 Ctrl + Q 退出

3.4 命令模式

可以用于操作关闭,保存,强制退出等功能。

命令功能描述
w保存当前文件
q退出
!如果文件已修改,退出会提示未保存,可以使用 q! 强制退出
avim 可以同时打开多个文件,a 命令可以操作当前打开的所有文件
vsplit水平方向打开多个文件

【常用组合】

  • wa 保存 Vim 打开的所有文件内容

  • wq 保存退出当前 Vim 打开的文件

  • wqa 报错退出 Vim 所有文件内容

  • q! 退出当前文件且不保存文件

  • qa! 退出 Vim 打开的所有文件,且不保存

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值