安装

  • VMWare + CentOs + FinalShell

使用vmware创建虚拟机,安装CentOS系统,再在本身的windows系统中使用finalshell远程连接虚拟机中的centos

Linux虚拟机如果重启,ip地址可能会发生变化,finalshell需要重新连接一下

查看ip地址:右键open in terminal,输入ifconfig

  • WSL + Ubuntu + Windows Terminal

无需虚拟一套硬件设备,直接使用主机的物理硬件构建Linux操作系统,并不会影响Windows系统本身的运行

用Windows Terminal来操作windows系统环境(因为Ubuntu自带终端窗口软件不太好用)

Linux目录结构

Linux只有一个根目录,所有文件都在他下面

linux echo到头部_运维


在Linux系统中,路径之间的层级关系,使用:/ 来表示

linux echo到头部_linux_02

ls命令

作用:列出目录下内容

ls [-a -l -h] [Linux路径]

作用:在命令行中,以平铺形式,列出当前工作目录(默认home目录)下的内容(文件或文件夹)

HOME 目录:每个 Linux 操作用户在 Linux 系统的个人账户目录,路径在: /home/ 用户名

  • 当 ls 不使用参数,表示列出:当前工作目录的内容,即用户的 HOME 目录

linux echo到头部_linux_03

  • 当使用参数, ls 命令的参数表示:指定一个 Linux 路径,列出指定路径的内容
ls /     
 # 列出根目录下的文件

linux echo到头部_文件路径_04

  • -a 选项,表示: all 的意思,即列出全部文件(包含隐藏的文件 / 文件夹)
  • 以 . 开头的,表示是 Linux 系统的隐藏文件 / 文件夹(只要以 . 开头,就能自动隐藏)
  • 只有通过 -a 选项,才能看到这些隐藏的文件 / 文件夹
  • -l 选项,表示:以列表(竖向排列)的形式展示内容,并展示更多信息

语法中的选项是可以组合使用的,比如学习的 -a 和 -l 可以组合应用。

写法:

  • ls -l -a
  • ls -la
  • ls -al

上述三种写法,都是一样的,表示同时应用 -l 和 -a 的功能

  • -h
  • -h 表示以易于阅读的形式,列出文件大小,如 K 、 M 、 G
  • -h 选项必须要搭配 -l 一起使用

cd切换目录

cd [Linux路径]
  • 参数表示要切换到哪个目录下
  • 不写参数默认回到用户HOME目录
cd / 
 # 切换到根目录

linux echo到头部_服务器_05

pwd查看当前工作目录

查看当前工作目录

pwd

linux echo到头部_文件路径_06

相对路径和绝对路径

去HOME目录下的Desktop

cd /home/yurui/Desktop  # 绝对路径
cd Desktop  # 相对路径
cd ./Desktop  # 特殊路径符

绝对路径:以根目录为起点

相对路径:以当前所在目录为起点

特殊路径符

  • . 表示当前,比如./a.txt,表示当前文件夹内的a.txt文件
  • … 表示上级目录,比如../表示上级目录,../../表示上级的上级目录
  • ~ 表示用户的HOME目录,比如cd ~,即可切回用户HOME目录
cd ..     # 回退一级
cd ../..  # 回退两级
cd ~      # 回到HOME目录
cd ~/Desktop  # 等同cd /home/yurui/Desktop

linux echo到头部_linux echo到头部_07


linux echo到头部_linux_08

test/hello.txt    # 当前目录下test下的hello.txt
../test/hello.txt   # 上一级目录下的test的hello.txt
~/test/hello.txt    # HOME目录下的test的hello.txt

mkdir创建目录

创建目录(文件夹)

mk [-p] Linux路径
  • 参数:被创建文件夹的路径(必填)
  • 选项:-p,可选,表示创建前置路径
mkdir test1  # 当前目录
mkdir ./test2  # 当前目录
mkdir ../test3  # 上级目录
mkdir ~/test4  # HOME目录

