超详细的Linux基础命令

2023-11-14

在这里插入图片描述

前言

前面我们知道了什么是 Linux,以及如何在 Windows 系统上通过 VMware 来搭建Linux 系统环境。知道了这些之后,我们便可以开始操作 Linux了,那么今天我将为大家分享Linux 的基础命令

Linux目录结构

在使用基础命令之前,我们首先要知道 Linux 的目录结构,因为它跟 Windows 系统还有 Mac 系统的目录结构是不同的。Windows 系统下可以有多个根目录,像我们的 C 盘和 D 盘,Windows 系统下不同层级的目录之间使用 \ 来分隔。
在这里插入图片描述

但是 Linux 系统只有一个根目录 / 。并且不同层级的目录使用 / 来分隔。

在这里插入图片描述
例如:bob 的绝对路径就是 /home/bob/

什么是绝对路径,什么是相对路径?

  • 绝对路径:以根目录为起点,描述路径的一种写法,路径描述以 / 开头
  • 相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以 / 开头

Linux命令通用格式

command [-options] [parameter]

  • command:命令本身(必须有)
  • -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
  • parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等

ls 命令

ls 命令的作用是列出当前工作目录下的内容。

ls [-a -l -h] [Linux文件路径]

  • -a 选项,表示所有,包含隐藏的文件
  • -l 选项,会将文件以列表的形式展开,也就是一行一行展示,并且会展示出文件的详细信息
  • -h 选项,需要搭配着 -l 选项使用,-h 选项会显示出文件大小的单位

这些选项都是可以搭配着使用的。

可以这样搭配 -a -l -l -h -a -l -h
也可以这样 -al -lh -alh 顺序可以不唯一。

什么是工作目录

Linux 的工作目录是指用户当前正在操作的目录。工作目录是Shell(命令行界面)或图形用户界面中当前打开的终端窗口运行命令时的默认目录。当您在终端中执行命令或在文件资源管理器中打开文件对话框时,系统将默认在工作目录中搜索文件或创建新文件。

当我们启动 Linux 命令行终端的时候,会默认加载到 HOME 目录。

什么是 HOME 目录

HOME目录是每个用户的默认主目录。HOME目录通常位于 /home/用户名/ 的位置,其中"用户名"是您在系统上的用户名。

HOME目录是每个用户在登录系统时默认进入的目录,也是用户存储其个人文件、配置文件和其他用户特定数据的地方。每个用户都有自己独立的HOME目录,各自之间互不干扰。

在HOME目录中,用户可以创建子目录来组织文件,存储个人文档、图像、音频和其他文件。除此之外,许多应用程序在HOME目录下保存用户的配置文件和个人设置,以便在不同会话中保持一致性。

在这里插入图片描述

ls

在这里插入图片描述

ls -a

在这里插入图片描述

ls -l

在这里插入图片描述

ls -lh

在这里插入图片描述

ls -l /boot

在这里插入图片描述

目录切换相关命令

  • cd 切换工作目录
  • pwd 展示当前的工作目录

cd 命令

使用 cd [Linux文件路径] 会将当前的工作目录转换为指定的目录,当cd不添加参数的时候表示会回到 HOME 目录。

cd /boot
ls -l
在这里插入图片描述
在这里插入图片描述

cd /
ls -l

在这里插入图片描述

在这里插入图片描述

pwd 命令

pwd 命令会将当前的工作目录给展示出来。

cd /
pwd
在这里插入图片描述

特殊的路径符

  • . 表示当前目录,cd ./Desktop 表示切换到当前目录下的Desktop 目录内,和 cd Desktop 效果一致
  • . . 表示上一级目录,比如:cd . . 即可切换到上一级目录,cd . ./. . 切换到上二级的目录
  • ~ 表示 HOME 目录,比如:cd ~ 即可切换到 HOME 目录或 cd ~/Desktop,切换到HOME内的Desktop目录

创建目录

使用 mkdir [-p] Linux路径 来创建目录。

  • 参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径都可
  • -p 选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

