欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Linux - 基础指令

Linux - 基础指令

2025/5/15 7:45:54 来源:https://blog.csdn.net/2301_80772499/article/details/147874577  浏览:    关键词:Linux - 基础指令

目录

linux下基本指令

ls pwd cd touch mkdir rmdir rm man cp mv cat ​more less head

tail | 匿名管道 find 指令 which alias  grep zip/unzi rz/sz tar

重要的⼏个热键


学习linux操作系统,学习指令是必不可少的

尽管有图形化的linux操作系统供学者学习,但是到最后工作里面,面对的操作系统是没有图形界面的终端。

指令的熟练运用能大大加快对系统的操作速度,比可视化的鼠标操作要快很多,因此学习指令是必要的。

本博客不仅讲linux命令,还会讲一些linux的基础知识,帮助大家理解linux命令和为后续linux学习做铺垫

作者使用的是Ubuntu版本linux,指令绝大多数和其他版本是一样的

linux下基本指令

命令大致形式,命令大致是由命令+选项+其他来组成的,我们可以通过不同命令的选项来让此命令达到不同的效果,选项前要加  - 选项可以加在除了第一位的任何位置 。例如ls有 -a -l 等选项。具体使用我以ls命令来详细讲解

ls

这个命令是通过某些格式来显示当前目录下的文件信息

语法: ls [选项] [⽬录或⽂件]
选项:因为ls的选项有很多,我仅仅举例常用的几个

  1. -a   列出所有文件,包括隐藏文件(隐藏文件以.开头)
  2. -l   列出文件详细信息注ls  -l 是十分常见的命令,因此将这个命令取了别名叫 ll

命令的选项是可以同时用的

我们可以发现它既显示了全部文件,也把每个文件的详细信息打印了出来。不仅是ls命令,所有命令都是可以的。

选项的组合可以有很多,可以每个选项都带-,可以把所有选项都合在一起,统一前面带-,或者两个混合使用。

pwd

这个命令是显示当前所在的目录

通过它可以快速找到自己处在什么工作目录上。

cd

在了解这个指令之前要知道什么是目录,目录就类似windows的文件夹

在linux系统中磁盘上的文件和目录组成了一颗目录树,每个节点都是目录和文件。

其中普通文件就是叶子节点;目录也可能是叶子节点(空的目录),也可能是路径上的节点

其次我们要知道什么是路径,因为树的无环特性,导致从根节点到某个叶子节点的路径是唯一的,linux的路径就是某个文件或者目录从根目录开始到此点的记录。例如 /home/dgj  就是一个路径。

根目录:  /   就是根目录,表示所有文件和目录的起点

用 “.” 表示当前路径:我们知道pwd可以表示当前工作路径,同时.也是表示当前工作路径

用“..”表示当前路径的上一个目录:通过..可以找到自己的“父亲节点”

绝对路径:从根目录开始描述的路径就是绝对路径/home/dgj就是绝对路径

相对路径:通过.代替工作路径来表示的路径就是相对路径。例如当前我在/home下,我要表示/home/dgj可以用./dgj来代替

这是linux系统里面系统目录树的常见形式

这是每个目录的作用了解完这些后我们来谈cd命令

cd 命令+路径就可以直接跳转到对应路径下,自己的工作路径也就改变了

通过以上操作,我们可以印证“.”和“..”的意义的确如此,同时可以使用相对路径来改变我们工作路径,通过..快速回到上级目录。当然我们也可以使用绝对路径

另外如果cd 使用相对路径,我们可以省略./   系统会默认此为相对路径

另外cd不仅只有   “.”和“..”两个特殊的路径,还有回到家目录的 cd ~

cd -回到上一次的路径

大家可以在系统目录来回使用一下cd 命令

touch

作用是创建一个文件,或者更改⽂档或⽬录的⽇期时间。

因此我们要讲解一下文件相关的基础知识

文件=文件属性+文件内容

我们创新一个a.txt文件,里面什么东西都没写,能说明它没有占系统内存吗?当然不行,系统会记录文件的属性。

这里就只先介绍文件的三个时间:

修改时间(modify time),作用是记录文件最后一次被修改的时间,简称mtime

访问时间(access time),作用是记录文件最后一次被访问的时间,简称atime

状态变更时间(change time),作用是记录文件最后一次文件属性(元数据)变更的时间,简称ctime

时间戳:自1970.1.1开始从0开始每秒自增,这个比较大的数字就是时间戳。

time因为十分容易变更,防止其频繁改变影响性能,因此被归为非关键元数据,所以atime的变化不会让ctime变化。

touch命令就是创建一个指定文件名的文件和更改时间

选项

-m 更改 mtime的时间,因为修改了元数据,因此ctime也会改变

-a  更改atime时间,因为ctime被归为非关键元数据,因此ctime不会改变

如果touch一个已经存在的文件,会同时改变atime,mtime,mtime又导致ctime的改变

mkdir

创建一个目录

-p  递归创建目录

tree一个目录可以以当前目录为根显示整个目录树

rmdir

删除一个空目录,如果非空则无法删除

-p 如果子目录删除后,父目录为空了,也会删除父目录,一直递归下去。前提是工作路径不在要删的父目录上,否则会停止

正确的删除方法是用路径来删除

那么我们可以跳转到最里面的dir目录,对它进行rmdir,就可以删除这三个dir目录了

rm

删除目录或文件

选项

-f 强制删除

-i 删除前逐个询问

