0


Linux的一些基本指令

​​​​​​​

前言:

介绍一些linux常用的基础指令,具体到指令的一些选项,会挑常用的介绍,一些不常用的,再使用到的时候会介绍。

环境:Xshell7

服务器:华为云

1.以指令的形式登录

ssh 公网ip
ssh root@公网ip

前者使用后需要输入用户名,如果需要直接登录root直接使用下面的指令,随后输入密码即可。

2.ls指令

语法:ls 选项 目录或文件
功能:对于目录,该命令列出该目录下的所以子目录与文件。对于文件,将列出文件名以及其他的信息。
常用选项:
2.1 -l 列出文件的详细信息

当前路径为root/,直接ls显示当前路径下的文件名,code为root路径下的文件夹

显示当前路径下的文件属性,可简写为ll

注意

1.linux下文件=内容数据+属性数据,文件的属性是指文件的名称,类型,大小等,但在计算机看来,都是数据,所以在磁盘上创建一个空文件夹页需要占磁盘上的空间。

2.目前文件的属性我们只需要知道,drw...是文件的权限,前后两个root是文件是所有者也所属组,4096为文件的大小,单位为字节,后面为文件的创建时间或者文件的最新更新时间。

2.2 -a 列出目录下的所以文件,包括以.开头的隐含文件(linux下以.开头的为隐藏文件)

与-l选项配合使用,显示了当前路径下包括隐藏文件的信息,可简写为-al

注意

1.windows和linux下都有隐藏文件,linux中.开头即代表隐藏的文件,若要创建一个隐藏文件或者目录,例如touch .youcannotseeme.txt或者mkdir .mydir,再ls -al即可查看创建的隐藏文件的属性

2.隐藏文件通常应用于隐藏配置文件。

2.3 -d 将目录像文件一样显示,而不是显示其下的文件,例如ls -d 指定目录
2.4 -i 输出文件的i节点的索引信息,如ls -ai 指定文件(查看文件的inode编码)

配合使用ls -a -l -i,可简写为-ali,查看包括隐藏文件的inode编码(后面再提)。

3.pwd指令

显示当前路径,主要与其它指令配合使用

4.cd指令

4.1 绝对路径与相对路径

绝对路径:直接访问具体的路径,一般用于配置文件

相对路径:不以根目录开始,而是以当前的路径为参考点

4.2 cd .与cd ..(注意cd后先空格,然后两个点是连一起的)

.表示当前路径,cd .表示进入当前路径,同时后面我们会见到./a.out,a.out为可执行程序,而./a.out就是表明运行当前路径下的可执行程序

..表示直接上级路径,帮助我们进行路径的切换,下图为目前在code目录下有一个test.c,我们进入到code目录下,再显示当前目录下的上一级的信息即code所在路径的信息:

假设现在在heoal目录下,进入上一级即home路径:

总结:

例如有一个code文件夹,当前我们就在这个路径下,code路径下有一个test.c文件

./test.c就是当前路径下的相当于code/test.c,而../test.c就是表示test.c的上一级路径即code

注意

直接使用cd时,不能由下级进入到上级目录。

4.3 目录结构-多叉树

我们需要知道,linux的整个目录结构,本质上是一颗多叉树结构:

分为目录(包括路径上的节点)与文件或者空目录(叶子节点),在root目录下,../是访问到根目录。

所以我们一般定位文件的时候,喜欢采用路径的方式去定位。

4.4 cd~

配合pwd跳转当前用户的工作目录(家目录)。

什么是工作目录(家目录)呢?

对于普通用户而言,/home/XXX就叫做XXX这个用户的家目录(工作目录),cd 相当于cd /home/用户名;对于root用户而言,/root就是家目录,就是家目录,cd ~就相当于cd /root。

4.5 cd -

跳转至上一次我所处的路径中:

