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]-c按键---让当前的程序『停掉』
  • [Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可 以用来取代exit

关机指令

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

  • -h : 将系统的服务停掉后,立即关机。
  • -r: 在将系统的服务停掉之后就重新启动
  • -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思
相关推荐
SG.xf1 分钟前
Ansible
运维·ansible
HEX9CF37 分钟前
【Linux】SQLite 数据库安装教程(Ubuntu 22.04)
linux·数据库·sqlite
看山还是山,看水还是。1 小时前
Nginx 的 Http 模块介绍(中)
android·运维·网络·nginx·http
kimi-2221 小时前
Linux 常用命令二
linux
苏湘涵1 小时前
socket编程---UDP
linux·开发语言·网络·php·进程通信
、十一、1 小时前
Linux中ES的安装
linux·运维·elasticsearch
不甘平凡的蜜蜂1 小时前
第三十三篇:TCP协议如何避免/减少网络拥塞,TCP系列八
运维·网络·网络协议·tcp/ip·计算机网络·智能路由器
danplus1 小时前
外贸邮件营销群发:如何避免成为垃圾邮件?
服务器·api接口·邮件营销·smtp服务器·邮件接口·营销邮件·域名邮箱
琪露诺大湿1 小时前
JavaEE-多线程初阶(1)
java·linux·开发语言·jvm·数据库·java-ee·1024程序员节
静思心远1 小时前
驱动和芯片设计哪个难
linux