Linux的一些基本指令

news2024/9/28 11:25:24

​​​​​​​

目录

前言:

1.以指令的形式登录

2.ls指令

语法:

功能:

常用选项:

3.pwd指令

4.cd指令

4.1 绝对路径与相对路径

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

4.3 目录结构-多叉树

4.4 cd~

4.5 cd -

5.touch指令

6.mkdir指令

6.1 mkdir与mkdir -p

7.rm指令

7.1 rmdir与rmdir -p

7.2 rm -rf

7.3 rm -rf *

7.4 rm -i

8.man指令

9.cp指令

语法:

常用选项:

10.nano笔记本

11.mv指令

语法:

功能:

12.cat指令

13.重定向与echo命令

13.1 echo命令

13.2 输出重定向 >

13.3 追加重定向 >>

13.4 输入重定向 <

13.5 linux下一切皆文件

14.more指令与less指令

14.1 more指令

14.2 less指令

15.head和tail指令

15.1 head命令

15.2 tail命令

15.3 使用

16.时间相关的指令

16.1显示时间

16.2 时间戳

16.3 cal(calendar)指令

17.find指令

用法:find pathname -options

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

常用选项:

18.which指令

19.whereis指令

20.alias指令

21.grep指令

22.xargs命令

23.zip与unzip指令

23.1 安装指令

23.2 使用

24.tar指令

使用:

25.bc指令

26.uname指令

用法:

功能:

常用选项:

27.一些热键

28.关机指令

用法:

常见选项:

29.history指令

总结:

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


前言:

介绍一些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指令

显示原来写过的命令。

总结:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1541542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库范式拆分实战

函数依赖 如果给定一个X&#xff0c;能唯一确定一个Y&#xff0c;就称X确定Y&#xff0c;或者说Y依赖于X&#xff0c;例如Y X*X函数。 X -> Y&#xff08;X确定Y&#xff0c;Y依赖于X&#xff09; 部分函数依赖 A可确定C&#xff0c;&#xff08;A&#xff0c;B&#xff09…

基于深度学习的生活垃圾智能分类系统(微信小程序+YOLOv5+训练数据集+开题报告+中期检查+论文)

摘要 本文基于Python技术&#xff0c;搭建了YOLOv5s深度学习模型&#xff0c;并基于该模型研发了微信小程序的垃圾分类应用系统。本项目的主要工作如下&#xff1a; &#xff08;1&#xff09;调研了移动端垃圾分类应用软件动态&#xff0c;并分析其优劣势&#xff1b;…

stm32使用定时器实现PWM与呼吸灯

PWM介绍 STM32F103C8T6 PWM 资源&#xff1a; 高级定时器&#xff08; TIM1 &#xff09;&#xff1a; 7 路 通用定时器&#xff08; TIM2~TIM4 &#xff09;&#xff1a;各 4 路 例如定时器2 PWM 输出模式&#xff1a; PWM 模式 1 &#xff1a;在 向上计数 时&#xff0…

Linux之git

一、什么叫做版本控制 版本控制&#xff08;Revision control&#xff09;是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史&#xff0c;方便查看更改历史记录&#xff0c;备份以便恢复以前的版本的软件工程技术。简单来说就是用于管理多人协同开发项目的技…

【链表】Leetcode 142. 环形链表 II【中等】

环形链表 II 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系…

YoloV8改进策略:BackBone改进|PKINet

摘要 PKINet是面向遥感旋转框的主干,网络包含了CAA、PKI等模块,给我们改进卷积结构的模型带来了很多启发。本文,使用PKINet替代YoloV8的主干网络,实现涨点。PKINet是我在作者的模型基础上,重新修改了底层的模块,方便大家轻松移植到YoloV8上。 论文:《Poly Kernel Ince…

zabbix企业微信的告警媒介配置

简介&#xff1a; Zabbix企业微信告警媒介可用于向特定群组成员发送提醒通知。 前提条件&#xff1a; 完成Zabbix告警平台的搭建后&#xff0c;需将群机器人添加至告警提醒群中。 企业微信群聊——右上角三个点——添加群机器人 保存好产生的webhook地址&#xff08;注意&…

Kotlin的lateinit关键词

Kotlin的lateinit关键词 lateinit&#xff0c;延迟初始化。有时&#xff0c;并不能定义一个变量或对象值为空&#xff0c;而也没办法在对象或变量在定义声明时就为它赋值初始化&#xff0c;那么这时就需要用到Kotlin提供的延迟初始化lateinit。比如&#xff0c;有些依赖注入框架…