mkdir /home/handsome/test

在这里插入图片描述

注意:创建文件夹需要修改权限,需要确保操作均在 HOME目录内,不要在 HOME 外操作

在这里插入图片描述

使用选项 -p 我们可以一次创建多个层级的目录

mkdir -p /home/handsome/test1/123

在这里插入图片描述
在这里插入图片描述

文件操作相关命令

  • touch 创建文件
  • cat 查看文件内容
  • more 查看文件内容
  • cp 复制文件内容
  • mv 移动文件
  • rm 删除文件

touch 命令

使用 touch Linux文件路径 来创建文件。

touch /home/handsome/test/txt

在这里插入图片描述

cat 命令

使用 cat Linux文件路径 来查看指定文件内容。

我们先在文件中写入数据。

在这里插入图片描述

cat test.txt

在这里插入图片描述

more 命令

more 命令也是查看文件内容,但是它跟 cat 不同的是:当文件中内容较多时,cat 会一次将所有内容都给展示出来,而 more 则会一页一页的展示。more Linux文件路径

  • 在 more 一页一页展示数据的时候,使用空格进行翻页
  • q 退出查看

cat /boot/config-3.10.0-1160.el7.x86_64

在这里插入图片描述

more /boot/config-3.10.0-1160.el7.x86_64

在这里插入图片描述

cp 命令

使用 cp [-r] 参数1 参数2 来实现文件/文件夹的拷贝。

  • -r 选项表示复制文件夹
  • 参数1是被复制的文件的路径
  • 参数2是要复制到的文件路径

cp /home/handsome/test.txt test2.txt

在这里插入图片描述

cp -r /home/handsome/test1 test2

在这里插入图片描述

mv 命令

mv 参数1 参数2 来移动文件或者文件夹。

  • 参数1表示需要移动的文件/文件夹的路径
  • 参数2表示要移动到的路径

mv /home/handsome/test1 /home/handsome/Desktop

在这里插入图片描述

如果需要移动的文件/文件夹与要移动到的路径在一个层级的话,相当于把这个文件更改了名字。

mv /home/handsome/test2 test3

在这里插入图片描述

rm 命令

rm [-r -f] 参数1 参数2…… 用来删除一个或者一个以上的文件。

  • -r 选项 表示删除文件夹
  • -f 选项 表示强制删除
  • 参数1、2……表示需要删除的文件路径

在这里插入图片描述

rm -r /home/handsome/Desktop/test1

在这里插入图片描述

当我们以普通用户删除文件的时候,会让我们再次确认是否要删除。而如果我们使用 su - root 进入root管理员模式之后,使用 -f 删除的时候,就不会出现提示。

在这里插入图片描述

通配符

rm 命令支持通配符 * ,用来做模糊匹配

  • 符号 * 表示通配符,即匹配任意内容(包含空),示例:
  • test* ,表示匹配任何以 test 开头的内容
  • *test ,表示匹配任何以 test 结尾的内容
  • *test* ,表示匹配任何包含 test 的内容

在这里插入图片描述

rm /home/handsome/test*

在这里插入图片描述
在这里插入图片描述

查找命令

  • which 查找指令所在的位置
  • find 查找文件所在的路径

which 命令

Linux命令,他们的本体就是一个个的二进制可执行程序,和Windows系统中的.exe文件是一个意思
我们可以通过 which 命令 查看所使用的一系列命令的程序文件存放在哪里。

which cd
which pwd
在这里插入图片描述

find 命令

find 查找文件的方式分为两种:

  1. 按文件名查找
  2. 按文件的大小查找

按文件名查找文件

find 开始路径 -name 文件名 以文件名的形式查找文件。

find / -name test 全局查找

在这里插入图片描述

查找的时候也可以搭配着通配符来查找。

find / -name test*

在这里插入图片描述

按文件大小查找

find 起始路径 -size +|-n[kMG]

  • +、- 表示大于和小于
  • n表示大小数字
  • KNG 表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB

