Linux的一些基本指令

​​​​​​​

目录

前言:

1.以指令的形式登录

2.ls指令

语法:

功能:

常用选项:

3.pwd指令

4.cd指令

[4.1 绝对路径与相对路径](#4.1 绝对路径与相对路径)

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

[4.3 目录结构-多叉树](#4.3 目录结构-多叉树)

[4.4 cd~](#4.4 cd~)

[4.5 cd -](#4.5 cd -)

5.touch指令

6.mkdir指令

[6.1 mkdir与mkdir -p](#6.1 mkdir与mkdir -p)

7.rm指令

[7.1 rmdir与rmdir -p](#7.1 rmdir与rmdir -p)

[7.2 rm -rf](#7.2 rm -rf)

[7.3 rm -rf *](#7.3 rm -rf *)

[7.4 rm -i](#7.4 rm -i)

8.man指令

9.cp指令

语法:

常用选项:

10.nano笔记本

11.mv指令

语法:

功能:

12.cat指令

13.重定向与echo命令

[13.1 echo命令](#13.1 echo命令)

[13.2 输出重定向 >](#13.2 输出重定向 >)

[13.3 追加重定向 >>](#13.3 追加重定向 >>)

[13.4 输入重定向 <](#13.4 输入重定向 <)

[13.5 linux下一切皆文件](#13.5 linux下一切皆文件)

14.more指令与less指令

[14.1 more指令](#14.1 more指令)

[14.2 less指令](#14.2 less指令)

15.head和tail指令

[15.1 head命令](#15.1 head命令)

[15.2 tail命令](#15.2 tail命令)

[15.3 使用](#15.3 使用)

16.时间相关的指令

16.1显示时间

[16.2 时间戳](#16.2 时间戳)

[16.3 cal(calendar)指令](#16.3 cal(calendar)指令)

17.find指令

[用法:find pathname -options](#用法:find pathname -options)

功能:用于在文件数中查找文件,并做出相应的处理

常用选项:

18.which指令

19.whereis指令

20.alias指令

21.grep指令

22.xargs命令

23.zip与unzip指令

[23.1 安装指令](#23.1 安装指令)

[23.2 使用](#23.2 使用)

24.tar指令

使用:

25.bc指令

26.uname指令

用法:

功能:

常用选项:

27.一些热键

28.关机指令

用法:

常见选项:

29.history指令

总结:

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


前言:

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

环境:Xshell7

服务器:华为云

1.以指令的形式登录

bash 复制代码
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指令:

bash 复制代码
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指令

显示原来写过的命令。

总结:

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

相关推荐
心月狐的流火号10 分钟前
计算机I/O模式演进与 Java NIO 直接内存
java·操作系统
绵绵细雨中的乡音1 小时前
网络基础知识
linux·网络
Peter·Pan爱编程1 小时前
Docker在Linux中安装与使用教程
linux·docker·eureka
kunge20132 小时前
Ubuntu22.04 安装virtualbox7.1
linux·virtualbox
清溪5492 小时前
DVWA中级
linux
Sadsvit3 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
xiaok3 小时前
为什么 lsof 显示多个 nginx 都在 “使用 443”?
linux
苦学编程的谢3 小时前
Linux
linux·运维·服务器
G_H_S_3_4 小时前
【网络运维】Linux 文本处理利器:sed 命令
linux·运维·网络·操作文本
Linux运维技术栈4 小时前
多系统 Node.js 环境自动化部署脚本:从 Ubuntu 到 CentOS,再到版本自由定制
linux·ubuntu·centos·node.js·自动化