安装
- 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系统中,路径之间的层级关系,使用:/ 来表示
ls命令
作用:列出目录下内容
ls [-a -l -h] [Linux路径]
作用:在命令行中,以平铺形式,列出当前工作目录(默认home目录)下的内容(文件或文件夹)
HOME 目录:每个 Linux 操作用户在 Linux 系统的个人账户目录,路径在: /home/ 用户名
- 当 ls 不使用参数,表示列出:当前工作目录的内容,即用户的 HOME 目录
- 当使用参数, ls 命令的参数表示:指定一个 Linux 路径,列出指定路径的内容
ls /
# 列出根目录下的文件
- -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 /
# 切换到根目录
pwd查看当前工作目录
查看当前工作目录
pwd
相对路径和绝对路径
去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
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
注意:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要在HOME外操作
涉及到权限问题,HOME外无法成功
touch-cat-more
touch创建文件
touch Linux路径
touch test.txt # 当前目录
如何分辨文件和文件夹
- 看UI颜色
- ls -l ,开始标识为d的是文件夹,开始标识为-的是文件
cat查看文件内容
cat将内容全部显示出来
cat Linux命令
cat test.txt
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存在
mv移动文件或文件夹
mv 参数1 参数2
- 参数1 , 表示被移动的东西
- 参数2 , 表示要移动去的地方
mv test.txt Desktop/
- 改名效果:
mv test1.txt test2.txt
# 相当于把test1.txt改名为test2.txt
改名只有在目标路径不存在时才会触发
rm删除文件/文件夹
rm [-r -f] 参数1 参数2 ...... 参数n
- -r , 删除文件夹
- -f ,force,强制删除(不会弹出确认信息)
- 普通用户删除内容不会弹出提示,只有root管理员删除内容会有提示
- 所以一般普通用户不会用到-f选项
- 可以通过 su - root,并输入密码(和普通用户默认一样)临时切换到root用户体验
通过输入exit命令,退回普通用户。(临时用root,用完记得退出,不要一直用)
- 参数1、参数2……参数n 表示要删除的文件或文件夹路径,按照空格隔开
rm是一个危险的命令,特别是在处于root(超级管理员)用户的时候。
请谨慎使用。
如下命令,请千万千万不要在root管理员用户下执行:
rm -rf /
rm -rf /*
效果等同于在Windows上执行C盘格式化。
通配符
rm命令支持通配符*,用来做模糊匹配
符号* 表示通配符,即匹配任意内容(包含空),示例:
test*
,表示匹配任何以test开头的内容
*test
,表示匹配任何以test结尾的内容
*test*
,表示匹配任何包含test的内容
rm -r test* # 删除所有以test开头的文件或文件夹
which-find
which查找命令的程序文件
Linux命令的本体就是一个个的二进制可执行程序,和Windows系统中的.exe文件,是一个意思。
我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里。
which 要查找的命令
find按文件名查找文件
支持通配符
find 起始路径 -name "被查找文件名"
su - root # 切换到root用户
find / -name "test" # 全盘查找"test"
find / -name "test*" # 全盘查找以test开头的文件
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
wc
统计文件的行数、单词数量
wc [-c -m -l -w] 文件路径
- 选项,-c,统计bytes数量
- 选项,-m,统计字符数量
- 选项,-l,统计行数
- 选项,-w,统计单词数量
- 参数,文件路径,被统计的文件,可作为内容输入端口
wc test.txt # 什么参数都不加
2 11 59 test.txt # 返回行数、单词数、字节数、文件名
管道符
管道符:|
管道符的含义是:将管道符左边命令的结果,作为右边命令的输入
cat test.txt | grep "it"
# cat test.txt 的结果作为 grep "it" 的输入
cat test.txt | wc -l
2
cat test.txt | grep "It" | grep "age" # 嵌套使用grep
cat test.txt | grep "time" | wc -l
# 统计test.txt中带有time关键字的有几行
echo-tail-重定向符
echo输出内容
echo 输出的内容
- 带有空格或\等特殊符号,建议使用双引号包围
因为不包围的话,空格后很容易被识别为参数2,尽管echo不受影响,但是要养成习惯
echo "hello linux"
反引号
被`包围的内容,会被作为命令执行,而非普通字符
echo pwd # 输出pwd
pwd
echo `pwd` # 输出pwd命令的结果
/home/yurui
echo "我当前的工作目录是:`pwd`" > work.txt
cat work.txt
我当前的工作目录是:/home/yurui
重定向符
重定向符:>和>>>
,将左侧命令的结果,覆盖写入到符号右侧指定的文件中>>
,将左侧命令的结果,追加写入到符号右侧指定的文件中
echo “Hello linux” > test.txt
echo “Hello linux again” >> test.txt,追加新内容
echo “Hello csdn” >> test.txt,覆盖原本内容
ls > test.txt # 把ls的结果写入test.txt
tail
查看文件尾部内容,跟踪文件最新更改
tail [-f -num] 路径
- -f ,表示持续跟踪
- ctrl + c 停止追踪
- -num ,表示查看尾部多少行,不填默认10行
tail -5 test.txt
tail -f -n 5 test.txt
Vim
vim编辑器三种工作模式
- 命令模式(Command mode)
命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。
此模型下,不能自由进行文本编辑。 - 输入模式(Insert mode)
也就是所谓的编辑模式、插入模式。
此模式下,可以对文件内容进行自由编辑。 - 底线命令模式(Last line mode)
以:开始,通常用于文件的保存、退出。
从命令可以进输入或底线,但是输入和底线之间不互通
如果需要通过vi/vim编辑器编辑文件,请通过如下命令:
vi 文件路径
vim 文件路径
vim兼容全部的vi功能
- 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
- 如果文件路径表示的文件存在,那么此命令用于编辑已有文件
快速体验
使用:vim hello.txt,编辑一个新文件,执行后进入的是命令模式
在命令模式内,按键盘 i ,进入输入模式
在输入模式内输入:hello linux
输入完成后,按esc回退会命令模式
在命令模式内,按键盘 : ,进入底线命令模式
在底线命令内输入:wq,保存文件并退出vi编辑器