前言
每天的代码建议重新放在一个目录下,增强文件代码的可维护性
指令=命令+选项,选项相当于查看文件的属性
这里思考 创建一个空文件是否占用磁盘空间呢???
答案是当然是占用的,文件的内容虽然是空的,但是文件所占用的空间不仅仅是内容,还有文件的属性,虽然文件的内容是空的,但是文件的属性还是属于文件占用的空间的。
内容摘要
本文包括ls指令、pwd指令、cd指令、touch指令、mkdir指令、tree指令、rm指令、man指令、cp指令、nano指令、mv指令、cat指令、tac指令、echo指令、more指令、less指令、head指令、tail指令、wc指令、时间相关的指令、cat指令、find指令、which指令、whereis指令、alisa指令、grep指令、xargs指令、zip/unzip指令、bc指令、bar指令、uname指令、几个重要热键、关机指令,图文并茂,非常好理解
ls指令
查看当前目录下的文件和目录
code dir ys 是我自己创建的三个目录
ls -l 显示文件的全部属性
ls -a 显示当前文件下的全部文件(包含隐藏文件)
相对于ls 来说,ls -a出现了一些**以 . 开头的文件,在Linux下,以 . 进行开头的文件属于隐藏文件,**ls -a可以将隐藏的文件进行显现,同样,我们要是想要隐藏自己的小秘密,也可以通过创建隐藏文件的形式进行将文件或者目录进行隐藏起来。
隐藏文件的用途:
通常进行隐藏一些配置文件
同一个指令下的选项是可以进行叠加使用的,如下
通过将 -l -a进行叠加使用,可以做到显示文件所有属性,包括隐藏文件的所有属性。
ls -i 查看文件的inode编号
什么是文件的inode编号???
要想知道什么是inode文件编号,首先应该先知道什么是inode,inode是文件系统中存储数据的结构体,inode编号是每个inode唯一的编号,用于找到inode在文件系统中的位置,方便后续进行读取信息
pwd指令
显示当前路径
从家目录开始,一直到自己目前所在的位置的路径。
cd指令
格式:cd + 目录文件 进入目录
. 代表当前路径
..代表直接上级路径
关于/的两个含义
路径分隔符,用户可以使用 / 导航文件系统
./帮助我们进行打开编译好的文件
Linux这个目录结构本质就是一颗二叉树,我们一般定位一个文件,通常采用路径的方式进行定位,原因是通过路径的方式进行定位是唯一确定的,路径还分为绝对路径和相对路径,绝对路径和相对路径的本质就是参考点的不同
路径不同的作用
绝对路径:日常生活一般不使用,通常在比较正式的场合进行使用,比如配置文件
相对路径:日常使用,比较简单
对于普通用户而言:/home/XXX叫做普通目录的家目录
对于root用户而言:/root就是家目录
cd ~ 跳转到家目录
cd - 跳转到上一步的目录下
touch指令
touch + 文件 创建文件 创建一个普通文件
touch相同的文件时,相当于更新文件的修改时间
stat+文件
一个文件通常会有三个时间(了解)---查资料并验证
- Access:文件最后一次被访问的时间
- Modify:文件内容最后一次被修改的时间
- Change:文件元内容最后一次被修改的时间
注:文件原文件是指除了文件内容的一些其他属性
mkdir指令
mkdir 就是make directory缩写,目的是创建一个目录
mkdir -p 创建一串路径
创建一串路径其实就是创建很多目录,这些目录是一个一个的包含形式
tree命令
tree 将当前目录通过以目录树的形式进行串路径
tree命令的安装 yum install -y tree
rmdir&&rm指令
rmdir+目录 移除目录,默认只能删除空目录
rm -r 可以删除非空目录
-r是递归的意思,通过递归的方式删除包含指定目录路径的所有目录或者文件,会有删除确认
descend into directory 目录名: 这在提示我们是否要删除目录,要是确认进行删除,输入 y 进行确定,要是不确定是否进行删除,通过ctrl + c进行取消操作
remove directory 目录名:进行二次验证是否需要进行删除
rm -rf 不需要进行确认直接进行强制删除文件和目录
rm -i 确认是否要删除数据
这里是属于自问自答,应用场景相对较少。
* :这是文件通配符
例如*txt,就会将当前目录中所有文件后缀为 txt 都找出来,文件通配符一般都是搭配命令进行使用
通过搭配 rm 进行使用,可以进行批量删除,删除文件后缀为.txt的文件
man指令
在Linux在的自查手册 在线手册
常用选项
- -k 根据关键字搜索联机帮助
- num 只在第num章节找
- -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
认识main中的手册种类 123456......
在使用man指令进行自查时,通过键盘上 上下键进行阅读,查询结束按 Q键 进行退出
main手册不全面 yum install -y man-pages
看不懂英文文档 可以通过汉化进行(谨慎),如果想要进行汉化尝试去读英文文档是程序猿很重要的一种能力
cp指令
拷贝普通文件和目录
cp 文件名 目录名/
将文件复制到指定目录中
cp -r 目录名1 目录名2
要想进行目录的复制,需要增加选项 -r 如果不进行递归目录是无法进行复制的
cp -i 文件名或者目录名
进行交互式进行文件或者目录的拷贝
nano指令
nano是linux下的记事本 通过nano +文件名进行写入,编译完成时想要进行退出编译通过ctrl+x 想要进行保存输入Y 然后Enter进行保存退出。
装记事本 yum install -y nano
拷贝的两种途径 相对路径拷贝 /结尾 还可以通过绝对路径进行拷贝
mv指令
用于移动文件和将文件进行改名,cp 指令是将文件进行复制,而mv指令是将文件进行剪切
mv命令的格式
mv [选项] 源文件或者目录 目标文件或者目录
当第二个参数是文件时,实现重命名
当第二个参数是目录时,实现文件或者目录的移动
cat指令
打印文件内容,不是通过记事本和编译器进行打开而是通过I/O调用进行实现
tac指令
逆行打印文本内容
tac这条指令很有意思,它是cat这三个字母的逆置,cat是将文件内容进行打印出来,tac是将文本内容进行倒着打印,这两个就像死对头一样。
echo指令
打印内容到显示器
echo 经常和输入重定和追加重定向联合使用,输入重定向符号'>' 追加重定向符号'>>'.
写入的两种方式 输入重定向(覆盖式写入)和追加重定向
echo > 文件
如果目标文件不存在,创建之,否则直接进行访问
当文件中存在内容时,在进行写入数据时,原数据会被覆盖,那我们要是批次进入写入数据那该怎么办,通过下面的追加重定向即可。
echo >> 文件
输入重定向
cat 不加文件时 输入什么打印什么
cat > 文件 读取文件中的内容并打印出来
我们不加输入重定向也可以进行读取文件的数据,那么加不加输入重定向不都一样吗??其实不然,通过输入重定向和输出重定向可以实现文件的拷贝
cat < 文件1 > 文件2 读取文件1中的内容然后插入到文件2中
可以进行文件的备份
more指令
查看文本中的内容
通过回车向下翻取,不能向上翻取, 按行显示 默认显示整屏,可以进行自定义 more -数字 这里的数字是想一次性查看文本的行数 Q退出查看的文本
more指令不建议使用,上下翻取不方便 ,通常使用less指令 进行代替
less指令
粗看文件中的内容
细看通常通过代码编辑器进行查看
less 指令相对于more指令来说就比较有弹性,less 指令可以通过上下键进行查阅文件,通常我们用less进行替代more
head指令
取文件的前多少行
例如head -5 文件名 取文件中的前5行
tail指令
取文件的后多少行
例如tail -5 文件名 取文件中的后5行
我们思考如何进行拿文件中间的内容呢??
- 通过创建临时文件的形式提取
- 通过管道进行提取
通过|形式进行提取 |称为管道,管道是用来传输资源的(数据),管道是有入口和出口,管道文件代替临时文件,批量化流水化进行处理数据,
管道文件,内存级文件没有存在在磁盘上
练习:
创建一个长文本
创建一个10000行的文本文件,然后通过两种方法提取[666,670]
通过创建临时文件进行完成
通过管道进行完成
wc指令
统计文本中的行数,单词数和字符数
常用选项
-l
:只统计行数。-w
:只统计单词数。-c
:只统计字节数(字符数)。-m
:统计字符数(与-c
不同的是,-c
统计字节数,可能与字符数不同,尤其在处理多字节字符编码(如 UTF-8)时)。-L
:输出最长行的长度。
时间相关的指令
date 指定格式显示时间: date +%Y:%m:%d
显示时间的选项
- %H : 小时(00..23)
- %M : 分钟(00..59)
- %S : 秒(00..61)
- %X : 相当于 %H:%M:%S
- %d : 日 (01..31)
- %m : 月份 (01..12)
- %Y : 完整年份 (0000..9999)
- %F : 相当于 %Y-%m-%d
设定时间选项
- date -s //设置当前时间,只有root权限才能设置,其他只能查看。
- date -s 20241020 //设置成20241020,这样会把具体时间设置成空00:00:00
- date -s 01:01:01 //设置具体时间,不会对日期做更改
- date -s "01:01:01 2024-10-20″ //这样可以设置全部时间
- date -s "01:01:01 20241020″ //这样可以设置全部时间
- date -s "2024-10-20 01:01:01″ //这样可以设置全部时间
- date -s "20241020 01:01:01″ //这样可以设置全部时间
时间戳
date+%s 从1970年1/1/0:00到现在的秒数,称为时间戳,数据单调递增具有唯一性
将时间戳转化为系统默认时间
cal指令
显示日历
常用选项
- -3 显示系统前一个月,当前月,下一个月的月历
- -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
- -y 显示当前年份的日历
当想要进行日历的显示时,只可以显示一个月和三个月
find指令
find+文件名 查找当前路径下的文件文件
which指令
用于查找并显示指定命令的可执行文件的路径
如何看待Linux下命令,其实本质就是可执行程序(工具命令指令)
whereis指令
比 which
命令功能更强大,因为 whereis
不仅能找到可执行文件的路径,还能找到相关的手册页和源代码文件
-b
:仅查找二进制文件。-m
:仅查找手册页。-s
:仅查找源代码文件。-B <path>
:指定二进制文件的搜索路径。-M <path>
:指定手册页的搜索路径。-S <path>
:指定源代码的搜索路径。--help
:显示帮助信息。--version
:显示版本信息。
程序运行两个步骤:找到它然后运行它 which和whereis 实现的就是找到它。
alias指令
alias [别名]='[命令]'
给命令起别名 只在本次生效
grep指令
在文件中搜索字符串,如果找到并将其打印出来,代替more和less 文本行过滤
xargs指令
将选项通过管道作为命令行进行传递
zip/unzip指令
将文件进行压缩和解压
- zip -r name.zip 你的目录
- unzip name.zip 当前路径下
- unzip name.zip -d 指定路径下
ctrl c 中止异常的命令
bc指令
bc命令可以很方便的进行浮点运算
uname指令
uname用来获取电脑和操作系统的相关信息。
常用选项
-a或--all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称
重要的几个热键
- [Tab]按键---具有『命令补全』和『档案补齐』的功能
- [Ctrl]-c按键---让当前的程序『停掉』
- [Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可 以用来取代exit
关机指令
语法:shutdown [选项] ** 常见选项:**
- -h : 将系统的服务停掉后,立即关机。
- -r: 在将系统的服务停掉之后就重新启动
- -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思