Linux常用指令详解

目录

前言:

Linux的目录结构

Linux常用指令简介

whoami指令

ls指令

pwd指令

 cd指令

tree指令

touch指令

mkdir指令

rmdir指令与rm指令

 man指令

cp(copy)指令

mv(move)指令

cat指令

重定向及重定向的类型与作用

less指令

head指令

tail指令

find指令

​编辑 which指令

whereis指令

grep指令

zip指令/ unzip指令


前言:

Linux是一种免费的开源操作系统,它的内核由Linus Torvalds在1991年创建;Linux操作系统具有高度的灵活性和可定制性,可以在各种设备上运行,包括个人电脑、服务器、移动设备等;Linux操作系统的发行版本非常多,其中一些最流行的版本包括Ubuntu、Debian、CentOS、Fedora等;

Linux操作系统的特点与优势:

  • 开源:Linux操作系统是开源的,这意味着用户可以自由地查看、修改和分发源代码;
  • 安全性:Linux操作系统具有高度的安全性,因为它的用户账户和文件权限管理非常严格;
  • 稳定性:Linux操作系统非常稳定,可以长时间运行而不需要重新启动;
  • 可靠性:Linux操作系统非常可靠,可以处理大量的并发任务和用户请求;
  • 灵活性:Linux操作系统非常灵活,可以根据用户的需求进行定制和配置;

Linux的目录结构

Linux的目录结构采用层级式树状目录结构,所有文件的目录都是由根目录(/)开始的,根目录是所有目录和文件的源头,也就是说Linux最上层是根目录"/",然后在此目录下一个一个的分支下来,有点像树枝,这种目录配置方式被称为目录树(directory tree);

常用目录简介:
/boot   存放系统内核及启动相关的文件;
/dev     此目录下以文件的形式存放任何设备和接口,在Linux系统中,一切皆文件,实际上,对硬件的操作都可以看做是对文件的操作;
/etc      存放系统配置文件;
/home 普通用户的家目录;

/root    root用户(超级用户)的家目录;
/tmp     存放临时文件;

Linux中有两类用户:普通用户  超级用户(root用户)

超级用户:可以在Linux系统中做任何事情,不受限制;

普通用户:只能在Linux系统中做有限的事情;

超级用户的命令提示符为" # ",普通用户的命令提示符为" $ "

Linux系统中,磁盘上的文件和目录组成一棵目录树,每个节点都是目录或文件,对于一棵多叉树,由叶子结点和非叶子结点所构成,非叶子结点一定为目录,叶子结点可能是普通文件,也可能是空目录;

绝对路径:从根目录( / )开始,定位指定文件所形成的路径( 唯一标识一个文件);

相对路径:相对于自身当前所处目录为参考点,定位一个文件的路径;

Linux常用指令简介

目录:目录是一种特殊的文件称作目录文件,目录的核心是其里面可以存放目录或普通文件,相当于windows系统下的文件夹;

文件: 除目录文件外的普通文件称为文件;

whoami指令

whoami  查看当前账号名称

[root@localhost /]# whoami
root

ls指令

  • 语法:ls 【选项】【目录或文件】
  • 功能:对于目录,该命令列出该目录下的所有子目录与文件;对于文件,将列出文件名及其他信息;
  • 常用选项:

                     -a 列出目录下所有文件,包括以 . 开头的隐藏文件;

                     -l  列出文件的详细信息;

                    -d  将目录像文件一样显示,而不是显示该目录下的文件;

ls后面不加任何选项,默认显示将当前目录下的所有文件 

[root@localhost class1]# ls
data.txt  Linux

 ls -a 显示当前目录下的所有文件,包括隐藏文件

[root@localhost class1]# ls -a
.  ..  data.txt  Linux

ls -l 列出文件的详细信息 