Docker可视化管理工具DockerUI

什么是 DockerUI &#xff1f; DockerUI 是一款开源的、强大的、轻量级的 Docker 管理工具。DockerUI 覆盖了 docker cli 命令行 95% 以上的命令功能&#xff0c;通过可视化的 Web 界面操作&#xff0c;可以非常方便、轻松进行 docker 环境和 docker swarm 集群环境的管理和维护…

二分算法(查找)

问题&#xff1a;在数组中查找某一个数字x4的下标 例&#xff1a;arr:1 3 4 6 10 20 21 22 显然&#xff0c;数字4的下标为3。 1、线性查找&#xff0c;一个个地去遍历&#xff0c;时间复杂度为O(n) 2、二分查找&#xff0…

Centos7虚拟机中oracle19c数据库安装

目录[-] 1. Centos7虚拟机中oracle19c数据库安装 1.1. 1.先诀条件1.2. 2.oracle19c安装准备(root用户下执行)1.3. 3.CentOS7上安装oracle19c 1.先诀条件 本文在安装oracle19c时,各项oracle配置操作都通过图形界面进行。因此CentOS7系统需要安装gnome图形程序,虚拟机安装时未…

【自编码器】梳理(上)

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 梳理有关自编码器 1. 自编码器 1.1 原理 Auto-Encoder&#xff0c;中文称作自编码器&#xff0c;是一种无监督式学习模型。利用输入数据 X X X本身作…

苍穹外卖笔记

苍穹外卖 DAY01nginx反向代理MD5加密yapi进行接口导入Swagger介绍 DAY02新增员工需求分析和设计写相关代码测试(1. 后端文档测试 2. 前后端联调代码完善 员工分页查询DAY01 02涉及到的知识 DAY01 nginx反向代理 MD5加密 拓展&#xff1a;spring security jwt 提供了更强大灵…

实战高效RPC方案在嵌入式环境中的应用与揭秘

实战高效RPC方案在嵌入式环境中的应用与揭秘 开篇 在嵌入式系统开发中&#xff0c;大型项目往往采用微服务架构来构建&#xff0c;其核心思想是将一个庞大的单体应用分割成一系列小型、独立、松耦合的服务模块&#xff0c;这些模块可以是以线程或进程形式存在的多个服务单元。…

C语言动态内存的管理

前言 本篇博客就来探讨一下动态内存&#xff0c;说到内存&#xff0c;我们以前开辟空间大小都是固定的&#xff0c;不能调整这个空间大小&#xff0c;于是就有动态内存&#xff0c;可以让我们自己选择开辟多少空间&#xff0c;更加方便&#xff0c;让我们一起来看看动态内存的有…

yolov5训练并生成rknn模型部署在RK3588开发板上,实现NPU加速推理

简介 RK3588是瑞芯微&#xff08;Rockchip&#xff09;公司推出的一款高性能、低功耗的集成电路芯片。它采用了先进的28纳米工艺技术&#xff0c;并配备了八核心的ARM Cortex-A76和Cortex-A55处理器&#xff0c;以及ARM Mali-G76 GPU。该芯片支持多种接口和功能&#xff0c;适…

python写爬虫爬取京东商品信息

工具库 爬虫有两种方案&#xff1a; 第一种方式是使用request模拟请求&#xff0c;并使用bs4解析respond得到数据。第二种是使用selenium和无头浏览器&#xff0c;selenium自动化操作无头浏览器&#xff0c;由无头浏览器实现请求&#xff0c;对得到的数据进行解析。 第一种方…

分布式技术知识体系

分布式架构知识与技术 1.分布式相关理论与组件原理 理解分布式基础理论&#xff08;CAP/BASE&#xff09; 掌握分布式必知必会的核心知识与技能 摸清分布式系统研发与设计的各个环节 2.分布式相关技术及实践 掌握分布式各应用场景与实践技术栈 熟练运用分布式中间件 完成软件…

java面向对象编程基础

对象&#xff1a; java程序中的对象&#xff1a; 本质上是一种特殊的数据结构 对象是由类new出来的&#xff0c;有了类就可以创建对象 对象在计算机的执行原理&#xff1a; student s1new student();每次new student(),就是在堆内存中开辟一块内存区域代表一个学生对象s1变…

第十届蓝桥杯大赛个人赛省赛(软件类)真题- CC++ 研究生组-最短路

6 肉眼观察&#xff0c; 看起来短的几条路对比下来是6~ #include <iostream> using namespace std; int main() {printf("6");return 0; }