如果想一次性创建多个层级目录,使用-p选项

mkdir -p test/good/666

linux echo到头部_服务器_09


注意:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要在HOME外操作
涉及到权限问题,HOME外无法成功

touch-cat-more

touch创建文件

touch Linux路径
touch test.txt  # 当前目录

如何分辨文件和文件夹

  • 看UI颜色
  • ls -l ,开始标识为d的是文件夹,开始标识为-的是文件

cat查看文件内容

cat将内容全部显示出来

cat Linux命令
cat test.txt

linux echo到头部_运维_10

linux echo到头部_运维_11

more查看命令内容

more支持翻页,可以将文件一页一页展示

more Linux路径
  • 空格键翻页
  • q 退出查看

cp-mv-rm

cp复制文件/文件夹

cp [-r] 参数1 参数2
  • -r , 可选,复制文件夹使用,表示递归
  • 参数1 , 表示被复制的文件或文件夹
  • 参数2 , 表示要复制去的地方
cp a.txt b.txt   复制当前目录下a.txt为b.txt
cp a.txt test/   复制当前目录a.txt到test文件夹内
cp -r test test2 复制文件夹test到当前文件夹内为test2存在

linux echo到头部_运维_12

mv移动文件或文件夹

mv 参数1 参数2
  • 参数1 , 表示被移动的东西
  • 参数2 , 表示要移动去的地方
mv test.txt Desktop/
  • 改名效果:
mv test1.txt test2.txt  
# 相当于把test1.txt改名为test2.txt

linux echo到头部_linux echo到头部_13

改名只有在目标路径不存在时才会触发

rm删除文件/文件夹

rm [-r -f] 参数1 参数2 ...... 参数n
  • -r , 删除文件夹
  • linux echo到头部_linux echo到头部_14

  • -f ,force,强制删除(不会弹出确认信息)
  • 普通用户删除内容不会弹出提示,只有root管理员删除内容会有提示
  • 所以一般普通用户不会用到-f选项
  • 可以通过 su - root,并输入密码(和普通用户默认一样)临时切换到root用户体验
    通过输入exit命令,退回普通用户。(临时用root,用完记得退出,不要一直用)
  • 参数1、参数2……参数n 表示要删除的文件或文件夹路径,按照空格隔开
  • linux echo到头部_文件路径_15

rm是一个危险的命令,特别是在处于root(超级管理员)用户的时候。
请谨慎使用。

