Linux下基本指令(图文并茂、万字详解)

前言

每天的代码建议重新放在一个目录下,增强文件代码的可维护性

指令=命令+选项,选项相当于查看文件的属性

这里思考 创建一个空文件是否占用磁盘空间呢???

答案是当然是占用的,文件的内容虽然是空的,但是文件所占用的空间不仅仅是内容,还有文件的属性,虽然文件的内容是空的,但是文件的属性还是属于文件占用的空间的。

内容摘要

本文包括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\]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可 以用来取代exit

语法:shutdown [选项] ** 常见选项:**

  • -h : 将系统的服务停掉后,立即关机。
  • -r: 在将系统的服务停掉之后就重新启动
  • -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思
相关推荐
TH_116 小时前
腾讯云-(3)-Linux宝塔面板使用
linux·云计算·腾讯云
虚伪的空想家16 小时前
arm架构服务器使用kvm创建虚机报错,romfile “efi-virtio.rom“ is empty
linux·运维·服务器·javascript·arm开发·云原生·kvm
火车头-11016 小时前
【docker 部署nacos1.4.7】
运维·docker·容器
深藏bIue16 小时前
linux服务器mysql目录下的binlog文件删除
linux·服务器·mysql
虾..16 小时前
Linux 进程状态
linux·运维·服务器
测试者家园17 小时前
DevOps 到底改变了测试什么?
运维·自动化测试·软件测试·devops·持续测试·智能化测试·软件测试和开发
扛枪的书生17 小时前
Linux 通用软件包 AppImage 打包详解
linux
只想安静的写会代码18 小时前
网卡信息查询、配置、常见故障排查
linux·服务器·windows
jiayong2318 小时前
多子系统架构下的Nginx部署策略与最佳实践
运维·nginx·系统架构
皮糖小王子18 小时前
Docker打开本地镜像
运维·docker·容器