[root@localhost class1]# ls -l
total 0
-rw-r--r--. 1 root root  0 Dec  3 22:47 data.txt
drwxr-xr-x. 2 root root 22 Dec  3 23:07 Linux

 ls 后面直接接目录,会将目录中的内容展开再显示

[root@localhost /]# ls
bin  boot  class1  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@localhost /]# ls class1
data.txt  Linux

 ls -d 将目录像文件一样显示,并不展开该目录下的文件

[root@localhost /]# ls -d class1
class1

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

对文件操作的本质:

1.  对文件的内容操作          2. 对文件的属性操作

pwd指令

语法:pwd

功能:显示用户当前所在目录

[root@localhost Linux]# pwd
/class1/Linux

 cd指令

语法:cd 目录名

功能:改变工作目录,将当前工作目录改变到指定目录下;

为了以树状的形式查看文件需要以root 账号安装tree指令 :  yum install -y tree

tree指令

语法:tree 【选项】【目录】

功能:以树状结构列出指定目录下的所有内容,包括所有文件,子目录及子目录里的目录和文件;

常用选项:

              -a 显示所有文件,包括隐藏文件;

             -d   只显示目录

[root@localhost class1]# tree .
.
├── data.txt
└── Linux└── test.txt1 directory, 2 files

.  文件代表当前目录      .. 文件代表当前目录的上级目录

[root@localhost class1]# pwd
/class1
[root@localhost class1]# cd .
[root@localhost class1]# pwd
/class1
[root@localhost Linux]# pwd
/class1/Linux
[root@localhost Linux]# cd ..
[root@localhost class1]# pwd
/class1

cd ..  :返回当前目录的上级目录;

cd -   : 返回最近访问目录;

cd ~  : 进入用户的家目录;

普通用户的家目录为/home/xxx  root用户的家目录为/root

[root@localhost Linux]# pwd
/class1/Linux
[root@localhost Linux]# cd ~
[root@localhost ~]# pwd
/root
[zpl@localhost Linux]$ pwd
/class1/Linux
[zpl@localhost Linux]$ cd ~
[zpl@localhost ~]$ pwd
/home/zpl

 总结cd + 绝对路径/相对路径

touch指令

语法 :touch  【选项】【文件名】

功能: 创建一个不存在的文件;

 touch一个已经存在的文件会更新文件的时间信息,文件具有三种时间信息

  Access: 文件最后访问时间 ;

  Modify:  文件内容的最后修改时间;

  Change:  文件属性的最后修改时间;

mkdir指令

语法: mkdir 【选项】【目录名】

功能:在当前目录下创建一个目录

常用选项:

-p  嵌套创建多个目录,例如dir1/dir2/dir3;

rmdir指令与rm指令

rmdir指令

语法:rmdir 【选项】【目录名】

功能:只能在当前目录下删除空目录;

 常用选项:

-p 当子目录被删除后如果父目录也变成空目录,则将父目录一起删除;

rmdir 目录名称1 目录名称2 目录名称3  

同时删除多个空目录;

 rm(remove)指令

语法:rm 【选项】【文件名】

功能:删除文件或者目录

rm 文件名			# 删除文件(询问确认)

rm -f 文件名		    # 删除文件(不询问)

 

rm -r 目录	 # 删除目录(询问确认,删除目录时必须带选项-r,否则报错)

rm -rf 目录			# 删除目录(不询问,强行删除目录,包括其中的内容)

 通配符匹配任意数目的字符,可以是单个字符 多个字符或者没有字符;

rm -f a*			# 删除以 a 开头的文件
rm -f *.txt			# 删除以 txt 结尾的文件
rm -f a.txt b.txt	# 同时删除多个文件(空格间隔)
rm -f .文件名	    # 删除隐藏文件(明确给出隐藏文件的文件名)

 man指令

语法:man 【选项】【参数】

功能man命令是用来查看系统文档的工具,帮助找到和理解系统上的各种命令、函数和配置文件

常用选项:

     -a, --all   显示所有匹配的手册页而不是仅显示第一个匹配的手册页;

