Linux基础命令

发布时间:2024年01月05日

1.Linux的目录结构

?Linux的目录结构是一个树型结构

Windows系统可以拥有多个盘符,如C盘、D盘、E盘等

Linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面。

Linux路径的描述方式

使用 ?/ 来表示

/usr/Local/hello.txt

出现在开头的 / 表示为 根目录

出现在后面的 / 表示为 层次关系

课后练习:

请根据语言描述,写出对应的Linux路径

1.在根目录下有一个文件夹test,文件夹内有一个文件hello.txt,去描述文件的路径

/test/hello.txt

2.在根目录下有一个文件star.txt,去描述文件的路径

/star.txt

3.在根目录下有一个文件夹itcast,在itcast文件夹内有文件夹star,在star文件夹内有文件hello.txt,请描述文件的路径。

/itcast/star/hello.txt?

2.Linux命令入门

?2.1 什么是命令、命令行

命令: 即Linux操作指令,是系统内置的程序,可以以字符化的形式去使用。

命令行:即Linux终端,可以提供字符化的操作页面供命令执行。

2.2 Linux命令的基础格式

command [-options]? [parameter]

command : 命令本身

-options :命令的一些选项,可以通过选项控制命令的行为细节。

parameter : 命令的参数,多数用于命令的指向目标等(多数为文件路径)。

注:语法中[],表示可选的意思。?

示例:

ls -l /home/itheima? ? ? ? ?ls是命令本身,-l是选项,/home/itheima是参数

这条命令的含义是以列表的形式,显示/home/itheima目录内的内容

2.3 ls命令的参数和选项

2.3.1?ls命令

作用:列出目录下的内容

语法:ls [-a -l -h] [Linux路径]

-a 显示隐藏文件(以 .开头的文件或文件夹默认被隐藏)

-l 以列表(竖向排列)的形式展示内容,并展示更多内容。

-h 显示文件的大小单位(h必须和l一起使用

可以混搭使用

以下写法的功能都是-a 和-l 的功能

ls -la

ls -al

ls -l -a?

2.3.2 HOME目录

每一个用户在Linux系统的专属目录,默认在:/home/用户名

2.3.3 当前工作目录?

?Linux命令行在执行命令的时候,需要一个工作目录,打开命令行程序(终端)默认设置工作目录在用户的HOME目录

3 目录切换相关命令(cd/pwd)

3.1 cd (Change Directory)切换工作目录

语法 :cd [Linux路径]?

cd? ?Linux路径切换到该路径目录下
cd回到用户的HOME目录

?3.2 pwd(Print Work Directory) 查看当前工作目录

语法:pwd

课后练习

请使用cd命令并结合ls命令,任意在Linux文件系统内探索。并尝试找出名字叫做games的文件夹在哪里。

4 相对路径、绝对路径和特殊路径符

4.1 绝对路径

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

4.2 相对路径

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

4.3 特殊路径

特殊路径符含义示例
.当前目录cd ./Desktop
..上一级目录cd .. 或 cd ../..
~用户的HOME目录cd ~ 或 cd ~/Desktop

?

?./test/hello.txt 或 test/hello.txt

../test/hello.txt

~/test/hello.txt

5 创建目录命令(mkdir)

?mkdir (Make Directory)

语法: mkdir [-p] Linux路径

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

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

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

?

mkdir -p ~/itacst/itheima/nice/666?

6 文件操作命令part1(touch、cat、more)

?6.1 touch 创建文件

语法:touch Linux路径

touch命令无选项,参数必填,表示在该路径下创建文件。

6.2 cat 查看文件内容

语法:cat Linux路径

cat同样没有选项,只有必填参数:被查看的文件路径,相对、绝对、特殊路径符都可以使用。

6.3 more 查看文件内容(支持翻页)

语法:more Linux路径

同样没有选项,只有必填参数:被查看的文件路径,相对、绝对、特殊路径符都可以使用。

在查看的过程中

按空格下一页

按B上一页

按回车下一行

按q退出查看

7 文件操作命令part2(cp、mv、rm)

7.1 cp 复制文件或文件夹

语法:cp [-r] 参数1 参数2

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

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

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

示例

?将当前目录下的test.txt文件复制到当前文件夹的test2.txt

cp test.txt test2.test

?将当前目录下的test文件夹复制到当前目录下的test2文件夹

cp -r test test2?

?7.2 mv 移动文件或文件夹

语法:mv 参数1 参数2

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

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

?示例

将当前目录下的test.txt移动到当前目录的test2.txt(若当前目录下无该文件,则起到改名的效果)

mv test.txt test2.txt

?在用户的家目录中,将text.txt移动到Desktop文件夹中

cd? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 进入家目录

mv test.txt Desktop? ? ??

?7.3 rm 删除文件或文件夹

语法:rm [-r -f] 参数1 参数2 ... 参数N

-r 选项? ?删除文件夹

-f 选项 表示force , 强制删除(不会弹出确认信息)

? ? ? ? 1)普通用户删除内容不会弹出提示确认信息,只有root用户删除内容会有提示