-r 如果是目录,递归式删除目录下所有子文件和目录

那么我们就可以用另一种方式删除/dir/dir/dir

-rf 这种方式十分强硬,且没有后悔药,所以一般不要使用这种选项,特别是在工作里面,万一打出一个rm -rf / 把根目录删了,后果不堪设想。

man

这个指令方便我们查询接口和命令,是一个手册。

这个手册有很多章,常见的是前三章

1 是普通的命令

2 是系统调⽤,如open,write之类的(通过这个,⾄少可以很⽅便的查到调⽤这个函数,需要加什么

头⽂件)

3 是库函数,如printf,fread4是特殊⽂件,也就是/dev下的各种设备⽂件

例如查询ls

man ls可以直接跳转到这个页面,来查询具体用法。

可以使用/内容 来查找所要查找的内容,例如/ls  回车后就会把ls内容标色

退出手册按一下q键就行了

cp

用来拷贝目录或者文件到另一个路径下

格式 cp  被拷贝对象 拷贝目录

拷贝如果成功,如果已有同名文件会直接被覆盖

选项

-f 或 --force 强⾏复制⽂件或⽬录, 不论⽬的⽂件或⽬录是否已经存在

-i 或 --interactive 覆盖⽂件之前先询问⽤⼾

-r 递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符号链接,则⼀律视为普通⽂件处理

如果我现在将test目录整体拷贝到test_空目录里面,要怎么搞呢?

必须要加上-r 递归拷贝,否则将会失败

mv

移动文件或者目录 或者 改名

移动文件默认递归,即-r

选项

-f :force 强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖

-i :若⽬标⽂件已经存在时,就会询问是否覆盖!

cat

查看文件里面的内容

-n  对所有行编号


more

more命令和cat差不多,也是查看文件的内容,

-n 显示前多少行

more不会显示全部内容,可以用下箭头翻阅

缺点是不能使用上箭头网上翻阅

less

比more多一个向上翻阅的功能

head ⽤来显⽰档案的开头⾄标准输出中,默认head命令打印其相应⽂件的开头10⾏。

选项:

 -n<⾏数> 显⽰的⾏数

tail

这个指令就是head反过来,一个从头打印,一个从尾部打印,默认写入标准输出中

-n<⾏数> 显⽰的⾏数,默认显示10行

| 匿名管道

如果我们要查看a.text的11-13行的数据要怎么办呢?

先直接给指令

原理就是先把前13行的数据写到了这个"|"管道文件里面,然后后面的指令对管道文件里面的数据进行操作,提取后3行的数据。匿名管道底层涉及到进程间通信,所以我简单和大家说了说原理

find 指令

查找文件一般用 -name选项来查找文件,一般是从当前工作路径下往后查找,因此查找的时候注意

例如我查找一下有关test.cpp的文件,先回到家目录然后查看

which 

搜索系统指定的命令

alias 

这个指令是给指令取别名 

具体格式如下,所以ll就是一个取别名的命令  alias ll ='ls -l'

grep

在⽂件中搜索字符串,将找到的⾏打印出来

选项:
-i :忽略⼤⼩写的不同,所以⼤⼩写视为相同

-n :顺便输出⾏号

-v :反向选择,亦即显⽰出没有 '搜寻字符串' 内容的那⼀⾏

下面是a.txt文本的内容,我们来试试

zip/unzip

zip 压缩⽂件.zip ⽬录或⽂件,压缩后的文件会成.zip的压缩包

选项:

-r  递归处理,将目录下的所有文件都打包

-d 将压缩包结果放到指定目录下,没有就是默认在工作目录下

如果没有zip,CentOS使用 yum install zip uzip 即可下载,Ubuntu使用apt install zip 即可下载

但这样压缩的只会压缩test这个目录文件,内部文件不会跟着压缩,因此要加-r

rz/sz

通过这两个命令可以实现linux和windows下的文件互传。rz相当于receive接受,sz相当于send发送。因此rz是接受windows的文件,sz是发送给windows文件

如果没有这两个命令,需要sudo yum/apt install -y lrzlz

tar

• -c :建⽴⼀个压缩⽂件的参数指令(create 的意思);

• -x :解开⼀个压缩⽂件的参数指令!

• -t :查看 tarfile ⾥⾯的⽂件!

• -z :是否同时具有 gzip 的属性?亦即是否需要⽤ gzip 压缩?

• -j :是否同时具有 bzip2 的属性?亦即是否需要⽤ bzip2 压缩?

• -v :压缩的过程中显⽰⽂件!这个常⽤,但不建议⽤在背景执⾏过程!

• -f :使⽤档名,请留意,在 f 之后要⽴即接档名喔!不要再加参数!

• -C : 解压到指定⽬录

tar命令比较复杂,目前只要掌握如何压缩和解压缩即可

压缩用-czf   解压用-xzf

重要的⼏个热键

[Tab], [ctrl]-c, [ctrl]-d
• [Tab]按键---具有『命令补全』和『档案补⻬』的功能

• [Ctrl]-c按键---让当前的程序『停掉』

他也可以⽤来取代exit

例如我们按两次tab可以显示全部相关的指令

如果一个正在运行程序我们想让其停止就用 ctrl + c

以下命令作为扩展

• 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、

exit、last;

• ⽂件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;

• 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;

• ⽹络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、

mail、 nslookup;

• 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、

who;

• 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

随着后面的学习,还会遇到越来越多的命令,所以这些命令是远远不够的,但是进行基础的系统操作是完全够了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词