find / -size +50M
ls -lh /boot/initramfs-0-rescue-eab91e769bd847959b68004062e843d5.img

在这里插入图片描述

grep 、wc、管道符

  • grep 通过关键字过滤文件行
  • wc 统计数量
  • | 管道符

grep 命令

通过 grep [-n] 关键字 文件路径 来查找指定文件的带有关键字的行。

  • -n 选项表示显示出匹配的行的行号
  • 参数 关键字 表示过滤的关键字,如果有空格或者其他特殊符号建议使用 " " 包起来
  • 参数 文件路径 表示需要过滤的信息的文件,可作为内容输入端口

在这里插入图片描述

grep girl /home/handsome/test.txt

在这里插入图片描述

grep -n girl /home/handsome/test.txt

在这里插入图片描述

wc 命令

通过 wc [-c -m -l -w] 文件路径 来统计文件中的行数、单词数量等。

  • -c 选项,统计文件的字节bytes数
  • -m 选项,统计字符数量
  • -l 选项,统计行数
  • -w 选项,统计单词数量
  • 参数,文件路径,被统计的文件,可作为内容输入端口

wc -c /home/handsome/test.txt
wc -m /home/handsome/test.txt
wc -l /home/handsome/test.txt
wc -w /home/handsome/test.txt

在这里插入图片描述

| 管道符

管道符可以将管道符左边命令的结果作为右边命令的输入。前面我们的 grepwc 都有可以作为内容输入的端口。

cat /home/handsome/test.txt | grep man

在这里插入图片描述

find /home -name test.txt | wc -c

在这里插入图片描述

? 这里为什么会是24,而不是65呢?其实这里管道符前面的命令返回的是/home/handsome/test.txt 然后将这个结果作为 wc 的输入,所以他统计的是文件路径的字节数,而不是对应的路径文件内容的字节数。那么如果我们想要统计文件内容的字节数该怎么办呢?

我们需要使用 -exec 选项来执行指定的命令,将 test.txt 文件的内容传递给 cat 命令进行合并,再通过管道传递给 wc -c 命令进行字符数统计。

find /home -name test.txt -exec cat {} + | wc -c

在这里插入图片描述

echo、重定向符和tail

  • echo 输出后面的内容
  • tail 尾部
  • > >> 重定符

echo 命令

echo 输出的内容 echo可以将后面的输出内容给打印出来,类似于其他语言的 print 。

echo "i am a handsome man"

在这里插入图片描述

如果我们想要输出后面的命令的结果怎么办?可以直接echo吗?

echo pwd

