Linux基础命令完全指南【上篇】
- Linux基础命令完全指南
- github地址
- 前言
- 命令行操作的引入
- Linux文件系统
- 树形结构的根文件系统
- 绝对路径和相对路径
- 适用场景
- Linux目录下的隐藏文件
- 基本指令
- 目录和文件相关
- 1. ls
- 2. cd和pwd
- cd
- pwd
- 3. touch
- 4. mkdir
- 5. cp
- 6. mv
- 移动目录时覆盖写入的两种特殊情况
- 7. alias
- 文件查看相关
- 1. cat
- 2. more
- 3. less
- 4. head
- 5. tail
- 总结核心概念
Linux基础命令完全指南
github地址
有梦想的电信狗
前言
本文介绍Linux系统
的基本知识和一些常见命令的基本使用,命令的更多用法需结合man
手册进行查询。命令和命令的细节较多,因此文章分为上篇和下篇。本文是文章的上篇。
命令行操作的引入
在
Windows系统
中,用户通常依赖图形界面(GUI
)进行文件管理和操作,例如通过鼠标点击资源管理器完成复制、删除等任务;
而Linux
系统虽然也提供GUI工具,但其核心优势在于命令行(CLI
)。通过终端输入简洁的命令,用户可直接操控系统内核,实现更高效、灵活的操作,例如批量处理文件、远程管理服务器等场景。
命令行不仅节省资源,还能通过脚本自动化复杂任务,是开发者及运维人员的核心工具,体现了
Linux
“一切皆文件
”的设计哲学。
- 因此学习Linux下命令行的使用很有必要。
- Linux操作系统极其稳定,最常用于做服务器操作系统,因此最好永不关机。
Linux文件系统
首先声明一个概念,
Linux下一切皆文件
。能被看到的都是文件,既包括最常见的文本文件,甚至鼠标,键盘,显示器等设备都是文件。随着后面学习的深入,会对这一概念有更深入的理解。
树形结构的根文件系统
Linux
的目录结构整体上是一个多叉树,他的叶子结点,一定是空目录或者文件,路上结点一定是一个非空目录。
因此,我们所有的对文件或者目录的增删查改,本质都是对这颗多叉树的增删查改。
与大多数操作系统一致,Linux系统的文件系统结构是树形结构的。且各个目录都有各自的功能。
/
:是Linux
的根目录。bin
:存放二进制可执行文件,以命令居多boot
:存放开机启动程序dev
:存放设备文件: 包括字符设备文件、块设备文件home
:存放 普通用户 的目录etc
:用户信息和系统配置文件 passwd、grouplib
:操作系统使用的库文件:例如 libc.so.6是一个动态库root
:管理员宿主目录(家目录)usr
:用户资源管理目录 unix software resource 用户的一些文件 第三方应用的资源文件opt
和proc
: 与Linux 进程相关的文件
Linux
的一个目录中,既可以存放目录文件,也可以存放其他文件。
绝对路径和相对路径
我们在磁盘中定位一个文件,通常需要路径来描述。
路径定位需要有唯一性。
绝对路径
:从/
开始定位到指定位置,具有唯一性的路径,称为绝对路径。相对路径
:以当前所处路径为起始参考位置,来进行定位的路径,成为相对路径。
- 绝对路径以根目录
/
为起点。 - 相对路径以当前路径为起点。
适用场景
绝对路径
:绝对路径以根目录/
为起点,一般比较长,但具有不变性。一般用在一些固定常见,配置文件中使用。相对路径
:以当前路径为起点,一般比较短小,命令行输入中常使用相对路径。
使用绝对路径进入目录dir1
使用相对路径进入目录dir1
Linux目录下的隐藏文件
Linux
中的每一个目录下都有两个隐藏文件.
和..
。可以通过ls -a
来查看
-l
是让文件以列表的形式来进行呈现。
Linux
中的每一个目录下都有两个隐藏文件.
和..
。这两个文件有什么用呢?
在
Linux
中,以.
开头的文件都是隐藏文件,只有在ls -a
是才能被看到。
-
.
:表示当前路径。 -
..
:表示当前路径的上级路径。 -
.
存在的意义:帮助用户定位当前目录下的一个文件。如: ./a,out -
..
存在的意义:帮助用户定位到当前路径的上级路径以及上级路径中的文件。
基本指令
目录和文件相关
1. ls
功能:列出目录内容
语法:ls [选项] [目录]
常用参数:
-l
:长格式显示(包含权限、所有者、大小等信息)-a
:列出目录下的所有文件,包括以 . 开头的隐含文件。-h
:以人类可读格式显示文件大小,更人性化-t
:按修改时间排序-R
:递归列出子目录内容-d
: 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录-i
: 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件-k
: 以 k 字节的形式表示文件的大小。ls –alk 指定文件-n
: 用数字的 UID,GID 代替名称。-F
: 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)-r
: 对目录反向排序。-t
:以时间排序。-s
: 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)-1
: 一行只输出一个文件。
2. cd和pwd
cd
语法:cd 路径
。
路径可以是相对路径,也可以是绝对路径。
功能:改变工作目录。将当前工作目录改变到指定的目录下。
# 直接输入cd,默认切换到当前用户的home目录
# 对于root用户 则切换到 /root 目录下
cd
#返回上级目录
cd ..
# 使用绝对路径
cd /home/changan_memroy/linux/
# 使用相对路径
cd ../day02/
# 进入用户home目录
cd ~
cd /home # 与上一行的写法等价
# 返回最近访问目录
cd -
~
该符号表示当前用户的home目录。-
该符号表示用户最近进入的一个目录。.
表示当前目录。
pwd
语法: pwd
功能:显示用户当前所在的目录
常用选项:无
cd
配合-
和~
方便地切换目录。- 切换完目录后使用
pwd
验证当前所在目录。
3. touch
语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
-a
或--time=atime
或--time=access
或--time=use
只更改存取时间。
-c
或--no-create
不建立任何文档。-d
: 使用指定的日期时间,而非现在的时间。-f
: 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。-m
: 或--time=mtime
或--time=modify
只更改变动时间。-r
: 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。-t
: 使用指定的日期时间,而非现在的时间
加上不同的参数,就有不同的用法,但最常用的用法是使用
touch
来创建文件。例如创建.c
或.cpp
源程序文件或者普通文件,创建别的文件也是如此。
4. mkdir
语法:mkdir [选项] 路径名称
功能:在当前目录下创建一个名为 dirname
的目录
常用选项:
-p
或--parents
后面跟一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。(递归创建子目录)
演示如下
5. cp
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录。如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
常用选项:
-f
或--force
: 强行复制文件或目录, 不论目的文件或目录是否已经存在-i
或--interactive
:拷贝时,若目标目录下有同名文件,覆盖文件之前会先询问用户是否覆盖-r
: 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理-R
或--recursive
:递归处理,将指定目录下的文件及子目录一并处理
最常用的选项是
-f
和-r
目标目录
d1
中没有同名文件,因此不需要加-f
6. mv
mv命令是move的缩写,可以用来
移动文件
或者将文件重命名
(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法:mv [选项] 源文件或目录 目标文件或目录
功能: 视mv
命令中第二个参数类型的不同(是目标文件还是目标目录),mv
命令将文件重命名或将其移至一个新的目录中。
- 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
-f
:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i
:若目标文件 (destination) 已经存在时,就会询问是否覆盖
移动目录时覆盖写入的两种特殊情况
- 目标路径下有同名目录,同名目录不为空时,无法覆盖。
- 目标路径下有同名目录,为空目录,直接覆盖。
7. alias
之前对于
ls
命令,我们是否会有疑问?为什么ll
等价于ls -l
。
这里本质上是命令alias
在起作用。
语法:alias [选项][名称[='命令']]
功能:创建或显示命令别名,用于简化复杂的命令。
常用选项:
• -p
:以可被 Shell 重新使用的格式输出别名(便于保存到配置文件中)。
功能详解:
-
定义别名:通过
名称='命令'
的格式将长命令或常用命令定义为简短的别名。
• 示例:alias ll='ls -l'
(输入ll
即可执行ls -l
)。
• 若命令包含空格或特殊字符,需用引号包裹。 -
查看别名:
• 直接输入alias
(不加参数)可列出所有已定义的别名。
• 输入alias 名称
可查看特定别名的定义(如alias ll
)。 -
永久生效:
• 在~/.bashrc
或~/.zshrc
中写入别名定义,重启终端或执行source ~/.bashrc
后生效。
注意事项:
• 使用 unalias 名称
可删除临时别名。
• 若别名与系统命令同名,优先执行别名(用 \命令
或 command 命令
可绕过别名)。
文件查看相关
1. cat
语法:cat [选项][文件]
功能: 查看目标文件的内容, 常用于行数短小的文件的查看。
常用选项:
-b
:对非空行输出编号-n
: 对输出的所有行编号-s
:不输出多行空行
2. more
cat
会查看整个文件的内容,直接定位到文件的末尾,当遇到大文件时,直接定位到文件的末尾,会导致我们不便查看到文件前面的内容。而more
指令可以让我们从文件第的一行开始,通过Enter
来进行向后滚动,逐行依次查看内容。但
more
的缺点是只能从文件开头向后进行翻页,无法向前进行查看。
语法:more [选项][文件]
功能:more命令,功能类似 cat
常用选项:
-n
:对输出的所有行编号q
: 退出more
3. less
语法: less [参数] 文件
功能:
-
less
工具也是对文件或其它输出进行分页显示的工具,应该说是linux
正统查看文件内容的工具,功能极其强大。 -
less
的用法比起more
更加的有弹性。在more
的时候,我们并没有办法向前面翻, 只能往后面看 -
但若使用了
less
时,就可以使用[pageup][pagedown]
等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容! -
除此之外,在
less
内可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜索。而且less
在查看之前不会加载整个文件
选项:以下选项适用于通过less
进入文件后在文件内进行搜索,而不是在使用less
打开文件时进行搜索。
-i
忽略搜索时的大小写-N
显示每行的行号/字符串
:向下搜索“字符串”的功能?字符串
:向上搜索“字符串”的功能n
:重复前一个搜索(与 / 或 ? 有关)N
:反向重复前一个搜索(与 / 或 ? 有关)q
:quit
所有选项是在:
处进行输入的。例如向下查找字符串hello,输入/hello
。
其他命令也都是在使用less
打开文件后再进行输入的。
因此查看文件使用
less
和cat
,以及通过==管道(下篇介绍)==配合head
和tail
比较多
4. head
head
与 tail
就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head
用来显示档案的开头至标准输出中,而 tail
就是看档案的结尾。
语法: head [参数]... [文件]...
功能:
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:
-n [行数]
:显示文件的前n
行
5. tail
tail
命令从指定点开始将文件写到标准输出.使用tail
命令的-f
选项可以方便的查阅正在改变的日志文件,tail -f filename
会把filename
里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
语法: tail [必要参数] [选择参数] [文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。tail
默认显示文件的后10行。
选项:
-f
循环读取-n 行数
: 显示行数
总结核心概念
- "一切皆文件"设计理念贯穿系统设计
- 命令行操作相比GUI更高效,适合批量处理与自动化
- 掌握路径定位与基础命令组合使用是Linux操作的关键基础
这些命令构成了Linux系统操作的基石,熟练使用将显著提升工作效率。下篇将讲解查找、压缩解压等进阶命令。
以上就是本文的所有内容了,如果觉得文章写的不错,还请留下免费的赞和收藏,也欢迎各位大佬在评论区交流
分享到此结束啦
一键三连,好运连连!