👦个人主页:Weraphael
✍🏻作者简介:目前正在学习c++和算法
✈️专栏:Linux
🐋 希望大家多多支持,咱一起进步!😁
如果文章有啥瑕疵,希望大佬指点一二
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注😍
目录
- 一、ls 指令
- 二、pwd 指令
- 三、cd 指令
- 四、touch 指令
- 五、mkdir 指令
- 六、rmdir 指令 和 rm 指令
- 七、cp 指令
- 八、mv 指令
- 九、alias 指令
- 十、cat 指令
- 十一、echo 指令和重定向知识
- 十二、more 指令(没less好用)
- 十三、less 指令
- 十四、head 指令
- 十五、tail 指令
- 十六、data 指令
- 十七、cal 指令(了解)
- 十八、find 指令
- 十九、grep指令
- 二十、zip/unzip 指令
- 二十一、tar 指令
- 二十二、bc 指令
- 二十三、uname 指令
- 二十四、重要的几个热键
一、ls 指令
【语法】 ls [选项][目录或文件]
【功能】对于目录,该命令会显示该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
【常用选项】
ls -l
列出文件的详细信息(文件属性);等价于指令ll
。
ls -a
列出目录下的所有文件,包括以.
开头的隐含文件。
注意:Linux任何一个目录下面有有两个隐藏文件分别是
.
和..
..
表示当前路径的上级路径
由上图可知,..
的文件类型是一个目录,进入一个目录的命令是cd
,pwd
是查看当前所在路径
.
表示当前路径
它最常用的一个用法就是执行一个可执行文件
ls -F
在每个文件名后附上一个字符以说明该文件的类型
其中
*
表示可执行的普通文件/
表示目录@
表示符号链接|
表示FIFOs=
表示套接字(sockets)
二、pwd 指令
【语法】pwd
【功能】 显示用户当前所在的目录
/
是Linux的路径分隔符,而\
是Windows的路径分隔符- 如下图所示,
/
是Linux下的根目录
- 普通用户(
$
)的家目录。whoami
命令是查看当前使用的用户
- 超级用户
root
的家目录
【常用选项】 无
三、cd 指令
【功能】 改变当前路径,进入到指定目录下
注意:Linux的整个目录结构一定是一颗多叉树。它的叶子节点一定是空目录或者非目录文件,路上节点一定是一个非空目录。所以我们对文件的增删查改,本质就是对这颗多叉树的增删查改。
【常用选项】
cd ..
: 返回上级目录
cd ~
:进入用户的家目录,单独cd
也是默认返回家目录
cd -
:返回最近访问目录
这里要提及什么是绝对路径,什么是相对路径
- 绝对路径是指从文件系统的根目录开始的完整路径,可以准确地定位到文件或目录的位置。在类Linux系统中,绝对路径以斜线
/
开头。 - 相对路径是相对于当前工作目录或其他基准位置的路径,用于定位文件或目录。它们不是从根目录开始的完整路径,而是通过引用上一级目录
..
或当前目录.
来构建路径。相对路径更简短,依赖于当前环境的上下文。
例如,考虑以下文件结构:
假设当前工作目录是文件夹A,文件C的绝对路径是/文件夹A/文件夹B/文件C
,而相对路径可以是./文件夹B/文件C
四、touch 指令
【语法】 touch [选项] name
【功能】 可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。不过现阶段大家认为touch
可以新建文件就行
【常用选项】
-a
或--time=atime
或--time=access
或--time=use
只更改存取时间。-c
或--no-create
不建立任何文档。-d
使用指定的日期时间,而非现在的时间。-f
此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题-m
或--time=mtime
或--time=modify
只更改变动时间。-r
把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。-t
使用指定的日期时间,而非现在的时间。
五、mkdir 指令
【语法】 mkdir [选项] dirname
【功能】 在当前目录下创建名为dirname
的目录(文件夹)
【常用选项】
-p
:一次可以建立多个目录
六、rmdir 指令 和 rm 指令
rmdir
是一个与mkdir
相对应的命令。 mkdir
是建立目录,而rmdir
是删除命令。但rmdir只能删除空目录!
因此,常用的还是rm
指令:
【功能】 rm
命令可以同时删除文件或目录
【语法】 rm 选项 文件名或目录名
【常用选项】
-f
:不提示强制删除。- 删除目录一定要有
-r
选项
-i
删除前逐一询问确认。(超级用户下默认会询问。普通用户不会)
【补充】
通配符:*
,表示所有。
七、cp 指令
【语法】 cp [选项] 源文件或目录 目标文件或目录
【功能】 复制文件或目录
【拷贝文件示例】
或者还可以复制到别的目录下:
【拷贝目录示例】
注意:无论是删除目录还是拷贝目录,都要有-r
选项
【常用选项】
-f
:强行复制文件或目录,不论目的文件或目录是否已经存在-i
:覆盖文件之前先询问用户-r
:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
八、mv 指令
【语法】 mv [选项] 源文件或目录 目标文件或目录
【功能】
- 剪切(移动)
-
mv
命令完成文件重命名,其本质还是剪切 -
mv
对目录操作是不要有-r
选项的,只有cp
和rm
对目录需要搭配-r
使用
4. 如果是mv 目录1 目录2
,它的功能是把目录1剪切到目录2里去
【常用选项】
-f
: 如果目标文件已经存在,不会询问而直接覆盖-i
:如果目标文件已经存在时,就会询问是否覆盖
九、alias 指令
首先看以下两个问题:
- 你是如何看待指令的?
— 指令和可执行程序都是可以被执行的,因此指令就是可执行程序,和我们自己写的代码编译好的程序没有区别。 - 我们在执行指令之前,应该先做什么?
— 先在系统中查找对应的指令,因此指令一定系统的在某一个特定位置(/user/bin
)存在的
接下来解释alias
:
在前面我们说过,ls -l
是等价于ll
的,我们可以使用 which
来查看ll
的系统所在路径:
从上图可以得出:ll
是ls -l
的别名
因此,alias
的功能就是为指令进行重命名
若要删除别名:
alias 别名 = ’’
十、cat 指令
【语法】 cat [选项][文件]
【功能】 查看目标文件的内容,注意:它不适合看大文件(多行),只适合小文本
【常用选项】
-b
对非空输出行编号
-n
对输出的所有行编号(包括空行)
-s
不输出多行空行,有连续的多行空格只会输出一行空格
十一、echo 指令和重定向知识
echo + 字符
将字符输出到屏幕(默认换行)
echo +字符+ > (重定向操作符) + 文件名(没有文件会自动创建)
将本来应该显示到屏幕的字符重定向到文件,原来文件的内容将会先清空,后写入
echo +字符+ >>(追加重定向操作符) + 文件名
将本来应该显示到屏幕的字符重定向到文件,原来文件的内容将不会被清空然后覆盖内容
- 因此,创建文件不仅可以用
touch
指令,还可以用重定向
当然以上指令还可以清空文本文件的内容:
- 输入重定向
<
,本来应该从键盘文件读取,现在不用从键盘读取,从指定的文件读取输入重定向
十二、more 指令(没less好用)
【语法】 more [选项][文件]
【功能】 类似cat
,但它比cat指令更适合看大文本,enter
进入下一页,按q
退出,而它不能忘回翻看,而less
可以做到
【常用选项】
-n
对输出的所有行编号(参考cat
)-num
占满一整个屏幕,打印到num行。
十三、less 指令
【语法】 less [参数] 文件
【功能】
less
工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less
的用法比起more
更加的有弹性。在more
的时候,我们并没有办法向前面翻,只能往后面看。而less
想怎么发就怎么翻- 但若使用了
less
时,就可以使用pageup
和pagedown
或者可以用上下键
来往前往后翻看文件,更容易用来查看一个文件的内容!
【常用选项】
-i
忽略搜索时的大小写-N
显示每行的行号/字符串
:向下搜索“字符串”的功能?字符串
:向上搜索“字符串”的功能n
:重复前一个搜索(与 / 或 ? 有关)N
:反向重复前一个搜索(与 / 或 ? 有关)- q:退出
十四、head 指令
【语法】 tail[必要参数][选择参数][文件]
【功能】 用来显示文件开头的内容。
【常用选项】
head -num [文件]
最多显示文件的头num
行,如果不跟此选项,默认显示前10行
十五、tail 指令
【语法】 tail[必要参数][选择参数][文件]
【功能】 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
【常用选项】
tail-num [文件]
最多显示文件的尾num
行,如果不跟此选项,默认显示尾10行
- 管道
|
十六、data 指令
【功能】 显示时间
date
指定格式显示时间: date +%Y:%m:%d
date
用法: date [OPTION]... [+FORMAT]
- 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
- %Y : 年
- %m : 月
- %d : 日
- %H : 小时
- %M : 分钟
- %S : 秒
- %X : 相当于
%H:%M:%S
- %F : 相当于
%Y-%m-%d
- 时间戳
【命令】date +%s
(将时间转化为时间戳)
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
【命令】 date -d@时间戳
(时间戳转换为正常时间)
十七、cal 指令(了解)
【功能】 可以用来显示公历(阳历)日历
【命令格式】 cal [参数][月份][年份]
【常用选项】
1.-3
显示系统前一个月,当前月,下一个月的月历
-y
显示当前年份的日历
十八、find 指令
【语法】 find 路径 选项 文件
【功能】 可以在指定的路径下进行查找文件
【常用选项】
-name
按照文件名查找文件
【区分】
find
在指定的路径下查找which
只能在指令路径/usr/bin
,搜索指令文件
whereis
在系统特定的路径下查找,既可以找到可执行程序,也可以找到手册、安装包、压缩包等之类的
十九、grep指令
【语法】 grep [选项] 搜寻字符串 文件
【功能】 在文件中搜索字符串,将字符串所在的行打印出来
【常用选项】
-v
反向选择,过滤搜索字符串的那一行
-n
打印搜索字符串所在的行,并顺便输出行号
-i
忽略搜索字符串的大小写
二十、zip/unzip 指令
【zip
语法】 zip 打包文件.zip 打包后的文件或目录
【zip
功能】 将目录或文件打包成zip
格式,不容易造成文件丢失
【unzip
语法】 zip 打包文件
【unzip
功能】 解包
【zip
常用选项】 -r
递归处理,将指定目录下的所有文件和子目录一并处理
【unzip
常用选项】 -d
解压到某个目录(路径)
二十一、tar 指令
【语法】 tar [选项] 文件与目录 ....参数
【常用选项】
-c
:建立一个压缩文件的参数指令
-x
:解开一个压缩文件的参数指令
-t
:查看压缩包里面的文件
-z
:是否同时具有gzip
的属性?亦即是否需要用gzip
压缩?
-j
:是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v
:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f
:使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C
: 解压到指定目录
查看压缩包里面的文件:
二十二、bc 指令
【功能】 就是一个Linux环境下的计算器
二十三、uname 指令
【语法】 uname [选项]
【功能】 uname
用来获取电脑和操作系统的相关信息,可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
【常用选项】
-a
详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
-r
显示内核版本号(面试)
二十四、重要的几个热键
Ctrl + c
:终止因为程序或者指令异常,而导致无法进行指令输入。Tab
:具有『命令补全』和『档案补齐』的功能Ctrl + d
:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exitctrl + ins
:复制shift + ins
:粘贴