【Linux系统】快速入门一些常用的基础指令


各位大佬好,我是落羽!一个坚持不断学习进步的学生。
如果您觉得我的文章还不错,欢迎多多互三分享交流,一起学习进步!

也欢迎关注我的blog主页: 落羽的落羽

文章目录

开始学习使用Linux,我们首先要掌握一些Linux的基础指令。在我们常用的Windows系统中,各种基础功能大多是靠鼠标、键盘完成的,这是Windows提供的指令利用硬件来完成的相应操作。而Linux中,我们要学会一些基本的指令语句:

pwd、whoami、clear

计算机中的数据存储,无非可以认为只有两种方式:文件和文件夹 。可以认为文件是存储的最小单元,文件夹中可以存文件,也可以有其他文件夹,也可以为空。我们也可以称文件夹为目录 。Linux的这整个文件系统,是一种树形结构 !既然是树,就有根,Linux中根目录名为/。由于树形结构的特点,文件的唯一性是通过路径标识的。无论是Linux还是Windows,登录后都会处在一个默认的路径下,Windows是桌面文件夹,Linux中通过pwd指令查看。

  • pwd指令,功能是显示用户当前所在的目录

    打开我们的XShell,进入机器,连接到云服务器后,输入pwd,回车,就能看到:

    这就表明我当前所在的目录是/root。

  • whoami指令,功能是显示当前登录的用户 ,输入whoami,回车:

    表明我现在是root账号登录的。

  • clear指令:清空当前屏幕。

    很简单,写了满满一屏幕指令后,可以用clear清屏:

mkdir、touch、tree

  • mkdir指令,用来创建目录,可以一次创建一个目录,也可以通过选项-p一次创建一串目录:

    语法:

    • mkdir a,在当前目录下创建一个目录a。
    • mkdir -p a/b/c/d,在当前目录下创建一串目录a、b、c、d,它们的结构是当前目录包含目录a,目录a包含目录b,目录b包含目录c,目录c包含目录d。
  • touch指令,用来创建文件或修改文件信息:

    最简单的用法,touch后加新建的文件名:

    • touch test.c,在当前目录下创建一个test.c文件

举例,如果输入以下指令:

显然,当前/root路径下是这样的树形结构:

这个图像是用tree指令生成的,tree指令需要额外下载:我们使用的是CentOS版本系统,输入指令yum install -y tree,系统就会自动下载了(不同的系统下载指令可能不一样)。稍等几秒,显示complete后就下载好了,我们就可以使用tree指令了:

  • tree指令,显示出以当前所处路径为根的树形结构。
  • tree 指定路径指令,显示出以指定路径为根的树形结构(路径指定方式有两种,见下文)。

我们当前还处在/root目录下,所以使用tree指令,就得到了上图:

(可以看到它还能显式出当前结构中有几个文件夹和几个文件,后面我们都以这个文件结构举例子

除此之外,还可以使用tree a,显示出以a目录为根的树形结构:

还可以使用tree dir1,显示出以dir1目录为根的树形结构,当然dir1是空目录,什么都没有:

刚才还提到过,整个Linux系统的文件结构的根目录名是/,所以我们可以试试tree /指令,由于系统中还有很多其他内部文件,屏幕上就会刷新很长时间文件信息。可以用ctrl c快捷键,中断指令执行的过程。

cd

我们创建了不同的目录,肯定需要进去再进去别的操作。cd的功能就是进入指定的路径。指定路径有两种方式:绝对路径和相对路径。

  • 绝对路径指定:用cd 绝对路径名,即可进入指定的路径:

  • 相对路径指定:相对于当前所处的目录,指定目录。通过...完成,..指上级路径,.指本身所在路径。.的主要作用是找到当前路径下的可执行程序并执行。此时我们主要使用..和路径分隔符/,比如我现在在a目录下,想进入上一层目录/root,用绝对路径表示是cd /root,用相对路径表示是cd ..;我在a目录下,想进入上一层目录/root的子目录dir1,用绝对路径表示是cd /root/dir1,用相对路径表示是cd ../dir1

  • 除此之外,如果只是想去当前目录下的子目录,可以直接使用cd 目录名,这种写法对跨层次或逆层次的进入不起作用:

绝对路径一般不会随着用户的路径变化失去唯一性,一般在特定服务的配置文件中经常被使用。而相对路径可能会随着用户的路径变化失效,但由于它的便携性,一般在命令行中使用比较多。

cd指令还有一种选项用法:cd -指令,可以回到上一次所处的路径。连续使用cd -,就会在两个路径见反复横跳:

ls

ls指令用来罗列指定目录下的内容。

ls,直接罗列出当前目录下的文件名和文件夹名:

一个文件或文件夹通常由内容和属性组成,就算内容是空的,也一定有属性,如名字、创建时间、类型、修改时间、内容大小等等。上面的ls指令仅仅列出文件和文件夹名字,而ls -l可以列出它们的详细信息

前面的还看不懂没事,知道每一行是一个文件或文件夹的详细信息就好。

但是,Linux系统中还可以存在隐藏文件(夹),一般以.开头。隐藏文件(夹)大多是不想被修改,因此直接隐藏起来的文件(夹)。想要把这些隐藏的内容也列出来 ,使用ls -a指令:

-a-l都是ls指令的选项,选项间可以组合使用,写成ls -al 或 ls -la 或 ls -a -l都是一样的效果。这个指令功能不言而喻,就是把当前目录下的所有文件和文件夹包括隐藏文件,并把它们的详细信息都列出来:

值得注意的是,每一个目录,都有两个隐藏文件夹,名字就是...。实际上,.就是自己当前目录,..就是上一级目录。刚才说的相对路径中的...就是这么来的。

除此之外,ls也可以指定目录罗列其下的内容,也可以搭配-a和-l等选项使用,指定目录写在选项后:

rmdir、rm

学了新建目录和文件,当然也要学会删除。

  • rmdir是与mkdir相对的指令,用于删除空目录

rmdir有一个选项-p。rmdir -p dir,会删除空目录dir,并且如果子目录删除后父目录也空了,父目录也删除。循环直至某一个目录不为空或到当前所处路径:

  • rm相对更泛用,能删除文件或目录。

一般情况下,为了安全考虑,系统还会询问一次是否要删除,输入y为是,输入n为否。如果不想让系统提醒,果断删除,就加上-f选项,可以强制删除

只是这样,一次只能删除一项。我们可以使用-r选项,删除指定目录及其下所有文件

这样删除,也会一次次询问。所以,最强硬的删除方式就是rm -rf 指定目录了,一口气通通删掉。当然,风险也相当大,Linux中删除文件可是无法恢复的。
Linux系统的根目录是/,如果写下rm -rf /,后果可就不堪设想了!

man

Linux的命令有很多参数,不可能全记住,man就是Linux自带的一个联机手册,可以查询获取帮助。语法是man 选项 想要查询的命令

常用选项有:

  • -k(根据关键字进行联机查找)
  • num(只在第num章节查找)
  • -a(在所有章节中搜索,直到所有章节都搜索完毕)

man手册中分为9个章节(不同系统可能有差别),里面是不同的内容,我们只需知道前三个:

  • 1 是 普通的命令(最常用,如 ls、cp、man 本身)
  • 2 是 系统调用(内核提供的函数,如 open、fork)
  • 3 是 库函数(C标准库等的函数,如 printf、strcpy)

我们也可以通过man man指令查询到这些内容:

echo

echo命令,作用是将文本写入文件

  • 第一个用法是echo 文本 > 文件名,叫做输出重定向。
  • 不写> 文件名时,默认是输入到显示器文件中,也就是我们的屏幕上:
  • 输出重定向的规则是:目标文件若不存在则创建后写入,若已存在则先清空原有内容再写入。我们也可以反向利用这一点,echo > 文件名便可以清空指定文件
  • 第二个用法是echo 文本 >> 文件名,叫做追加重定向,不会清空文件原有内容,而是在后面续写。

cat、tac、more、less、head、tail

cat命令,作用是查看文件中的内容 。语法是cat 选项 文件名

常用选项有:-b(对非空输出行编号)、-n(对所有的输出行编号)、-s(遇到连续的多行空行时,只输出一行空行)

tac命令,和cat命令相反,它是从文件结尾倒着查看文件内容,具体使用方法和cat几乎一样。

cat命令主要用于查看小文件,查看大文件时会刷屏。

more指令类似于cat,一次只会显示固定行数文本,常用选项有-n(指定输出行数),按回车键不断往下翻查看后面的内容。

还有一个less指令,算是Linux下正统查看文件内容的工具,相比more只能往后面翻,less能往前面和往后面翻。它还有查找指定内容的功能。它的常用选项有:

  • -i,忽略搜索时的大小写
  • -N,显示每行的行号
  • /字符串,向下搜索指定字符串
  • ?字符串,向上搜索指定字符串

再来认识一下head与tail指令。顾名思义,head可以显示开头几行的文本,tail可以显示结尾几行的文本。它们的选项 -n 用来规定查看几行,默认是查看10行。
Linux命令行中有一种叫"管道"的用法,|符号,可以连接不同的命令,组合使用 。在这里,我们也可以组合使用head和tail,比如:

有一个1000行的文件test.txt,我们想查看200到210行的内容,就可以写下命令head -210 test.txt | tail -10,意思是先找test.txt中的前210行,再找其后10行,就是200~210行了。

cp、mv

cp指令的功能是复制文件或目录

语法:cp 选项 源文件或目录 目标文件或目录
如果想复制一个不为空的目录,它的内容也想一并复制,需要加选项 -r 进行递归处理。想要强制复制,用 -f 选项。

也可以选择复制文件覆盖另一个已存在文件,加选项 -i 会在覆盖文件前询问用户。

举个栗子,我现在有如下结构:

将test.c拷贝一份到b目录下;

再演示复制目录及其内容:

既然cp命令是复制,当然也有剪切命令了,就是mv。
mv用来移动文件或将文件改名 ,语法是mv 选项 源文件或目录 目标文件或目录

  • 当第二个参数是目标目录时,该文件会移动到这个目录下。

  • 当第二个参数是目标文件时,该文件会改名为这个目标文件名。

  • 当第二个参数是已存在的目录时,源文件或目录可以有多个,这些源文件和目录都会被移动到目标目录中。

find、which、whereis

Linux下的find命令用于在目录结构中搜索文件,并执行指定的操作。find命令中有许多的选项,功能十分丰富。

语法是find 目录名 选项,常用选项有 -name ,后写文件名,是按照指定文件名查找文件。查找时会在指定目录下寻找:

值得注意的是,Linux下一切皆文件,命令也不例外,大部分Linux命令的本质就是可执行文件,存放在一个固定的位置 ,也可以通过find查询到:/usr/bin路径下,是Linux的固定目录。

which命令,就是用于搜索系统指定的命令位置,which XXX它就相当于find /usr/bin -name XXX

whereis命令,则用于查找程序的源文件、二进制文件或手册:

alias

alias指令用于设置命令的别名 ,这个新起的别名是内存级别的,并不会真实存储,如果退出机器或启动新的终端,是无法使用别名的。

使用语法是alias 别名='命令'(命令中可以带选项)


grep

gerp指令是文本过滤器,用于在文件中搜索字符串,将找到的行打印出来 。语法是grep 选项 要搜寻的字符串 文件常用选项有:

  • -i,搜索时忽略字符大小写的不同,大小写视为相同
  • -n,同时输出行号
  • -v,反向选择,即显示出没有要搜索的字符串的其他内容

zip、unzip、tar

这三个命令与文件的压缩与解压缩有关

zip命令用于将目录或文件压缩成.zip格式 ,语法是zip 选项 压缩文件.zip 目录或文件,常用选项是-r,用于递归处理,压缩目录时必须加-r

unzip命令用于解压缩zip格式的压缩包 ,语法是unzip 压缩文件.zip 选项 目录,不加选项和指定目录时,默认解压到当前目录下。选项 -d 用于指定解压到的目录。

tar指令既能用于打包,也能用于解包 ,作用在. tgz 或 .gz 格式的压缩文件。语法是tar 选项 文件与目录 ...。常用选项有:

  • -c,表示要建立一个压缩文件
  • -x,表示要解开一个压缩文件
  • -z,检查是否需要用 gzip 压缩
  • -f,指定归档文件的名称,使用这个选项必须紧跟在 -f 后面接文件名。
  • -C,解压到指定目录,这个选项写在压缩文件名后,后接要解压到的目录。

uname

uname指令用于获取电脑和操作系统的相关信息。常用选项有 -a(详细输出所有信息)

另外,补充两个查看操作系统版本的命令:

cpp 复制代码
lsb_release -a
cat /etc/os-release

本篇完,感谢阅读。

相关推荐
能不能别报错2 小时前
K8s学习笔记(十一) service
笔记·学习·kubernetes
悠哉悠哉愿意2 小时前
【ROS2学习笔记】服务
开发语言·笔记·学习·ros2
一只大头猿2 小时前
FinalShell 服务器远程连接工具
运维·服务器
aopstudio3 小时前
llms.txt:为大模型打造的“网站说明书”
人工智能·python·llm·开发者工具
东方芷兰4 小时前
LLM 笔记 —— 01 大型语言模型修炼史(Self-supervised Learning、Supervised Learning、RLHF)
人工智能·笔记·神经网络·语言模型·自然语言处理·transformer
腾飞开源4 小时前
02_钉钉消息处理流程设计
人工智能·钉钉·agent智能体·ai智能体开发·全网首发·新课上线·消息处理器
K24B;4 小时前
多模态大语言模型OISA
人工智能·语言模型·语音识别·分割·多模态大语言模型
K24B;4 小时前
多模态大语言模型LISA
人工智能·语言模型·分割·多模态大语言模型
GHL2842710905 小时前
i++汇编学习
汇编·学习