手册编号(man手册共8章,主要列出前三章):

      1:用户在shell环境可操作的命令或执行文件;

      2:系统内核可调用的函数与工具等;

      3:一些常用的函数(function)与函数库(library),主要为c的函数库;

总结:man+手册编号+查找的内容(手册编号可以忽略,忽略之后默认从1 号手册向下查找);

cp(copy)指令

同级目录下,不允许存在同名文件或者同名目录

nano是一款轻量级文本编辑器,适用于终端环境;

nano的基本操作如下:

  1. 打开文件:在终端中输入nano 文件名即可打开文件进行编辑;
  2. 保存文件:按下Ctrl + O,然后按下Enter即可保存文件;
  3. 退出Nano:按下Ctrl + X即可退出nano;

cat  filename

cat 的标准输出(即输出的默认目标)是屏幕,将会在屏幕上输出文件filename的内容;

语法:cp 【选项】【源文件】【目标文件】

功能:复制文件或者目录 ;

示例一:复制一个源文件到目标文件(夹)

命令格式为cp 源文件 目标文件夹

目标文件已经存在或目标文件夹中含有同名文件,则复制之后目标文件或目标文件夹中的同名文件会被覆盖;

示例二:同时复制多个文件到目标文件(夹)下

命令格式为:cp 源文件1 源文件2 目标文件夹cp 文件* 目标文件夹

第一种命令格式可以把列出来的多个文件一次性复制到目标文件夹下,每个文件直接用空格分隔;第二种命令格式使用了通配符*

 示例三:复制源文件夹到目标文件夹下

 命令格式为:cp -r 源文件夹 目标文件夹

 默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项

隐藏文件的拷贝,目录中的隐藏文件不会拷贝到目标路径下,由于每个目录都包含 . 当前目录文件和..上级目录文件,拷贝到目标路径,必然导致命名冲突

mv(move)指令