如下命令,请千万千万不要在root管理员用户下执行:
rm -rf /
rm -rf /*
效果等同于在Windows上执行C盘格式化。

通配符

rm命令支持通配符*,用来做模糊匹配

符号* 表示通配符,即匹配任意内容(包含空),示例:

test*,表示匹配任何以test开头的内容

*test,表示匹配任何以test结尾的内容

*test*,表示匹配任何包含test的内容

rm -r test*   # 删除所有以test开头的文件或文件夹

linux echo到头部_linux echo到头部_16


linux echo到头部_运维_17


linux echo到头部_运维_18

which-find

which查找命令的程序文件

Linux命令的本体就是一个个的二进制可执行程序,和Windows系统中的.exe文件,是一个意思。
我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里。

which 要查找的命令

linux echo到头部_文件路径_19

find按文件名查找文件

支持通配符

find 起始路径 -name "被查找文件名"
su - root   # 切换到root用户
find / -name "test"  # 全盘查找"test"

find / -name "test*"  # 全盘查找以test开头的文件

linux echo到头部_linux_20

find按文件大小查找文件

find 起始路径 -size +l -n[KMG]
  • +、-表示大于和小于
  • n表示大小数字
  • kMG表示大小单位,k(小写)表示kb,M表示MB,G表示GB
find / -size -10k    # 查找小于10kb的文件
find / -size +100M   # 查找大于100MB的文件

grep-wc-管道符

grep

从文件中通过关键字过滤文件行

grep [-n] 关键字 文件路径
  • -n ,表示在结果中显示匹配的行的行号
  • 关键字,表示过滤的关键字,带有空格或其他特殊符号,建议用” ”包围起来
  • 文件路径,也可以作为内容输入端口
grep -n "it" test.txt

linux echo到头部_文件路径_21

wc

统计文件的行数、单词数量

wc [-c -m -l -w] 文件路径
  • 选项,-c,统计bytes数量
  • 选项,-m,统计字符数量
  • 选项,-l,统计行数
  • 选项,-w,统计单词数量
  • 参数,文件路径,被统计的文件,可作为内容输入端口
wc test.txt   # 什么参数都不加
2 11 59 test.txt   # 返回行数、单词数、字节数、文件名

linux echo到头部_linux_22


linux echo到头部_linux_23

管道符

管道符:| 管道符的含义是:将管道符左边命令的结果,作为右边命令的输入

cat test.txt | grep "it"         
# cat test.txt 的结果作为 grep "it" 的输入

linux echo到头部_linux echo到头部_24

cat test.txt | wc -l
2

linux echo到头部_文件路径_25

cat test.txt | grep "It" | grep "age"  # 嵌套使用grep

linux echo到头部_运维_26

cat test.txt | grep "time" | wc -l  
# 统计test.txt中带有time关键字的有几行

linux echo到头部_文件路径_27

echo-tail-重定向符

echo输出内容

echo 输出的内容
  • 带有空格或\等特殊符号,建议使用双引号包围
    因为不包围的话,空格后很容易被识别为参数2,尽管echo不受影响,但是要养成习惯
echo "hello linux"

linux echo到头部_服务器_28

反引号

被`包围的内容,会被作为命令执行,而非普通字符

echo pwd         # 输出pwd
pwd

echo `pwd`      # 输出pwd命令的结果
/home/yurui

echo "我当前的工作目录是:`pwd`" > work.txt
cat work.txt
我当前的工作目录是:/home/yurui

linux echo到头部_文件路径_29


linux echo到头部_服务器_30

重定向符

重定向符:>和>>
>,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
>>,将左侧命令的结果,追加写入到符号右侧指定的文件中

echo “Hello linux” > test.txt
echo “Hello linux again” >> test.txt,追加新内容
echo “Hello csdn” >> test.txt,覆盖原本内容

linux echo到头部_linux echo到头部_31

ls > test.txt  # 把ls的结果写入test.txt

tail

查看文件尾部内容,跟踪文件最新更改

tail [-f -num] 路径
  • -f ,表示持续跟踪
  • ctrl + c 停止追踪
  • -num ,表示查看尾部多少行,不填默认10行
tail -5 test.txt

linux echo到头部_文件路径_32

tail -f -n 5 test.txt

Vim

vim编辑器三种工作模式

  • 命令模式(Command mode)
    命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。
    此模型下,不能自由进行文本编辑。
  • 输入模式(Insert mode)
    也就是所谓的编辑模式、插入模式。
    此模式下,可以对文件内容进行自由编辑。
  • 底线命令模式(Last line mode)
    以:开始,通常用于文件的保存、退出。

从命令可以进输入或底线,但是输入和底线之间不互通

如果需要通过vi/vim编辑器编辑文件,请通过如下命令:

vi 文件路径
vim 文件路径

linux echo到头部_linux echo到头部_33

vim兼容全部的vi功能

  • 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
  • 如果文件路径表示的文件存在,那么此命令用于编辑已有文件
快速体验
使用:vim hello.txt,编辑一个新文件,执行后进入的是命令模式
在命令模式内,按键盘 i ,进入输入模式
在输入模式内输入:hello linux
输入完成后,按esc回退会命令模式
在命令模式内,按键盘 : ,进入底线命令模式
在底线命令内输入:wq,保存文件并退出vi编辑器