Linux(1. 基本操作_命令)

news2024/12/25 17:57:02

         

目录

                                    

关于超级用户root:

root用户可以做什么?

避免灾难:

格式约定:

浏览硬盘:

命令行补全和通配符:

 命令行补全:

 

通配符:

常用基本命令:

查看目录和文件:

列出目录内容:ls命令

​编辑

改变目录:cd命令

显示当前目录:pwd命令

列出目录内容:dir 和 vdir 命令:

查看文本文件:cat和more 命令

显示文件开头和结尾:head和tail命令

更好地阅读文本:less 命令

查找文件内容:grep 命令

文件在哪里:find 命令

 定位文件:locate 命令

查找特定程序:whereis 命令

查看用户及版本信息:

who:

whoami:

uname:

寻求帮助:man 命令

获取命令简介:whatis 和 apropos 命令

whatis:

apropos:

小结:


                           

关于超级用户root:

从字面意思来讲root就是“根”的意思,所有系统设置都需要用root用户来完成。所以超级用户也叫做根用户,这就相当与Windouws中的Administrator用户。

root用户可以做什么?

答案是任何事情,root用户是整个系统中拥有最高权限的用户可以对系统做任何事情。可以访问,修改,删除系统中的任何文件和目录。

另外,下面的这些受限权限一般来说只有root用户能够执行。

  • 添加或删除用户
  • 安装软件
  • 添加或删除设备
  • 启动和停止网络服务
  • 某些系统调用(如对内核的申请)
  • 关闭系统

避免灾难:

如上述提到的,root用户可以在系统中做任何事情,那么保证安全性就很重要。系统不会因为用户输入的命令足够愚蠢就不执行反而会乐滋滋地执行然后把自己完完整整地删除。

rm -rf   // 删除根目录下的所有文件和目录

另外,一个安全可靠的root口令来保证安全也是很有必要的。

和普通用户一样,root账号可以用来直接登录系统,但由于任何一个误操作都有可能导致灾难性的后果显然是很糟糕的。

那么就应该在必要时才使用root账号,于是Linux提供了这样一个特性:用户可以使用不带参数的su命令将自己提升为root权限(当然需要口令),最后也可以用exit回到先前的用户状态。

另一个是sudo,可以让我们临时使用root身份运行一个程序并在执行完成后退回普通用户,后面还会讲。

(sudo的全称是super user do意思是超级用户去做)

格式约定:

Linux命令行界面有一个输入行用于输入命令,命令行以一个美元符“$”作为提示符表示用户可以输入命令了。

如果为普通用户标识符为“$”,如果是root身份那么标识符变为“#”。

浏览硬盘:

首先,进入根目录

cd /           进入根目录
ls             列出目录和文件

这样就可以现实根目录下的目录和文件。

同时我们也可以在根目录下输入tree详细列出目录,但是由于可能比较多会刷很久,如果先要中途停止可以按Ctrl+C来停止。

 同时我们也可以通过不带参数(或者带~)的cd命令进入用户主目录

命令行补全和通配符:

 命令行补全:

当输入文件名之类较长的名字时,我们可以使用命令行补全,输入前几个字符时按下Tab键可以自动将文件名补全。

例如在上面这种情况下按下Tab的效果为:

当以输入的字符开头的文件不止一个,可以按两下Tab键,Shell会以列表的形式给出所有以输入字符开头的文件。

例如在上面这种情况下按两下Tab的效果为:

 

通配符:

通配符是  *    ?   [ ]

*(星号)

匹配零个或多个字符。

例如:

*.txt 匹配所有以 .txt 结尾的文件,如 file1.txt、document.txt。
data* 匹配所有以 data 开头的文件,如 data1、data_file。

?(问号)

匹配单个字符。

例如:

file?.txt 匹配 file1.txt、fileA.txt,但不匹配 file10.txt。
?.log 匹配 a.log、b.log,但不匹配 abc.log。

[](方括号)