注意是上一次我所处的路径,而不是上一个路径,例如这里root用户先进入到家目录,然后来到根目录,然后cd -返回到上一次我所处的路径即root家目录,然后cd -再返回到上一次我所处的路径是根目录,类似地,如果再cd -就又返回到root家目录了。

5.touch指令

touch myfile创建一个普通文件,显示文件属性会看到文件的最近修改时间(第一次创建就是创建时间)。

如果我们在创建一个同名文件会更改时间,更新到最新的时间:

6.mkdir指令

6.1 mkdir与mkdir -p

mkdir mydir直接创建目录。

mkdir -p创建一串目录:

6.2 tree指令

以树状显示一串目录,安装tree指令:

yum install -y tree

需要注意前提是在家目录:

7.rm指令

7.1 rmdir与rmdir -p

默认只能删除空目录:

带选项-p会递归删除子目录(如果子目录被删除后父目录变为空目录了,就连父目录一起删除):

注意子目录也要为空目录。

7.2 rm -rf

rm默认删除普通文件,如果想要删除目录,rm -rf(f表示强制删除,-r表示递归,可以删除多重目录):

7.3 rm -rf *

*是一种通配结构,例如ll *.c就是显示当前目录下的所以.c文件,ll *为显示所以文件。

rm -rf *.c就是删除当前目录下的所有.c文件,rm -rf *就是删除当前目录下所有文件,rm -rf /是删除所有的目录,不要用!!!linux下没有回收站,删了就没了,恢复太难了!!!

7.4 rm -i

删除时系统会问一下,yes或者y就是删除,no或者n就是不删。

8.man指令

  • Linux命令很多参数,使用man直接使用访问Linux手册,例如查看自己 man man
  • (云服务器一般man命令不全,安装命令yum install -y man-pages),若不是root用户,需要给普通用户添加权限,再在安装命令前加上sudo
  • man可查看自己,其中手册分为8章,前3章很重要,man 1是查找普通命令,man 2是系统调用,linux内核提供的函数,man 3是c语言的库函数
  • 进入书册,向上向下键是翻页,q是退出

9.cp指令

语法:

cp 选项 源文件或目录 目标文件或目录

功能:

复制文件或目录,如果指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,侧会把它前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

常用选项:

-f:强制复制,无论目的文件或目录是否已经存在

-i:覆盖文件前先询问用户

-r:递归处理

10.nano笔记本

安装linux内部nano笔记本:yum install -y nano

退出:ctrl+x

11.mv指令

语法:

mv 文件名或者目录名 目录名/

功能:

移动文件或者目录,如果最后的文件是个不存在的文件,就是对文件重命名。

注意

移动目录时,必须保证目标目录为空目录。

12.cat指令

用来打印文件的内容。

cat -n为打印时带上行号,tac为倒着打印内容。

13.重定向与echo命令

13.1 echo命令

打印变量的值会在输出指定的字符串,也可以将结果写到文件里面。

13.2 输出重定向 >

功能:1.创建没有的文件 2.本应该显示到显示器的内容被写入到了文件中

图中可以看到:file.txt是之前没有的文件,>创建了之前没有的文件,并且将"hello"写到了这个文件里;再次写入同一个文件会覆盖之前的。

13.3 追加重定向 >>

可以看到追加重定向也会创建之前没有的文件。

追加效果:

13.4 输入重定向 <

之前file.txt中为aaa,bbb现在让file.txt的内容流入到cat中打印出来或者说从文件中获取内容打印出来。

如果cat后不跟东西,你输入什么就会打印什么(ctrl+c)停止,那cat是从那里读到的内容呢?我们暂且认为是从键盘中获取的,我们如果加上<符号就是跟上面的一样,那为什么不加<,cat也可以读到数据呢?这就要涉及到底层的实现了,io篇再来介绍。

也可以复合着来写:

将file的内容直接输出到file2中,如果file2没有,就自动建一个。

将file1中的内容输入到程序里,再输出到file3上,file3没有就自动建一个。