? ? ? ? 2)所以一般普通用户用不到-f选项

参数1 参数2 ... 参数N 表示删除的文件或文件夹路径,按照空格隔开

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

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

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

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

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

示例?

经典的删库跑路

rm -rf /*? ? ? ? ? ?或? ? ?rm -rf /

?删除所有以test开头的文件或文件夹

rm -r test*

注意:加上-r选项不是只删除符合条件的文件夹,而是符合条件的文件夹和文件都删除。?

8 查找命令(which、find)

?8.1 which 查找命令的程序文件

因为每个命令的本质就是一个程序,

当你输入 which ls 系统会输出ls的程序文件位置?

8.2 find 查找指定文件(支持通配符)

8.2.1 find 按文件名查找文件?

语法1:find 起始路径 -name "被查找文件名"

示例

全屏搜索文件名为test的文件(注意:Ctrl+C 可强制退出全盘搜索

find / -name "test"

全屏搜索文件名中含有test的文件

find / -name "*test*"

find 按文件大小查找文件

语法2:find 起始路径 -size +|- [KMG]

+、-? ? ?表示大于和小于

n? ? ? ? ? 表示大小数字

KMG? ? 表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB

示例?

查找小于10kb的文件?

?find / -size? ?-10k

查找大于100MB的文件?

?find / -size? ?+100M

查找小于10kb的文件?

?find / -size? ?+1G

find / -name "*centos*"

find /usr -size +100M

9 grep、wc和管道符

?9.1 grep 从文件中通过关键字过滤文件行

?语法: grep [-n] 关键字 文件路径

-n? ?????????选项,可选,表示在结果中显示匹配的行的行号。

关键字? ??参数,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用""将关键字包围起来。

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

?示例

?

9.2 wc 做数量统计?

语法:wc [-c -m -l -w] 文件路径

-c ????????????????????????选项 , 统计bytes数量

-m? ? ? ? ????????????????选项,统计字符数量

-l? ? ? ? ? ????????????????选项,统计行数

-w? ? ? ? ????????????????选项,统计单词数量

文件路径? ? ? ? ? ? ? 参数,被统计的文件,可作为内容输入

若什么选项都没有加上

wc 文件路径

则默认输出行数、单词数、字符数

9.3 管道符? |

?语法: 命令1? |? ?命令2

将命令1的结果,作为命令2的参数输入

如:? ? ? ? cat test.txt? | grep "what"

?

查找/user/bin的名为gtf的文件或文件夹?

?ls /user/bin? |? grep gtf

?嵌套用法

cat test.txt? |? grep test? |? grep can

cat test.txt | grep "itcast"?| wc -l

cat test.txt | grep "itheima" | wc -w

10 echo和重定向符

10.1 echo

?语法: echo 输出的内容

无需选项,只有一个参数,表示要输出的内容,复杂内容可以用""包围

示例

?在终端上显示:Hello Linux

echo Hello Linux? ? ? ? ? ? ? ? 或? ? ? ? ? ? ? ? echo "Hello Linux"

?注意:带有空格或\等特殊符号,建议使用双引号包围。

10.2 反引号? '

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

10.3 重定向符

>? ? ? ? ?将左侧命令的结果,覆盖写入到符号右侧指定的文件中

>>? ? ? ?将左侧命令的结果,追加写入到符号右侧指定的文件中

示例

echo "test" > test.txt

?

echo "Hi boy"? > test.txt? , 再次执行,覆盖内容

?

echo "Hi girl"? >> test.txt? ,再次执行,使用>>追加新内容

?

10.4 tail?

查看文件尾部内容,并可以持续跟踪。常用于查看操作日志,报错日志等?

语法: tail [-f? -num] Linux路径

Linux路径? ? ? ? ? 参数,表示被跟踪的文件路径

-f? ? ? ? ? ? ? ? ? ? ? ? 选项,表示持续跟踪

-num? ? ? ? ? ? ? ? ? 选项,表示查看尾部多少行,不填默认10行

echo "我当前的工作目录是:'pwd'"? > work.txt

echo "test" >> work.txt

tail -f work.txt

11 vi编辑器

11.1 vi\vim编辑器介绍?

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

vim是vi的加强版。兼容了vi的所有指令,不仅能编辑文本,而且具有shell程序编辑的功能,可以通过不同颜色的字体辨别语法的正确性,极大方便了程序的设计和编辑性。

11.2 vi\vim编辑器的三种工作模式

命令模式(Command mode)

命令模式下,所敲的按键编辑器都理解为命令,以命令驱动不同的功能。

此模式下,不能自由进行文本编辑。

?输入模式(Insert mode)

也就是所谓的编辑模式、插入模式。

此模式下,可以对文件内容进行自由编辑。

底线命令模式(Last line mode)

?以:开始,通常用于文件的保存、退出。

11.2.1 命令模式

?如果需要通过vi\vim编辑器编辑文件,输入如下命令

vi 文件路径

vim 文件路径? ? ? ? 一般直接使用vim,因为vim兼容vi的所有功能

?注意:1)如果文件路径表示的文件不存在,那么此命令会用于编辑新文件。

? ? ? ? ? ? ?2)如果文件路径表示的文件存在,那么命令用于编辑已有文件。

示例

vim test.txt? ? ? ? 若文件不存在,会自动创建新文件并进入命令模式

再点击? i? ,进入输入模式

对内容进行编辑,输入this a test

点击Esc,退出输入模式,进入命令模式

在命令模式下,输入:进入底线命令模式

在底线命令模式下,输入:wq ,进行保存并退出

命令模式快捷键

以下为在命令模式下,各种进入输入模式的快捷键?

模式命令描述
命令模式i在当前光标位置进入输入模式
命令模式a在当前光标位置之后进入输入模式
命令模式I (大写i )在当前行的开头,进入 输入模式
命令模式A在当前行的结尾,进入输入模式
命令模式o在当前光标下一行进入输入模式
命令模式O在当前光标上一行进入输入模式
输入模式Esc任何情况下点击Esc都能回到命令模式

?以下还有一些命令模式下的快捷键

命令描述命令描述
键盘上、键盘k向上移动光标dd删除光标所在行的内容
键盘下、键盘j向下移动光标nddn是数字,删除当前光标向下n行
键盘左、键盘h向左移动光标yy复制当前行
键盘右、键盘L向右移动光标nyyn是数字,复制当前行和下面的n行
0移动光标到当前行的开头p粘贴复制的内容
$移动光标到当前行的结尾u撤销修改
pageup(PgUp)向上翻页ctrl+r方向撤销修改
pagedown(PdDn)向下翻页gg跳到首行
/进入搜索模式G跳到行尾
n向下继续搜索dG从当前行开始,向下全部删除
CTRL+n向上继续搜索dgg从当前行开始,向上全部删除
d$从当前光标开始,删除到本行的结尾d0从当前光标开始,删除本行的开头

?11.2.3 底线命令模式

?注意:点击Esc可退回命令模式。

以下为底线命令模式下的一些常用命令:?

:wq保存并退出
:q仅退出
:q!强制退出
:w仅保存
:set nu显示行号
:set nonu取消行号显示
:set paste设置粘贴模式
:set nopaste取消粘贴模式
文章来源:https://blog.csdn.net/weixin_46858088/article/details/135307424
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。