匹配方括号内的任意单个字符。

例如:

file[1-3].txt 匹配 file1.txt、file2.txt、file3.txt。
data[abc].csv 匹配 dataa.csv、datab.csv、datac.csv。

 这些通配符在命令行中非常有用,尤其是在使用如 lscprm 等命令时,可以方便地选择多个文件

常用基本命令:

查看目录和文件:

列出目录内容:ls命令

ls命令是list的简化形式,选项非常的这里只介绍常用的选项。基本语法如下:

  • 不带任何参数的Is 命令用于列出当前目录下的所有文件和子目录。例如:

在这个列表中,可以方便地区分目录和文件。默认情况下,目录显示为蓝色;普通文件显示为黑色;可执行文件显示为草绿色;淡蓝色则表示这个文件是一个链接文件(相当于 Windows 中的快捷方式)。

  • 用户也可以使用带-F选项的ls命令:

可以看到,F选项会在每个目录后加上“/”,在可执行文件后加“*”,在链接文件后加上“@”。这个选项在某些无法显示颜色的终端上比较有用。

  • 隐含文件:

以上文件就是主目录下的所有文件了吗?可以使用-a选项一探究竟。

可以看到很多头部带“.”的文件名。在Linux中,这些文件称作隐含文件,在默认情况下并不会显示。除非指定使用-a 选项显示所有文件

  • 命令组合使用:

命令的选项可以组合使用,如果要指定多个选项,只需要使用一个短横线,无须给每个选项都加一个短横线。例如:

  • l 选项:

这个选项可以用来查看文件的各种属性。例如:

 上面共有8个信息栏,从左至右依次表示:

  1. 文件的权限标志(后面会详细介绍)。
  2. 文件的链接个数(后面会详细介绍)。
  3. 文件所有者的用户名。
  4. 该用户所在的用户组组名(所有者和用户组的概念后面写)。
  5. 文件的大小。
  6. 文件最后一次被修改时的日期。
  7. 文件最后一次被修改时的时间。
  8. 文件名。

在Is 命令后跟路径名可以查看该子目录中的内容。例如:

改变目录:cd命令

 cd命令用于Linux文件直通的不同部分之间切换,输入cd命令,后面跟踪一个路径名作为参数就可以直接进入另一个子目录。其中cd后面以两个点(.)作为参数代表会到上级目录。

显示当前目录:pwd命令

pwd命令会显示当前所在位置也就是工作目录,例如:

列出目录内容:dir 和 vdir 命令:

Windows用户可能比较熟悉dir这个命令。Linux中也有dir命令,但是功能比Is命令少一些。

 vdir命令相当于为1s命令加上小选项,可以默认情况下列出目永和文件的完整信息。

查看文本文件:cat和more 命令

cat命令:

cat 命令用于查看文件的内容(通常这是一个文本文件...),后跟文件名作为参数。例如

 cat 命令后面可以跟多个文件名作为参数,当然也可以使用通配符。例如:

为了调试方便,常常需要显示代码行号。为此,cat 命令提供了-n 选项,可以在每一行代码前显示代码行号。

more命令:

cat命令会一次性将所有内容全部显示在屏幕上,这看起来是个“缺陷”。因为对一个长达几页其至几十页的文件而言,cat 命令显得毫无用处。为此,Linux 提供了more命令逐页地显示文件内容

例如,以下是对一个含有一千行hello的txt文件使用more命令展示:

可以看到,more 命令会在最后显示一个百分比,表示已显示的内容占整个文件的比例,按空格键就可以向下翻动一页,按Enter键可以向下滚动一行,按Q键可以退出。

显示文件开头和结尾:head和tail命令

head 和 tail分别用于显示文件的开头和结尾。可-n 参数指定显示的行数。

