Linux学习笔记(一):Linux下的基本指令
文章目录
- Linux下的基本指令
- 1. ls指令
- 2. pwd指令
- 3. cd指令
- 4. touch指令
- 5. mkdir指令(牢记)
- 6. rmdir指令 && rm 指令(牢记)
- 7. man指令(牢记)
- 8. echo指令
- 9. cp指令(牢记)
- 10. mv指令(牢记)
- 11. cat指令
- 12. more指令
- 13.less指令(牢记)
- 14. head & tail 指令
- 15. 时间相关指令
- 16. cal指令
- 17.find指令(牢记)
- 18. which指令
- 19. whereis指令
- 20. grep指令
- 21. zip/unzip指令
- 22. tar指令(牢记):打包/解包,不打开它,直接看内容
- 23. bc指令:打开计算器
- 24. 热键
- 25. 关机
Linux下的基本指令
1. ls指令
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
用法:
ls [选项][目录或文件]
注意:中间需要空格分隔
显示当前目录的所有文件及目录
常用的选项(牢记):
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
.
..
为隐藏文件
..
:表示当前路径的上级路径.
:表示当前路径
- -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls -d 指定目录
- -l 列出文件的详细信息(属性)。
- -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件,“/”表示目录等等。
指令和选项或选项加选项是可以缩写的
如:
ls -l => ll
ls -l -a =>ls -la
ls指令还可以配合通配符使用:
通配符:*
ls * 显示所有文件或目录
ls *.c 显示所有后缀为.c的文件或目录
ls test* 显示所有以test为前缀的文件或目录
更多其他选项(了解即可)
选项 | 功能 |
---|---|
-i | 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件 |
-k | 以 k 字节的形式表示文件的大小。ls –alk 指定文件 |
-n | 用数字的 UID,GID 代替名称 |
-r | 对目录反向排序 |
-t | 以时间排序 |
-s | 在l文件名后输出该文件的大小。 |
-R | 列出所有子目录下的文件。(递归) |
-1 | 一行只输出一个文件 |
2. pwd指令
功能:显示用户当前所在的目录
无选项
显示出我现在在家目录home的hanhe666目录中。
注:/
为路径分隔符(Linux特有风格)
3. cd指令
功能:更改工作目录。将当前工作目录改变到指定的目录下。
用法:
cd [目录名]
常见的用法
cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录
在Linux系统中,磁盘上的文件和目录被组成一棵树,每个节点都是目录或文件。因此,我们对文件或目录的增删查改本质上是对一颗多叉树进行增删查改。
- 叶子节点一定是空目录或者非目录文件
当我们需要定位一个文件时,通常用路径来定位。
因为路径定位具有唯一性:定位任意一个文件有且只有一条路径。
why?
因为任何节点都只有一个父节点。
- 绝对路径:从
/
(根目录)开始定位到指定位置的路径 - 相对路径:以自己当前所处的位置为参照,进行特定文件的定位的相对路径
注:当我们所处位置发生变化了,这个相对路径可能会失效
怎么用?
- 绝对路径一般比较长,但是不会变。一般在一些固定的场景(如配置文件)下才会使用
- 一般我们使用命令行输入时,常常使用相对路径
4. touch指令
touch [选项] 文件名...
主要功能:
-
创建空文件:如果文件不存在,
touch
会创建一个新的空文件。touch newfile.txt # 创建名为 newfile.txt 的空文件
-
更新文件的时间戳:
- 默认情况下,
touch
会将文件的访问时间(atime)和修改时间(mtime)更新为当前时间。 - 如果文件已存在,
touch
不会改变文件内容,仅更新时间戳。
- 默认情况下,
常用选项:
选项 | 说明 |
---|---|
-a | 仅更新访问时间(atime) |
-m | 仅更新修改时间(mtime) |
-c 或 --no-create | 不创建新文件(仅更新时间戳) |
-d 或 --date="时间字符串" | 使用指定时间更新文件时间戳(如 -d "2023-10-01 12:00:00" ) |
-r 或 --reference=文件 | 使用参考文件的时间戳(同步两个文件的时间) |
-t | 使用 [[CC]YY]MMDDhhmm[.ss] 格式的时间(如 -t 202310011200.30 ) |
示例:
-
创建多个空文件:
touch file1.txt file2.txt
-
仅更新文件的修改时间(不改变访问时间):
touch -m oldfile.txt
-
使用参考文件的时间戳:
touch -r source.txt target.txt # 将 target.txt 的时间戳设为和 source.txt 相同
-
指定自定义时间:
touch -d "2023-10-01 12:00:00" timefile.txt
-
避免创建新文件(仅更新时间戳):
touch -c nonexistent.txt # 如果文件不存在,不创建
5. mkdir指令(牢记)
mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
- -p, 后面可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
mkdir -p test/test1 : 递归建立多个目录
6. rmdir指令 && rm 指令(牢记)
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
功能:删除空目录(若目录不为空,报错)
用法:
rmdir [-p][dirName]
rm命令即可删除文件也可以删除目录
常用选项:
- -f 即使文件属性为只读(即写保护),亦直接删除
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
常用具体用法:
rm 删文件
rm -f 无需询问直接删
rm -r 递归删除(可删目录)
rm -rf 无需询问直接删
7. man指令(牢记)
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
man [选项] 命令
8. echo指令
将输入的字符串打印到屏幕上
>
为输出重定向符,这里的作用是:将原本要输出到屏幕的数据改为输出到文件test.txt中了。cat
是查看文件内容的指令:将文件内容输出到屏幕
可以看到,“你好”被写入“test.txt”文件中了。
注意:
- 若没有test.txt文件,会在当前目录下自动为你创建这个文件
>
为覆盖输出,要想追加可以用>>
追加重定向<
输入重定向也是存在的
如:
cat < test.txt
效果与不加<没有啥区别,用的很少
9. cp指令(牢记)
功能:复制文件或目录
cp [选项] 源文件或目录 目标文件或目录
常用选项:
- -f (force): 强行复制文件或目录, 不论目的文件或目录是否已经存在
- -i (interactive) :覆盖文件之前先询问用户
- -r:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
10. mv指令(牢记)
mv [选项] 源文件或目录(sourse) 目标文件或目录(destination)
功能:
- 重命名:当sourse与destination都为文件时,即为文件重命名。
- 当sourse与destination(不存在该目录)都为目录时,即为目录重命名
- 剪切:
- destination为目录(存在)时,会将sourse剪切到destination目录下
- destination为目录+文件时,为剪切并重命名
- 如果destination为目录不存在,系统会自动创建一个这样的目录,并将sourse存入这个目录,sourse被()
我们再来回头思考一下1的重命名,其本质原理似乎就是一种剪切,只不过他的路径是./
当前目录
mv out.txt ./in.txt
常用选项:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
11. cat指令
cat [选项][文件]
功能:查看目标文件的内容
常用选项:
- -b 对非空输出行进行编号
- -n 对输出的所有进行行编号
- -s 不输出多行或空行
12. more指令
more [选项][文件]
功能与cat类似,more一般用来看大文件。
常用选项:
-
-n 对输出的所有行编号
-
按q 退出more
13.less指令(牢记)
linux正统查看文件内容的工具,可按上下键浏览,还可以向上向下搜索。
语法:
less [参数] 文件
功能:
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
浏览文件只用less不用more
选项:
- -i 忽略搜索时的大小写
- -N 显示每行的行号
- /字符串:向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- q:退出less
14. head & tail 指令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头,而 tail 就是看档案的结尾。
head功能:
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
tail功能:
于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
head [参数]... [文件]...
tail [参数]... [文件]...
选项:
- -f 循环读取
- -n<行数> 显示行数
15. 时间相关指令
显示时间:
date指定格式显示时间:
date [选项] [+格式]
在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记
这里的-、_、:都是我自己设定的,可以随意更改
常用的标记列表:
与时间戳的转换:
- 时间->时间戳:date +%s
- 时间戳->时间:date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
16. cal指令
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
cal [参数][月份][年份]
17.find指令(牢记)
功能:在指定的路径下进行文件的搜索
find [目录][选项]
常用选项:
- -name 按照文件名查找文件。
18. which指令
功能:搜索指令文件
用法:which + 指令
这里的alias是什么呢?
其实他是一个具有取别名功能的指令,这里了解一下就行。
使用方法如下:
注意:指令其实就是可执行程序,没有什么神秘的
19. whereis指令
用法:which + 指令
功能:在系统特定的路径下查找,既可以找到可执行程序,又可以找到手册和安装包、压缩包等。
20. grep指令
行文本过滤工具
grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
常用选项:
- -i :忽略大小写的不同
- -n :输出行号
- -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
21. zip/unzip指令
将test2目录压缩:zip test2.zip test2*
解压到tmp目录:unzip test2.zip -d /tmp
功能:
- zip将目录或文件压缩成zip格式
- unzip将zip格式文件解压到指定目录
常用选项:
- -r 递归处理,将指定目录下的所有文件和子目录一并处理
22. tar指令(牢记):打包/解包,不打开它,直接看内容
记住以下即可:
tar czf XXX.tgz ---打包压缩
tar tzf XXX.tgz ---预览
tar xzf XXX.tgz ---解压解包
tar xzf XXX.tgz -C [目录]---解压解包到指定目录
- tgz=>tar.gz
tar->打包后缀
.gz->压缩后缀
23. bc指令:打开计算器
24. 热键
Tab键自动补全命令
在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令
history游览历史
当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来
history保留了最近执行的命令记录,默认可以保留1000。
history N 显示最近N条命令
history -c 清除所有的历史记录
history -w xxx.txt 保存历史记录到文本xxx.txt
25. 关机
语法:shutdown [选项]
常见选项:
- -h : 将系统的服务停掉后,立即关机。
- -r : 在将系统的服务停掉之后就重新启动
- -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思