在这里插入图片描述
这样是不可以的,那么该怎么办呢?我们需要使用反引号 ` ,反引号里的内容不会直接作为输出的内容,而是输出反引号内的命令的结果。

在这里插入图片描述

重定向符

  • > 将左侧命令的结果,覆盖写入到右侧指定的文件中
  • >> 将左侧命令的结果,追加到右侧指定的文件中

在这里插入图片描述
echo "abcde" > /home/handsome/test.txt

在这里插入图片描述

echo "handsome" >> /home/handsome/test.txt

在这里插入图片描述

tail 命令

tail [-f -num] Linux文件路径 查看文件尾部的内容。

  • -f 选项,表示持续跟踪
  • -num 选项,表示查看尾部的num行内容,默认是10行

cat /var/log/vmware-network.log

在这里插入图片描述

tail /var/log/vmware-network.log

在这里插入图片描述

tail -5 /var/log/vmware-network.log

在这里插入图片描述

什么叫持续跟踪:持续跟踪大概来讲就是当我们使用了 tail -f Linux文件路径 之后,如果我们在该文件中添加数据的话,控制台也会自动显示出我们添加的数据。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

超详细的Linux基础命令 的相关文章

  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Linux 上的静态 Qt5 构建:部署时如何处理字体?

    我使用这些配置选项创建了 Qt 5 2 0 库的静态版本 Ubuntu 12 04 开源 确认许可 force pkg config 发布 静止的 前缀 home juzzlin qt5 无icu opengl桌面 无油嘴滑舌 辅助功能 n
  • 如何阻止ubuntu在使用apt安装或更新软件包时弹出“Daemons using outdatedlibraries”? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我最近新安装了 Ubuntu 22 04 LTS 我发现每次使用 apt 安装或更新软件包时 它都会询问我有关Which servic
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 使用 shell 脚本将行附加到 /etc/hosts 文件

    我有一个新的 Ubuntu 12 04 VPS 我正在尝试编写一个安装脚本来完成整个 LAMP 安装 我遇到问题的地方是在 etc hosts文件 我当前的主机文件如下所示 127 0 0 1 localhost Venus The fol
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • Linux/POSIX:为什么 fork() 不分叉*所有*线程

    众所周知 POSIX下创建新进程的默认方式是使用fork 在 Linux 下 这在内部映射到clone 我想知道的是 众所周知 当一个人打电话时fork 子进程是用单个线程创建的 调用的线程fork cf https linux die n
  • cdc_acm:无法设置 dtr/rts - 无法与 USB cdc 设备通信

    我试图使用 pic24fj128gb206 枚举 usb cdc 设备 设备似乎已正确枚举 但是当我将设备连接到 Linux PC 时 我从内核收到以下警告消息 cdc acm 1 8 1 6 7 1 0 failed to set dtr
  • 如何在 Mac OSX Mavericks 中正确运行字符串工具?

    如何在 Mac OSX Mavericks 中正确运行字符串工具 我尝试按照我在网上找到的示例来运行它 strings a UserParser class 但我收到此错误 错误 Applications Xcode app Content
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • Opencv4基于C++的 实时人脸监测

    文章目录 一 环境配置搭建 VS2015 Opencv4 6 二 下资源文件 第一种 本地生成 第二种 直接下载 三 代码展示 窗口布局 main cpp test h test cpp 效果图 opencv人脸识别效果图 请叫我真爱粉 一
  • 二进制部署高可用k8s集群

    一 前置知识点 1 1 环境准备 服务器要求 建议最小硬件配置 2核CPU 2G内存 30G硬盘 软件环境 软件 版本 操作系统 CentOS7 x x64 容器引擎 Docker CE 19 Kubernetes Kubernetes v
  • lambda

    外部变量访问方式说明符 不捕获任何变量 以引用方式捕获所有变量 用值的方式捕获所有变量 可能被编译器优化为const foo 以引用捕获foo 但其余变量都靠值捕获 foo 以值捕获foo 但其余变量都靠引用捕获 bar 以值方式捕获bar
  • 查看虚拟机CentOS7 的 IP 地址

    在CentOS7中我们不能输入ifconfig命令查看 而是要输入ip addr命令查看 此命令会出现3个条目 centos的ip地址是ens33条目中的inet值 发现 ens33 没有 inet 这个属性 那么就没法通过IP地址连接虚拟
  • Android 获取电池容量 mAh

    1 Java 反射获取电池容量 目前手机出厂下配置电池容量主要是通过修改 power profile xml 的电池容量参数 一般Google 默认配置为 1000 mAh 故只要是出货的手机一般都需要修改该值 我们可以直接导出 frame
  • 名人问题 (Celebrity problem)

    问题 在一个房间里有 N 个人 其中一个是名人 所谓名人就是大家都认识他 但是他不认识任何人 其它人可能认识房间里面另外的一部分人 你可以问任何人问题 但是问题只能是 你认识 X 吗 对方回答 Yes or No 请问最少要问多少个问题才能
  • MySQL 视图(view)

    目录 视图 概念 基本使用 视图规则和限制 视图 view 概念 视图是一个虚拟表 其内容由查询定义 同真实的表一样 视图包含一系列带有名称的列和行数据 视图的数据变化会影响到基表 基表的数据变化也会影响到视图 基本使用 创建视图 crea
  • Pytest系列 - fixture的详细使用

    前言 前面一篇讲了setup teardown可以实现在执行用例前或结束后加入一些操作 但这种都是针对整个脚本全局生效的 如果有以下场景 用例 1 需要先登录 用例 2 不需要登录 用例 3 需要先登录 很显然无法用 setup 和 tea
  • 高德地图开放平台——行政区划分DistrictSearch 准确定位区域,指定某一城市的行政区

    当搜索宝山区时 会定位到赤峰市的元宝山区 然而想要的是上海市宝山区 解决办法 利用AMap PlaceSearch获得行政区号adcode 用adcode来搜索对应的区域 这里利用了AMap PlaceSearch支持模糊搜索的功能 且AM
  • RPC框架详解

    第一部分 RPC框架 1 Socket回顾与I 0模型 1 1 Socket网络编程回顾 Socket 套接字就是两台主机之间逻辑连接的端点 TCP IP协议是传输层协议 主要解决数据如何在网络中传输 而HTTP是应用层协议 主要解决如何包
  • 20个常用模拟电路(详细分析)

    一 桥式整流电路 1二极管的单向导电性 二极管的PN结加正向电压 处于导通状态 加反向电压 处于截止状态 伏安特性曲线 理想开关模型和恒压降模型 理想模型指的是在二极管正向偏置时 其管压降为0 而当其反向偏置时 认为它的电阻为无穷大 电流为
  • 渗透测试工具之Layer子域名挖掘机

    目录 前言 1 Layer介绍 2 子域名介绍 3 挖掘子域名的作用 4 下载地址 5 工具使用 前言 每篇一句话 困难像弹簧 你强它就弱 你弱它就强 这里是小葵花的学习之路 博客主页 小葵花学堂 文章为个人笔记 若其中如有内容不规范或讲解
  • Python 代码规范

    前言 Python 学习之旅 先来看看 Python 的代码规范 让自己先有个意识 而且在往后的学习中慢慢养成习惯 目录 Python代码规范 一 简明概述 1 编码 如无特殊情况 文件一律使用 UTF 8 编码 如无特殊情况 文件头部必须
  • vs+qt程序添加cmd窗口

    概述 在项目开发过程中为方便查看一些调试信息 可以在运行时把命令行窗口同时显示出来 操作说明 项目右键选择属性 项目 属性 配置属性 链接器 系统 子系统 下拉选项中选择控制台 当不需要打 cmd 的时候设置子系统为窗口 SUBSYSTEM
  • EasyAR4.0稀疏空间地图室内导航

    现有的AR室内导航 一种方案是利用运动跟踪实现 但是偏移较大 比较靠谱或者说能满足商业使用的还是稀疏空间地图 ARCore管叫云锚点 实现效果如下 EasyAR稀疏云地图室内导航 制作思路其实很简单 先建立空间地图 然后利用平面图像追踪在空
  • PPTP 理解以及报文的分析

    首先 先来理解下什么是 PPTP PPTP将PPP Point to Point Protocol 帧封装进IP数据报中 通过IP网络如Internet或其他企业专用Intranet等发送 PPTP通过PPTP控制连接来创建 维护 终止一条
  • Dialog显示报错:Unable to add window -- token null is not valid; is your activity running?

    很平常的显示一个dialog 出现了如上报错 网上很多都说解决方案 但是没有说原理过程 简单的说下 在显示dialog时出现 是应用没有token所导致 而应用的token一般只有Activity拥有 所以需要用Activity作为cont
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • C语言,使用函数封装,实现单词的逆置 “hello my student” 最终结果是”student my hello”

    实现单词的逆置 hello my student 最终结果是 student my hello 在该函数 void StrFun char str 循环字符串的 在该函数 void StrRev char str 主要是实现逆置的 incl
  • 超详细的Linux基础命令

    文章目录 前言 Linux目录结构 Linux命令通用格式 ls 命令 什么是工作目录 什么是 HOME 目录 目录切换相关命令 cd 命令 pwd 命令 特殊的路径符 创建目录 文件操作相关命令 touch 命令 cat 命令 more