语法 : mv [ 选项 源文件或目录 目标文件或目录
功能 :
  1. mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中;
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名;
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中;
mv 源文件 目标文件

mv 源文件 目标目录

mv  源目录 目标目录(不存在)

mv 源目录 目标目录(存在)

cat指令

语法:cat [选项] [文件]

功能:查看目标文件的内容

cat filename #查看文件内容

cat -n filename  #查看文件内容并对所有输出行编号

cat -b filename    #查看文件内容并对非空输出行编号

指令本质为可执行程序,本质也为二进制文件或者脚本文件

安装的本质就是把对应的可执行程序拷贝到系统所能识别的路径下;

alias指令:

语法:alias 别名='命令'

功能:设置指令别名

注意:别名的作用范围只对当前的shell中有效,对子shell也没有无效,退出当前shell之后也无效;

echo指令

语法:echo [字符串/指令]

功能:将字符串输出到标准输出设备即显示器;

[zpl@VM-12-16-centos ~]$ echo "hello Linux"
hello Linux
[zpl@VM-12-16-centos ~]$ echo 'abc'
abc

重定向及重定向的类型与作用

重定向:就是将原本数据输出的默认位置修改输出到指定输出位置(如:文件中!)

echo指令默认向显示器打印(向显示器写入),加入 > 符号改变了打印方向,开始向文件内部写入即输出重定向;(显示器打印即为显示器写入,显示器读取操作为空,同理,键盘读取操作存在,但是写入操作为空),对于硬件设备,都可看做存在读方法和写方法,只不过有些方法为空;

  • 输出 / 追加重定向时,若有文件则直接访问,若无文件则创建文件再访问;
  • 输出 / 追加重定向可结合 echo 指令实现文件的内容写入;
  • 输出 / 追加重定向都是在执行写入操作;
  • 输入重定向可以结合 cat 指令实现文件内容的读取与打印(即:将本来应该从标准输入设备(键盘)中读取数据转向在文件中读取数据);

输出重定向每次会清空原始文件,再进行写入!

输出重定向可以实现两个功能 1. 新建文件夹  2. 清空目标文件 ;

追加重定向>>   向目标文件中不断在原始内容的基础上新增内容;

cat从键盘文件读取什么,则向显示器文件写入什么,当在如下场景,cat默认读取文件时,是从键盘文件输入的;

cat默认读取时,是从键盘文件中输入,当将键盘文件更换为其他文件(输入重定向>)

此时cat从其他文件内部(file.txt)读入,显示在显示器上;

less指令

语法:less [选项] [文件名]

功能:less是常用的文本文件阅读工具,适用于浏览大文件,加载文件时不会读取整个文件;

less file       #查看文件file的内容
less -m file    #查看文件file的内容并在屏幕底部显示已显示内容的百分比
less -N file    #查看文件file的内容并显示行号

less指令运行时,可执行如下操作:

向上(下)方向键,向上(下)滚动一行;

回车键 向下 滚动 一行
空格键向下 滚动 一页

G(大写) 移动到最后一行
g(小写)  移动到第一行
q 退出 less命令;

  •  /关键字: 向下搜索关键字
  • ?关键字:向上搜索关键字

示例:

输入less file.txt,回车,会看到 file.txt 文件的内容, 这个时候想用关键字搜索的话,有两种方式

  1.  从上往下搜索 :输入/关键字 ,如果想从第一行开始搜索,则先入 g ,定位到第一行,再输入 /关键字
  2.   从下往上搜索: 输入 ?关键字 ,如果想从文件最后一行向上搜索,则先输入G ,定位到最后一行,再输入 ?关键字;

注:默认搜索是区分大小写的,如果不区分大小写,要增加 -i 参数,即 less -i file.txt

head指令

语法:head [选项] [文件]

功能:显示文件开头至标准输出中,默认head命令显示其相应文件的前10行;

-n –lines=k

该选项用于指定要显示的行数,k为整数,例如:-n 20 表示显示文件的开头的前20 行;

-c –bytes=k

该选项用于指定要显示的字节数,k为整数,例如:-c 100 表示显示文件开头的前100 个字节;

head file.txt           #显示file.txt文件的前10行
head -n 5 file.txt      #显示文件的前5行
head -5 file.txt
head -c 100 file.txt    #显示file.txt文件的前100个字节

tail指令

语法:tail [选项] [文件]

功能:查看指定文件的后n行,不指定行数则默认打印后10行;

常用选项:

-n –lines=k

该选项用于指定要显示的行数,K 为整数。例如,-n 100 表示显示文件的最后 100 行;

若k前面加上一个正号 + ,则表示从文件开头数第k行开始显示;

例如:  -n +10 表示显示文件的第 10 行及其之后的所有内容;

若k前面加上一个负号 - ,则表示显示文件的除了最后 K 行以外的所有内容;

例如:  -n -20 表示显示文件除了最后 20 行以外的所有内容;

-c –bytes=k

该选项用于指定要显示的字节数,k为整数;

例如 : -c 1024 表示显示文件的最后 1024 个字节;

若k前面加上一个正号 + ,则表示从文件开头数第 K 个字节开始显示;

例如 :-c +1024 表示显示文件从第 1024 个字节开始的所有内容;

若k前面加上一个负号 - ,则表示显示文件的除了最后 K 个字节以外的所有内容;

例如 :-c -1024 表示显示文件除了最后 1024 个字节以外的所有内容;

tail -n 20 file.txt     #显示file.txt文件的最后20行
tail -20 file.txt
tail -n +10 file.txt    #从file.txt文件的第10行显示所有内容
tail -c 100 file.txt    #显示file.txt文件的最后100个字节

对于一个文件,如何提取文件的中间部分的数据?

head -N file.txt > temp.txt 将原文件file.txt中的前N行重定向到临时文件(新文件);

tail -k temp.txt 提取新文件temp.txt中的后k行,但是需要创建临时文件,更好的做法是利用命令行管道 | ,将head -N file.txt 的输出作为tail -k的输入,指令如下:

head -N file.txt | tail -k

find指令

语法:find [查找路径] [查找条件] [处理动作]

功能:find命令在Linux多叉树目录结构中按照指定诸如文件名,文件大小,文件属性查找   (注:find查找需要指定查找路径,find默认的处理动作为打印,将结果显示至标准输出);

find [查找路径] -name [文件名]  #按照指定路径查找指定文件名

which指令

语法:which [选项] [指令]

功能:用于查找指令所在路径的命令和确定一个可执行文件在系统中的位置;

whereis指令

语法:whereis [选项] [文件]

功能:whereis 指令主要用于定位可执行文件、源代码文件、帮助文件在文件系统中的位置;

grep指令

语法:grep [选项] [关键字] [文件名]

功能:grep是行文本过滤工具,按照指定的关键字,在指定的文件中,按行为单位,包含关键字的行整体被保留,不包含关键字的行整体被剔除,查找到将找到的行打印出来;

常用选项:

  • -i  忽略大小写的不同,将大小写视为相同;
  • -n 查找到输出行号;
  • -v 显示不包含关键字的所有行 ;

 

zip指令/ unzip指令

zip指令

语法:zip 压缩文件.zip 目录/文件

功能:将目录或文件压缩成zip格式;

常用选项

      -r :    递归处理,将指定目录下的所有文件和子目录一并处理;

unzip指令

语法:unzip 压缩文件.zip  选项  目录

功能:解压文件;

常用选项:

  1. 默认:默认解压到当前路径下
  2. -d:解压到指定路径
zip test2.zip test2/*     # 将test2目录压缩
unzip test2.zip -d /tmp   # 解压到tmp目录

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis缓存问题

在实际的业务场景中,Redis 一般和其他数据库搭配使用,用来减轻后端数据库的压力,比如和关系型数据库 MySQL 配合使用。 Redis 会把 MySQL 中经常被查询的数据缓存起来,比如热点数据,这样当用户来访问的时候&#xff0c…

12月8日Workshop预告|理解Sui上对象所有权转移

在本workshop中,我们将介绍一些Sui上对象所有权转移(transfer-to-object)功能的示例,并讨论这个新功能在构建Sui上新的抽象化概念时的用途。 我们将通过几个示例来演示transfer-to-object功能。此外,我们将介绍如何使…

时间序列预测 — GRU实现多变量多步光伏预测(Tensorflow)

目录 1 数据处理 1.1 数据集简介 1.2 导入库文件 1.3 数据集处理 1.4 训练数据构造 2 模型训练与预测 2.1 模型训练 2.2 模型多步预测 2.3 预测可视化 1 数据处理 1.1 数据集简介 实验数据集采用数据集7:常州普利司通光伏数据集(下载链接&…

动态规划学习——最长回文子序列,让字符串变成回文串的最小插入次数

一,最长回文串 1.题目 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 示例 1: 输入&…

搞程序权益系统v1.1

继1.0出来后我就把antdui换成elem 新增号卡功能现在只支持对接号氪系统 大家问我这个程序到底有什么用,我这边已经在写和WordPress对接文件,到时候在WordPress网站打开该程序就可以把订单同步到你的程序里面去,当然自己有集成能力也可以到小…

R语言学习

Part1阶段1:入门基础 1安装R和RStudio: 下载并安装R:https://cran.r-project.org/ 下载并安装RStudio:https://www.rstudio.com/products/rstudio/download/ 2Hello World: 学习如何在R中输出"Hello, World!"…

【智能家居】一、工厂模式实现继电器灯控制

用户手册对应的I/O 工厂模式实现继电器灯控制 代码段 controlDevice.h(设备设备)main.c(主函数)bathroomLight.c(浴室灯)bedroomLight.c(卧室灯)restaurantLight.c(餐厅…

mac电池最大充电限制工具 AlDente Pro中文 for Mac

Pro 版特有功能 热保护:在电池温度较高时为电池充电会导致电池老化更快。启用热保护后,当电池温度过高时,充电将自动停止。 航行模式:通常情况下,即使激活了最大电池充电,您的 MacBooks 电池也会始终稍微充…

Guava中的函数式编程

第1章:引言 大家好!今天小黑要和咱们聊聊,在Java中使用Guava来进行函数式编程。首先,让我们来聊聊什么是函数式编程。简单来说,函数式编程是一种编程范式,它将计算视为函数的评估,避免使用程序…

ChatGPT能帮助--掌握各种AI绘图工具,随意生成各类型性图像

2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

西南科技大学C++程序设计实验六( 继承与派生一)

一、实验目的 1. 理解不同继承属性对派生类访问基类成员的区别 2. 掌握单继承程序编写 二、实验任务 1、调试下列程序,并在对程序进行修改后再调试,指出调试中的出错原因(该题中A为基类,B为派生类,B以public方式继承A) 重点:理解不同继承方式数据的访问权限,派生类…

【力扣】——可获得的最大点数(滑动窗口)

几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoi…

HarmonyOS4.0从零开始的开发教程04 初识ArkTS开发语言(下)

HarmonyOS(二) 初识ArkTS开发语言(下)之TypeScript入门 声明式UI基本概念 应用界面是由一个个页面组成,ArkTS是由ArkUI框架提供,用于以声明式开发范式开发界面的语言。 声明式UI构建页面的过程&#xff…

gitLab 和Idea分支合并

以下二选1即可完成分支合并建议第一种简单有效 Idea合并方式 切换到被合并的分支,如我想把0701的内容合并到dev,切换到dev分支,然后再点击merge然后选择要合并的分支,即可,此时git上的代码没有更新只是把代码合到本地需要pull才…

Kafka使用指南

Kafka简介架构设计Kafka的架构设计关键概念Kafka的架构设计关键机制 Partition介绍Partition工作机制 应用场景ACK机制介绍ACK机制原理ACK机制对性能的影响ACK控制粒度Kafka分区数对集群性能影响调整分区优化集群性能拓展Kafka数据全局有序 Kafka简介 Kafka是由Apache软件基金…

【数据结构】动态规划(Dynamic Programming)

一.动态规划(DP)的定义: 求解决策过程(decision process)最优化的数学方法。 将多阶段决策过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。 二.动态规划的基本思想: …

【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)

文章目录 配置 Tomcat将 Tomcat 启动命令设置为 Linux 自定义服务给 Tomcat 设置管理员账号密码IDEA 打包 Java web 项目 我是使用 sdkman 下载的 jdk 和 tomcat,所以接下来的部署配置都是在 sdkman 构建的环境的。想要知道如何下载 sdkman 可以看看这篇文章 —…

【开源】基于Vue+SpringBoot的用户画像活动推荐系统

项目编号: S 061 ,文末获取源码。 \color{red}{项目编号:S061,文末获取源码。} 项目编号:S061,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 兴趣标签模块2.3 活…

Docker-多容器应用

一、概述 到目前为止,你一直在使用单个容器应用。但是,现在您将 MySQL 添加到 应用程序堆栈。经常会出现以下问题 - “MySQL将在哪里运行?将其安装在同一个 容器还是单独运行?一般来说,每个容器都应该做一件事&#x…

Vite4、Vue3、Axios 针对请求模块化封装搭配自动化导入(简单易用)

针对请求模块化封装搭配自动化导入(简单易用) 目标目录目标代码前提步入正题src / utils / index.jssrc /api / index.jssrc /api / request.jssrc /api / service.jssrc /api / utils.jssrc /api / modules / demo.js 自动化配置vite.config.jseslint 校…