linux-note-2
linux-note-2
Linux基础命令
Linux的目录结构
Linux的目录结构是一个树型结构,没有盘符这个概念。
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘
/
,根目录是最顶级的目录了- Linux只有一个顶级目录:
/
- 路径描述的层次关系同样适用
/
来表示 - /home/itheima/a.txt,表示根目录下的home文件夹内有itheima文件夹,内有a.txt
Linux命令基础格式
无论是什么命令,用于什么用途,在Linux中,命令有其通用的格式:
command [-options] [parameter]
command: 命令本身
-options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等
语法中的[],表示可选的意思
ls命令
功能:列出文件夹信息
语法:ls [-l -h -a] [参数]
- 参数:被查看的文件夹,不提供参数,表示查看当前工作目录
- -l,以列表形式查看
- -h,配合-l,以更加人性化的方式显示文件大小
- -a,显示隐藏文件
当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录下的内容
语法中的选项是可以组合使用的,比如学习的-a和-l可以组合应用。
写法: - ls -l -a
- ls -la
- ls -al
上述三种写法,都是一样的,表示同时应用-l和-a的功能.
HOME目录和工作目录
直接输入ls命令,表示列出当前工作目录下的内容.
Linux系统的命令行终端,在启动的时候,默认会加载:
当前登录用户的HOME目录作为当前工作目录,所以ls命令列出的是HOME目录的内容
HOME目录:每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户名
隐藏文件、文件夹
在Linux中以.
开头的,均是隐藏的。
默认不显示出来,需要-a
选项才可查看到。
pwd命令
功能:展示当前工作目录
语法:pwd
cd命令
功能:切换工作目录
语法:cd [目标目录]
参数:目标目录,要切换去的地方,不提供默认切换到当前登录用户HOME目录
HOME目录
每一个用户在Linux系统中都有自己的专属工作目录,称之为HOME目录。
- 普通用户的HOME目录,默认在:
/home/用户名
- root用户的HOME目录,在:
/root
FinalShell登陆终端后,默认的工作目录就是用户的HOME目录
相对路径、绝对路径
-
相对路径,非
/
开头的称之为相对路径
相对路径表示以当前目录
作为起点,去描述路径,如test/a.txt
,表示当前工作目录内的test文件夹内的a.txt文件 -
绝对路径,以
/
开头的称之为绝对路径
绝对路径从根
开始描述路径
特殊路径符
.
,表示当前,比如./a.txt,表示当前文件夹内的a.txt
文件..
,表示上级目录,比如../
表示上级目录,../../
表示上级的上级目录~
,表示用户的HOME目录,比如cd ~
,即可切回用户HOME目录
mkdir命令
功能:创建文件夹
语法:mkdir [-p] 参数
- 参数:被创建文件夹的路径,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可
- 选项:-p,可选,表示创建前置路径,适用于创建连续多层级的目录
创建文件夹需要修改权限,请确保操作均在HOME目录内,不要在HOME外操作
涉及到权限问题,HOME外无法成功
touch命令
功能:创建文件
语法:touch 参数
- 参数:被创建的文件路径
cat命令
功能:查看文件内容
语法:cat 参数
- 参数:被查看的文件路径
more命令
功能:查看文件,可以支持翻页查看
语法:more 参数
- 参数:被查看的文件路径
- 在查看过程中:
空格
键翻页q
退出查看
cp命令
功能:复制文件、文件夹
语法:cp [-r] 参数1 参数2
- 参数1,被复制的
- 参数2,要复制去的地方
- 选项:-r,可选,复制文件夹使用
示例:
- 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:要移动去的地方,参数2如果不存在,则会进行改名
rm命令
功能:删除文件、文件夹
语法:rm [-r -f] 参数...参数
- 参数:支持多个,每一个表示被删除的,空格进行分隔
- 选项:-r,删除文件夹使用
- 选项:-f,强制删除,不会给出确认提示,一般root用户会用到
rm命令支持通配符 *,用来做模糊匹配 - 符号* 表示通配符,即匹配任意内容(包含空),示例:
- test*,表示匹配任何以test开头的内容
- *test,表示匹配任何以test结尾的内容
- *test*,表示匹配任何包含test的内容
rm命令很危险,一定要注意,特别是切换到root用户的时候。
diff命令
对于两个纯文本文件来说,我们还可以使用 diff 命令进行比较的操作。
用法:diff [选项] 文件1 文件2
选项(常用) | 作用 |
---|---|
-b | 不检查空白字符的不同。 |
-B | 不检查空行。 |
-q | 仅显示有无差异,不显示详细信息。 |
which命令
功能:查看命令的程序本体文件路径
语法:which 参数
- 参数:被查看的命令
find命令
功能:搜索文件
语法1按文件名搜索:find 路径 -name 参数
- 路径,搜索的起始路径
- 参数,搜索的关键字,支持通配符*, 比如:
*
test表示搜索任意以test结尾的文件
语法2按文件大小搜索:find 路径 -size |-n[kMG]
- +、- 表示大于和小于
- n表示大小数字
- kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
示例:
查找小于10KB的文件: find / -size -10k
查找大于100MB的文件:find / -size +100M
查找大于1GB的文件:find / -size +1G
grep命令
功能:过滤关键字
语法:grep [选项] 关键字 文件路径
- 选项:
选项 | 用途 |
---|---|
-a | 不忽略二进制数据进行搜索。 |
-i | 忽略大小写差异。 |
-r | 从目录中递归查找。 |
-n | 可选,表示在结果中显示匹配的行的行号。 |
-
参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用””将关键字包围起来
-
参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
参数文件路径,可以作为管道符的输入
tree命令
需要
sudo apt install tree
预处理
用法: tree [选项] [目录名]
选项(常用) | 作用 |
---|---|
-a | 列出全部文件(包含隐藏文件)。 |
-d | 只列出目录。 |
wc命令
功能:统计
语法:wc [-c -m -l -w] 文件路径
- 选项,-c,统计bytes数量
- 选项,-m,统计字符数量
- 选项,-l,统计行数
- 选项,-w,统计单词数量
- 参数,文件路径,被统计的文件,可作为内容输入端口
参数文件路径,可作为管道符的输入
管道符|
写法:|
功能:将符号左边的结果,作为符号右边的输入
示例:
cat a.txt | grep itheima
,将cat a.txt的结果,作为grep命令的输入,用来过滤itheima
关键字
可以支持嵌套:
cat a.txt | grep itheima | grep itcast
echo命令
功能:输出内容
语法:echo 参数
- 参数:被输出的内容
无需选项,只有一个参数,表示要输出的内容,复杂内容可以用””包围,带有空格或\等特殊符号,建议使用双引号包围,防止被识别为参数2
`反引号
功能:被两个反引号包围的内容,会作为命令执行
示例:
- echo `pwd`,会输出当前工作目录
tail命令
功能:查看文件尾部内容
语法:tail [-f -num] 参数
- 参数:被查看的文件
- 选项:-f,持续跟踪文件修改
- 选项: -num,表示,查看尾部多少行,不填默认10行
head命令
功能:查看文件头部内容
语法:head [-n] 参数
- 参数:被查看的文件
- 选项:-n,查看的行数
重定向符
功能:将符号左边的结果,输出到右边指定的文件中去
>
,表示覆盖输出>>
,表示追加输出
vi编辑器
Vim 是 Linux 系统下最著名的开源编辑器之一,编辑效率高,十分适合编辑代码,被誉为“编辑器之神”。Vim 的所有操作都是在 CLI 中完成的,对于习惯了图形化界面文本编辑软件的同学们来说,刚接触 Vim 时一定会觉得非常不习惯,非常不顺手。但经过一段时间的学习和训练之后,你就可以体验到飞一般的开发效率。接下来介绍 Vim 的基本输入操作。
你也可以使用命令
vimtutor
来查看 Vim 的官方教程。
vi\vim编辑器的三种工作模式
命令模式(Command mode):命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。
如果需要通过vi/vim编辑器编辑文件,请通过如下命令:
vi 文件路径
vim 文件路径
vim兼容全部的vi功能,后续全部使用vim命令
- 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
- 如果文件路径表示的文件存在,那么此命令用于编辑已有文件
输入模式(Insert mode):也就是所谓的编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。
底线命令模式(Last line mode):以:
开始,通常用于文件的保存、退出。
vi编辑器的快速体验
通过vi/vim命令编辑文件,会打开一个新的窗口,此时这个窗口就是:命令模式窗口
命令模式是vi编辑器的入口和出口,如下图:
- 进入vi编辑器会进入命令模式
- 通过命令模式输入键盘指令,可以进入输入模式
- 输入模式需要退回到命令模式,然后通过命令可以进入底线命令模式
命令模式快捷键
提示——<h,j,k,l>巧记:
h 的键位于左边,每次按下就会向左移动。
l 的键位于右边,每次按下就会向右移动。
j 键看起来很象一支尖端方向朝下的箭头。
底线命令快捷键
后言
以上就是 Vim 最基本的操作方式。另外,Vim 可以进行个性化的配置。我们在前面了解到 Linux“一切皆文件”,所以 Vim 的配置也是以文件的形式储存在系统中的。Vim 的配置文件叫做 .vimrc
,它通常储存在用户主目录下。这里,文件名开头的点代表这个文件是 Linux 中的“隐藏文件”。这个文件在你的用户主目录下,你可以看看这个文件里都写了什么内容。Vim 的配置非常丰富,想要了解更多配置参数的同学可以自行在网上搜索。
我们如果想在实验课程中使用得得心应手,就需要了解更多的使用技巧。在这里我们推荐给大家一篇质量极高的 Vim 教程——《简明 Vim 练级攻略》 。这里提到了 Vim 的很多快捷键和使用技巧。理解它们十分简单,但想要熟悉这些操作,还需要很长的时间去练习。
sed命令
sed [选项] ‘命令’ 输入文本
选项(常用) | 作用 |
---|---|
-n | 安静模式,只显示经过sed处理的内容。否则显示输入文本的所有内容。 |
-i | 直接修改读取的档案内容,而不是输出到屏幕。否则,只输出不编辑。 |
行号可以是“数字”,在这一行之后新增,也可以是“起始行,终止行”,在其中的每一行后新增。当不写行号时,在每一行之后新增。使用$表示最后一行。后面的命令同理
命令(常用) | 作用 |
---|---|
<行号>a<内容> | 新增,在行号后新增一行相应内容。。 |
<行号>c<内容> | 取代。用内容取代相应行的文本。 |
<行号>i<内容> | 插入。在当前行的上面插入一行文本。 |
<行号>d | 删除当前行的内容。 |
<行号>p | 输出选择的内容。通常与选项-n一起使用。 |
s/<re>/<string> | 将<re>(正则表达式)匹配的内容替换为<string>。 |
sed ‘s/str1/str2/g’ my.txt # 在整行范围内把 str1 替换为 str2。
如果没有 g 标记,则只有每行第一个匹配的 str1 被替换成 str2
命令的选项
我们学习的一系列Linux命令,它们所拥有的选项都是非常多的。
比如,简单的ls命令就有:-a -A -b -c -C -d -D -f -F -g -G -h -H -i -I -k -l -L -m -n -N -o -p -q -Q -r-R -s -S -t -T -u -U -v -w -x -X -1等选项,可以发现选项是极其多的。
所以如果想要获得某个指令较为冷门的参数如何使用,可以依靠帮助文档。
查看命令的帮助
可以通过:命令 --help
查看命令的帮助手册
查看命令的详细手册
可以通过:man 命令
查看某命令的详细手册
- Title: linux-note-2
- Author: Charles
- Created at : 2023-02-06 09:29:15
- Updated at : 2023-11-05 21:36:18
- Link: https://charles2530.github.io/2023/02/06/linux-note-2/
- License: This work is licensed under CC BY-NC-SA 4.0.