13.5 linux下一切皆文件

linux下一切皆文件是一个经典的概念,为什么要提到这个呢?我们先借助刚刚的cat重定向等一系列内容简单说一下,linux系统是将所有东西都看作文件的,怎么理解呢?

将所有包括硬件都看作结构体file里面的内容(因为linux是c语言加上少量的汇编编写的),结构体里面有函数指针,每个函数指针都对应指向对应的功能,还都在file这个结构里面,所以linux下一切皆文件。

再例如刚刚我们cat命令可以读取一个普通的文件,也可以读取键盘上输入的字符,这使得操作系统变得更加的简单与直观。

14.more指令与less指令

14.1 more指令

当文件有大量数据的时候,直接cat打印会直接跳到最后,想要从头开始,使用more,然后只会打印出一个屏的内容,按回车可往下翻,按q结束

-n选项对输出的所有行进行编号,q退出

14.2 less指令

more指令缺点不能够上下翻,推荐使用less,用法与more一样,但是多了上下键可以翻页。

常见选项:

-i:忽略搜索时的大小写

-N:显示没行的行号

/字符串:向下搜索"字符串"的功能

?字符串:向上搜索"字符串"的功能

n:重复前一个搜索(与/或?有关)

N:反向重复前一个搜索(与/或?有关)

q:quit

15.head和tail指令

15.1 head命令

用法:head 选项 文件

功能:显示档案的开头到标准输出中,默认head命令打印其相应文件的开头10行,-n选项用来显示行数。

15.2 tail命令

用法:tail 必要参数 选择参数 文件

功能:用于显示文件末尾的内容,不指定文件时,作为输入信息进行处理,常用于查看日志文件。

15.3 使用

假设有1万个数据,如果我们想取出中间一段该怎么办?

1.使用head和tail

但是这样还需要创建一个文件,如果数据量大还要存到磁盘中去。

2.使用管道

管道用来传导数据,对数据进行批量化,流水化处理,管道也看做一个管道文件,但实际是看不到的,它是一个内存级别的文件,不存在磁盘上(后面进程地址空间的时候会提到磁盘级的管道),所以不需要占用磁盘空间,直接在内存里完成,并且只需要一行命令。

还可以使用wc -l命令来统计文本行的行数:

16.时间相关的指令

16.1显示时间

中间的斜杠与冒号可以自己定制 。

16.2 时间戳

Unix时间戳是从1970年1月1日开始所经过的秒数,不考虑闰秒。

当前时间转时间戳:date +%s

时间戳转正常时间:

为什么不是从0点开始,因为有时差,我国是从这个时间开始的,也可以上网搜其它的。

16.3 cal(calendar)指令

用来显示公历(阳历)日历。

用法:cal 参数 月份 年份

功能:用于查看日历,如果只有一个参数,则表示年份1-9999,如果有两个参数,则表示月份和年份。

常用选项:

-3:显示当前月和前后一个月,-1显示当前月或者直接cal:

-j显示在当年的第几天。

-y显示当前年份的日历:

17.find指令

用法:find pathname -options
功能:用于在文件数中查找文件,并做出相应的处理
常用选项:

-name:按照文件名查找文件

18.which指令

首先我们要先看待linux下的命令本质为可执行程序!!!

所以像windows下的安装软件其实就是将exe文件拷贝到了c盘的某个位置,给了一个图像化的界面和快捷方式。

现在我们再来看which指令:

which指令就是在系统路径下,查找特定指令所在的路径,ls就是、usr/bin这个路径下的可执行程序,或者说是将这个命令或者这个可执行程序拷贝到某个路径下,就是我们看到的安装,所以我们在电脑是看到的应用图标就是一个快捷方式,删除还有它所在路径下的一些配置文件。

所以我们使用命令也可以带路径:

但是我们在要执行程序时,要使用./a.out(意思就是找到在当前路径下的可执行程序),而直接a.out是找不到这个可执行程序的,就会报命令找不到的错误,那为什么执行系统的命令不需要带路径呢?在讲环境变量会介绍。

19.whereis指令

查找系统路径下,只要出现了关于查找的内容的路径。

20.alias指令

给命令取别名:

这里的color就是颜色,有些命令颜色不同就是因为这个。

21.grep指令

用法:grep 选项 搜寻字符串 文件。

功能:在文件中搜索字符串,将找到的行打印出来,实际就是文本过滤工具。

常用选项:
-i:忽略大小写的不同,所以大小写视为相同。

-n:顺便输出行号。

-v:反向选择,即显示出没有“搜索字符串”内容的那一行。

22.xargs命令

作用:将管道的输出结果作为命令行参数,交给后面程序。

ls是不读取内容的,直接通过管道将字符串内容给ls会被直接忽略的,加上xargs会

将字符串转化成ls的命令行参数,然后就能达到和ls -l -a -i一样的效果了

23.zip与unzip指令

23.1 安装指令

有些云服务器可能没有安装,安装yum install -y unzip zip或yum install -y epel-release

23.2 使用

1.zip -r name.zip 解压内容(-r表示递归,将指定目录下的所有文件和子目录一并删除)

2.unzip name.zip(解压到当前路径下)

3.unzip name.zip -d 指定的路径

注意

1.压缩后面要先跟压缩包的名字(自己取),再跟要压缩文件的名字

2.解压时如果要解压到当前路径下,就要删掉原文件(因为解压后的文件与原文件名字一样,就解压不了了),或者解压到其他路径下

project.zip是project压缩过来的,如果直接想图中这样解压,不行!因为project.zip解压后文件名字与project冲突了,要先删掉project或者解压到其他路径。

24.tar指令

使用:

c表示创建一个文件,z表示压缩或解压,v表示显示压缩解压过程(文件太大可以不带,不然慢),f表示压缩的文件的名称(必须放到最后,紧跟压缩文件的名字),有的环境报错就不带前面这个杠-,tgz是tar.gz的缩写,tar表示打包,gz表示压缩。

x表示解压,在当前路径下解压,注意要删掉原来的文件

-C解压到特定路径

当压缩解压tar包时,不要带z就行,如果要查看tar包内容(tar包是不经过压缩的,只是打包,所以很大):

25.bc指令

linux下的计算机(也可用做进制的计算) ,可以方便的进行浮点运算。

26.uname指令

用法:

uname 选项

功能:

uname用来获取电脑和操作系统的相关信息,显示linux主机所用的操作系统的版本,硬件的名称等基本信息。

常用选项:

-a或者-all: 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

查看linux下的体系结构(x86_64就是64位的,这就是cpu的体系结构)和内核版本,-r是只有内核版本,-a是所有信息。

27.一些热键

输入一个a,tab2下会直接出现所以a的指令,有些命令tab一下会自动补齐并给上空格。

ctrl+z是暂停,程序还在运行可能,直接ctrl+c停掉。

ctrl+d退出登录,多几次就直接退出xhell了。

ctrl+r进入历史搜索阶段,输入原来很长的代码的片段就会自动匹配,如果有很多个选项,左右键选中回车即可。

28.关机指令

用法:

shutdown 选项 常见选项

常见选项:

-h:将系统的服务器停掉后,立即关机

-r:在将系统的服务停掉之后就重新启动

-t sec:-t后面加秒数,即过几秒关机的意思

reoot命令为重启服务器,服务器不要随便重启!!!

29.history指令

显示原来写过的命令。

总结:

好多命令啊!但是我们只要记住:指令需要常用,不需要死硬背!!!

标签: linux 操作系统

本文转载自: https://blog.csdn.net/2301_79698419/article/details/136638435
版权归原作者 heoal_Y 所有, 如有侵权,请联系我们删除。

“Linux的一些基本指令”的评论:

还没有评论