注意,head 命令的默认输出包括文件名(放在==>和<==之间。tail命令的用法和head命令相同。

更好地阅读文本:less 命令

less 命令和 more 命令很相似,但less 命令的功能更强。

less 命令改进了 more 命令的很多细节,并添加了许多特性。总体来说,less 命令提供了下面这些增强功能。

  • 使用方向键(键盘上的上、下、左、右键)在文本文件中前后或左右滚屏。
  • 用行号或百分比作为书签来浏览文件。
  • 实现复杂的检索、高亮显示等操作。
  • 兼容常用的字处理程序(如Emacs 和 Vim)的键盘操作。
  • 阅读到文件结束时less 命令不会退出。
  • 屏幕底部的信息提示更容易控制使用,而且提供了更多的信息。

下面简单地介绍 less 命令的使用方法,以一千行hello文本为例。

可以看到,使用less 命令时会在屏幕底部显示一个冒号“ : ”等待用户输入命令。

如果想向下翻一页,可以按空格键。如果想向上翻一页,按B键。也可以用方向键向前后或者左右移动。
如果要在文件中搜索某一个字符串,可以使用正斜线“/”后面跟想要查找的内容,less 命令会把找到的第一个搜索目标高亮显示。要继续查找相同的内容,只要再次输入正斜线“”并按Enter键就可以了。

以下为输入 /666结果

使用带参数M 的less命令可以显示更多的文件信息,例加下而的输出。

可以看到,less 命令在输出信息的底部显示了这个文件的名称、当前页码、总的页网。以及表示当前位置在整个文件中的位置的百分比数值。最后按Q 键可以退出 less 命令并近回 Shell 提示符。

查找文件内容:grep 命令

有的时候用户不需要列出文件的全部内容,用户只是能我到包含某些信息的那一行内容。在这个时候使用more命令一行一行去会很麻烦,特别是当文件特别大时。

为了在文件中寻找某些信息,可以使用grep 命令(grep也可以指定多个文件索引)。

例如:

如果要查找含有空格的关键词,那么必须在关键词的两边加单引号,以便把空格包含进去

例如:

 

文件在哪里:find 命令

find 能够迅速在指定范围内查找到文件。find 命令的基本语法如下:

find [option] [path...] [expression]

 例如,希望在/usr/bin/目录中查找zip 命令

可以看到,find 命令需要一个路径名作为查找范围,在这里是/usr/bin/。find 命令会深入这个路径的每一个子目录中去寻找,因此,如果指定“/”,就是查找整个文件系统。

-name选项指定了文件名,在这里是zip。可以使用通配符来指定文件名,如“find  ~  -name  *.c-print”将会列出用户主目录下所有的C程序文件。

-print 表示将结果输出到标准输出(在这里也就是屏幕)。注意,find命令会输出文件的绝对路径。


find 命令还能够指定文件的类型。在Linux 中,目录和设备都以文件的形式表现,可以使用 find 命令的-type 选项来定位特殊的文件类型。例如,在/etc/目录中查找名称为 init.d 的目录:

 find命令的-type选项可供使用的参数:

参数含义
                b块设备文件
                c字符设备文件
                d目录文件
                f普通文件
                p命名管道
                l符号链接

还可以通过指定时间来指导 find 命令查找文件。-atime n 命令用来查找在几天前最后一次使用的文件,-mtime n则用来查找在n天前最后一次修改的文件。但是在实际使用过程中,很少能准确确定n的大小。在这种情况下,可以用+n表示大于n,用-n 表示小于n。例如,在/usr/bin/中查找最近 100天内没有使用过的命令(也就是在 100 天或 100 天以前最后一次使用的命令)。

 类似地,下面的命令用于查找在~目录中,最近一天内修改过的文件

 定位文件:locate 命令

对于大批量的搜索而言find还是显慢了一些,特别是当用户完全不记得自己的文件放在哪里时,就需要使用locate 命令

locate的搜索结果几乎是一瞬间就出现了

(事实上,locate 命令并没有进入子目录进行搜索,它类似于 Google的桌面搜索,通过检索文件名数据库来确定文件的位置。locate 命令会自动建立整个文件名数据库,不需要用户插手。如果希望立刻生成该数据库文件的最新版本,那么可以使用 uplaredb 命令。运行 updatedb 命令需要有 root权限,更新整个数据库大概耗时 1min。)

查找特定程序:whereis 命令

whereis 命令主要用于查找程序文件,并提供这个文件的二进制可执行文件、源代码文件和使用手册页存放的位置。例如,查找find命令:

 

可以使用 -b 选项让 whereis命令只查找这个程序的二进制可执行文件。

 如果whereis 命令无法找到文件,那么将返回一个空字符串。

查看用户及版本信息:

who:

who 命令可以查看当前系统中的登录用户及他们都工作在哪个控制台上。

whoami:

有时用户可能会忘记自己是以什么身份登录系统的,这种情况下使用 whoami 命令它会回答“我是谁”这个问题。

uname:

另一个常用的命令是uname,其用于显示当前系统的版本信息。

带-a选项的uname 命令会给出当前操作系统的所有有用信息。

大部分时候只需要知道内核版本信息,此时可以使用-r选项。

`

寻求帮助:man 命令

在 Linux 中获取帮助是一件非常容易的事情。Linux 几乎为每个命令和系统调用都翁写了帮助手册。使用man 命令可以方便地获取某个命令的帮助信息。(输入q 退出)

man find 

 man 命令在显示手册页时实际调用的是less 命令。可以通过方向键或K键(向上)、J 键(向下)上下翻动。空格键用于向下翻动一页。按 q 键退出手册页面。man 命令手册一般被分为9节,各部分的内容如下所示。

目录内容
/usr/share/man/man1普通命令和应用程序
/usr/share/man/man2系统调用
/usr/share/man/man3库调用,主要是libc()函数的使用文档
/usr/share/man/man4设备驱动和网络协议
/usr/share/man/man5文件的详细格式信息
/usr/share/man/man6游戏
/usr/share/man/man7文档使用说明
/usr/share/man/man8系统管理命令
/usr/share/man/man9内核源代码或模块的技术指标

获取命令简介:whatis 和 apropos 命令

whatis:

 man 手册可以说是“长篇大论了”,用户只想要知道某个命令大概可以做哪些事,此时可以使用 whatis 命令。

whatis 命令可以从手册页中抽出一行简单的介绍性文字,帮助用户了解这个程序的大致用途。whatis 命令的原理同 locate 命令基本一致。

apropos:

apropos与 whatis 命令相反的,可以通过使用手册反查到某个命令。

举例来说,如果用户想要搜索一个文件而又想不起来应该使用哪个命令的时候,可以这样求助于 apropos:

可以看到,apropos 将命令简介(其实就是whatis 命令的输出信息)中包含 search的条目一并列出,用户可以从中找到自己想要的答案。

小结:

  1. 命令行是Linux的精华部分,所有的系统管理操作都可以在 Shell 下完成。口 有多种不同的 Shell 可供使用。目前 Linux中使用最广泛的是BASH。
  2. 可以使用命令行补全和通配符提高使用 Shell的效率。口 pwd命令用于显示当前的目录信息。
  3. cd命令用于在目录间切换,这是Linux 中使用最频繁的命令。口 Is 命令提供了大量选项供用户查看目录内容。
  4. dir和vdir 命令是Is命令的“袖珍”版本。
  5. 使用cat命令可以查看文本文件。more 命令可以分页显示一个较长的文本文件。口 使用 head和tail命令可以显示一个文件的开头和结尾。
  6. less 命令提供了查看文件的更高级功能。man 命令就是通过调用 less 命令显示帮助手册信息的。
  7. grep 命令是查找文件内容的利器,更高级的使用方法参见第20章。口 find 命令可以按需查找某个特定的文件(包括目录)。
  8. locate 命令通过事先建立数据库提高搜索文件的速度。
  9. 直接输入程序名称可以从终端运行程序。可以选择在后台执行程序,从而使当前Shell继续接受命令输入。
  10. whereis 命令可以查找某个特定程序所在的位置。
  11. 通过 who 命令可以查看当前有哪些登录用户。
  12. uname 命令用于显示当前系统的版本信息。
  13. Linux 提供了详细的帮助手册,可以通过 man 命令查看,这些手册通常被分为 9节,包含特定的主题。
  14. whatis 和 apropos 命令能够从 man 命令手册中提取简要的信息。

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

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

相关文章

使用SpringMVC搭建WEB项目时报错404的问题排查解决以及web.xml配置文件init-param行标红问题

一、使用SpringMVC搭建WEB项目时报错404的问题排查解决 很早前&#xff08;4年前&#xff09;就把这个搭建过&#xff0c;但今天运行的时候就是报404错误&#xff0c;见文章&#xff1a; JAVA开发中SpringMVC框架的使用及常见的404问题原因以及SpringMVC框架基于注解的开发实例…

Unity3d折叠Inspector中的变量

InspectorFoldoutGroup插件 [Pixeye.Unity.Foldout("【曲线图】")] public BrokenLineUpDownGraph aimStabilityGraph;[Pixeye.Unity.Foldout("【曲线图】")] public BrokenLineUpGraph aimDensityGraph;[Pixeye.Unity.Foldout("【曲线图】")] p…

libssh2编译部署详解

libssh2编译部署详解 一、准备工作二、编译libssh2方法一:使用Autotools构建方法二:使用CMake构建三、验证安装四、使用libssh2五、结论libssh2是一个用于实现SSH2协议的开源库,它支持建立安全的远程连接、传输文件等操作。本文将详细介绍如何在Linux系统下编译和部署libssh…

AI+视频监控:EasyCVR安防平台赋能火电制造行业的视频智能管理方案

随着信息技术的飞速发展和智能制造的深入推进&#xff0c;火电制造行业作为国民经济的重要组成部分&#xff0c;正面临着智能化转型的迫切需求。为了提升生产效率、保障设备安全、优化管理流程&#xff0c;火电制造企业迫切需要引入先进的视频监控与人工智能技术。EasyCVR安防监…

【Canvas与标牌】立入禁止标牌

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>立入禁止Draft1</title><style type"text/css"&g…

计算机网络(以Linux讲解)

计算机网络 网络协议初识协议分层OSI七层模型TCP/IP五层模型--初识 网络中的地址管理IP地址MAC地址 网络传输基本流程网络编程套接字预备知识网络字节序socket编程UDP socketTCP socket地址转换函数Jsoncpp 进程间关系与守护进程进程组会话控制终端作业控制守护进程 网络命令TC…

MES系列-工单管理

MES系列-工单管理 MES系列文章目录 ISA-95制造业中企业和控制系统的集成的国际标准-(1) ISA-95制造业中企业和控制系统的集成的国际标准-(2) ISA-95制造业中企业和控制系统的集成的国际标准-(3) ISA-95制造业中企业和控制系统的集成的国际标准-(4) ISA-95制造业中企业和控制系…

【STM32单片机_(HAL库)】6-1【串口通信UART、USART】通信基础

并行通信和串行通信 全双工、半双工、单工通信 单工通信&#xff1a;数据只能沿一个方向传输 半双工通信&#xff1a;数据可以沿两个方向传输&#xff0c;但需要分时进行 全双工通信&#xff1a;数据可以同时进行双向传输同步通信与异步通信 同步通信&#xff1a; 异步通信 …

『网络游戏』摄像机跟随【31】客

创建脚本文件夹 创建脚本 编写代码&#xff1a;CameraCtrl.cs using UnityEngine; public class CameraCtrl : MonoBehaviour{float dis;float height;float speed;Transform target;Vector3 targetPos;void Awake(){Screen.SetResolution(2304, 1296, FullScreenMode.Windowe…

24/10/12算法笔记 VGG

VGG特点&#xff1a; 1.深度&#xff1a;非常深 2.卷积核采用3*3&#xff0c;使得网络能够捕捉到更细粒度的图像特征 3.全连接层&#xff1a;使用全连接层来分类 4.使用ReLU激活函数&#xff0c;有助于缓解梯度消失 5.在卷积层和池化层后&#xff0c;使用局部归一化&#…

自动驾驶系列—自动驾驶整体开放平台:如何加速无人驾驶技术的落地?

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

AI金融攻防赛:金融场景凭证篡改检测(DataWhale组队学习)

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月学习赛的AI金融攻防赛学习总结文档。本文主要讲解如何解决 金融场景凭证篡改检测的核心问题&#xff0c;以及解决思路和代码实现过程。希望…

vue3学习:数字时钟遇到的两个问题

在前端开发学习中&#xff0c;用JavaScript脚本写个数字时钟是很常见的案例&#xff0c;也没什么难度。今天有时间&#xff0c;于是就用Vue的方式来实现这个功能。原本以为是件非常容易的事&#xff0c;没想到却卡在两个问题上&#xff0c;一个问题通过别人的博文已经找到答案&…

JavaSE——集合4:LinkedList、ArrayList与LinkedList的选择

目录 一、LinkedList的全面说明 二、LinkedList的底层操作机制 (一)LinkedList添加结点源码 (二)LinkedList删除结点源码 三、LinkedList常用方法 四、ArrayList与LinkedList的选择 一、LinkedList的全面说明 LinkedList底层实现了双向链表和双端队列的特点可以添加任意…

设计模式之-策略模式配合枚举

1、定义枚举接收不同的参数使用不同的handler, 2、定义个handerl接口&#xff0c;统一方法处理&#xff0c;每个handler实现该接口 public interface IMethodHandler<T, R> {/*** 处理统一入口** param req*/R process(T req); } java3、定义一个简单工厂统一处理 Comp…

Centos7内核升级

案例分析Centos7内核升级 1. 规划节点 节点规划&#xff0c;见表1。 IP主机名节点10.24.2.5k8s-master-node1master节点、仓库节点 表1 节点规划 2. 基础准备 &#xff08;1&#xff09;删除官方yum源 [rootk8s-worker-node1 ~]# rm -rf /etc/yum.repos.d/*&#xff08;…

Redhat的yum源出错——如何将yum源换成阿里云Centos源

文章目录 引言1. 查看和删除已安装的yum包2. 查看系统的版本号3. 镜像文件下载4. 镜像文件安装5. 下载和安装repo文件6. 配置repo文件7. 更新软件包缓存8. 验证9. 问题问题1 参考文献 Linux RedHat更换阿里云yum源 Redhat8.0 yum install问题解决 阿里云镜像 引言 为什么redha…

有关vue路由的学习

导言 由于很久没碰前端了&#xff0c;碰到路由都不太会了。趁着后端对接来记录一下&#xff0c;就当复习。不过由于个人能力有限&#xff0c;这篇会偏向整个过程的实现逻辑&#xff0c;其中有很多具体的方法不会给来&#xff0c;有兴趣的可以去看一下源码~ 目的&#xff1a; …

智能驾驶|迈向智能出行未来,AI如何应用在自动驾驶?

自动驾驶通过人工智能&#xff08;AI&#xff09;、机器学习、传感器融合和实时数据处理&#xff0c;使车辆能够在无需人类干预的情况下自主驾驶。随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;与智能汽车的结合正在成为现代交通运输领域的热潮。无人驾驶…

数学建模算法与应用 第14章 综合评价与决策方法

目录 14.1 层次分析法&#xff08;AHP&#xff09; Matlab代码示例&#xff1a;层次分析法权重计算 14.2 模糊综合评价法 Matlab代码示例&#xff1a;模糊综合评价法 14.3 灰色关联分析法 Matlab代码示例&#xff1a;灰色关联分析 14.4 主成分分析法&#xff08;PCA&…