Linux

第一章

linux目录结构

linux的目录结构是一个树形结构,win系统可以拥有多个盘符,但是linux没有盘符这个概念,只有一个根目录”/“所有文件都在它下面。

在linux系统中,路径之间的层级关系使用”/“来表示,而在win系统中,路径之间的层级关系使用“\”来表示。

1
/usr/local/hello.txt

linux命令入门

通用格式

在linux中,命令都有其通用的格式:command [-options][parameter]

  • command:命令本身;
  • -options:可选(非必填) 命令的一些选项,可以通过选项控制命令的行为细节;
  • parameter:可选(非必填) 命令的参数,多数用于命令的指向目标。

ls命令

ls命令的作用是列出目录下的内容

1
ls [-a -l -h][linux路径]

如果直接使用ls命令本体,表示以平铺形式,列出当前工作目录下的内容(文件或文件夹)

当我们启动终端时,系统会默认将目录设置在用户的HOME目录。那么什么是HOME目录呢?每个Linux操作用户在linux系统的个人账户目录。win系统和linux系统均设有用户的HOME账户。

  • 命令中的参数

​ 路径中可以写上你想查看指定的文件夹,比如ls /表示查看根目录下的所有文件

  • 命令中的选项

    -a:all的意思,即列出全部文件(包含隐藏的文件/文件夹)只有通过-a选项才能看到隐藏文件或文件夹

    -l:表示以列表竖向排列的形式展示内容b

    -h:表示以易于阅读的形式列出文件的大小,比如Kb,Mb,Gb.注意,h一定要和l一起用才有作用

语法中的选项是可以组合使用的

1
2
3
ls -la
ls -al
ls -a -l

这三种语法都是成立的

cd命令

更改当前所在的工作目录。cd命令来自英文(change directory)

1
cd [linux命令]

如果后面的参数不写,表示回到用户的HOME目录下面。写的话,就表示切换到对应的目录下去。

pwd命令

展示当前所在的工作目录。pwd命令来自英文(print work directory)

pwd无选项,无参数,直接输入即可

相对路径和绝对路径

绝对路径是以根目录为起点,描述路径的一种写法,路径描述以/开头

相对路径是以当前目录为起点,描述路径的一种写法,路径描述无需以/开头

特殊路径符

. 表示当前目录,比如 cd ./Desktop表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致

.. 表示上一级目录,比如 cd ..即可切换到上一级目录,cd ../..切换到上二级的目录

~ 表示HOME目录,比如cd~即可切换到HOME目录

mkdir命令

创建新的目录(文件夹)。mkdir命令来自英文(make directory)

1
mkdir [-p] linux路径

参数必填,即创建文件夹的路径,相对路径或绝对路径均可

-p可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录。比如说

1
mkdir -p Desktop/1/2/3

1、2和3文件夹都是之前没有的,如果不加-p,那么会报错,因为这些文件夹属于多层级的目录。

注意:创建文件夹需要修改权限,请确保操作均在HOME目录内

touch命令

创建文件

1
touch linux路径

参数必填,即创建文件的路径,相对路径或绝对路径均可

cat命令

查看文件的内容

1
cat linux路径

参数必填,即需要查看文件的路径,相对路径或绝对路径均可

more命令

more同样可以查看文件内容,与cat不同的是cat是直接将内容全部显示出来。而more支持翻页。

more的语法与cat类似,这里就不过多赘述了。

cp命令

cp命令可以用于复制文件/文件夹,cp命令来自英文单词:copy

1
cp [-r] 参数1 参数2

-r:可选,用于复制文件夹使用,表示递归

参数1:linux路径,表示被复制的文件或文件夹

参数2:linux路径,表示要复制去的地方

mv命令

移动文件/文件夹,mv命令来自英文单词:move

1
mv 参数1 参数2

参数1:linux路径,表示被移动的文件或文件夹

参数2:linux路径,表示要移动去的地方,如果目标不存在,则进行改名

rm命令

删除文件/文件夹,rm命令来自英文单词:remove

1
rm [-r -f] 参数1 参数2 ……参数N

-r:删除文件夹

-f:表示force,强制删除,不会弹出提示确认信息

​ 普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示,所以一般用户 用不到-f选项

参数1、参数2……:表示要删除的文件或文件夹路径,按照空格隔开

通配符(*):匹配任意内容

  • aaa*:表示匹配任意以aaa开头的内容
  • *aaa:表示匹配任意以aaa结尾的内容
  • *aaa*:表示匹配任何包含aaa的内容

which命令

查看所使用的一系列命令的程序文件存放在哪里

1
which 要查找的命令

比如 which cd可以查看cd命令的程序文件存放的位置

find命令

搜索指定文件

  • 按文件名查找

    1
    find 起始路径 -name ”被查找文件名“

    同样,查找命令中也能使用通配符来做模糊匹配

  • 按文件大小查找

    1
    find 起始路径 -size +n [KMG]

    +/-:表示大于和小于

    n:表示大小数字

    KMG:表示大小单位,kb/mb/gb

    实例:
    查找小于100kb的文件:find / -size -10k

grep命令

通过关键字过滤文件行。

1
grep [-n] 关键字 文件路径

-n:表示在结果中显示匹配和行的行号

关键字:表示过滤的关键字,带有空格或其他特殊符号,建议使用” “将关键字包围起来

文件路径:表示要过滤内容的文件路径,可作为内容输入端口

示例:

比如说我们在文档中写若干行文字,我们将 ”a“ 作为关键字,那么这行命令就会输出包含关键字 a 的所有行,并将关键字标红。此外,如果加上-n,那么会显示该句话的行数。

wc命令

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

1
wc [-c -m -l -w] 文件路径

-c:统计bytes数量

-m:统计字符数量

-l:统计行数

-w:统计单词数量

文件路径:被统计的文件

管道符(|)

将管道符左边命令的结果作为右边命令的输入

echo命令

在命令行内输出指定内容

1
echo 输出的内容

如果内容带有空格或\等特殊符号,建议用双引号包围起来

反引号(`)

被它包围的内容将会作为命令执行

重定向符

>:将左边命令的结果覆盖写入到符号右侧的文件

>>:将左侧命令的结果追加写入到符号右侧的文件

tail命令

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

1
tail [-f -num] linux路径

-f:表示持续跟踪。终端指令不会断掉,只要操作者做了更改,就立马会检测到文件的更改

-num:查看尾部多少行,不写默认为10行。注意-num在实际写的时候num要写成指定的数字

vi/vim编辑器

介绍

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

vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,还具有shell程序编辑的功能,以不同颜色的字体来辨别语法的正确性。

工作模式
  • 命令模式

    所敲的按键编辑器都理解为命令,不能自由进行命令编辑

  • 输入模式

    对文件内容进行自由编辑

  • 底线命令模式

​ 通常用于文件的保存退出

当我们进入vim时,默认进入到命令模式,可以通过一定的指令切换成输入模式。当然也可以从输入模式切换回命令模式。此外,还能通过命令模式进入底线命令模式。