Linux01 一 Shell与命令执行

2023-11-09

  Shell 是在操作系统内核的基础上编写的程序,也是一种脚本语言。Shell 为用户提供了操作界面,让用户高效安全地访问 Linux 内核。


执行命令

command [-options] parameter1 parameter2

  • command : 命令的名称,如 ls, cd
  • -options : 可选项,通常选项前会带 - 号,如 -h 。有时候使用选项的完整名,则选项前带 --,如 --help
  • parameter1 parameter2 : 依附在选项后的参数,或 command 的参数
  • 命令,选项,参数间以空格区分,按下回车会执行命令。如果命令太长,可以在回车前输入 \ 转义回车键
  • Linux 系统中英文字母的大小写存在区别,如 cdCD 并不相同

基础命令的执行

date

  在命令行模式输入 date 可以知道目前Linux系统的时间,还可以添加参数如[+%Y%m%d] 对时间进行格式化输出。

在这里插入图片描述

cal

  显示当前月份的日历。cal 也可以显示任意一个月或一整年的日历,可以按 cal [month] [year] 输入命令。

在这里插入图片描述

bc

  计算程序,可以进行简单的数学运算。退出 bc 环境需要输入 quit。bc 默认输出整数,如果要输出小数点后的数据,需要执行 scale=number 命令,number 是小数点的位数。

在这里插入图片描述


热键

[Tab]

  [Tab] 具有命令补全与文件补齐的功能,也可以避免打错命令或文件名。
在这里插入图片描述

在这里插入图片描述

  • [Tab] 接在一串命令的第一个字段后面,为命令补全
  • [Tab] 接在一串命令的第二个字段后面,为文件补齐

[Ctrl] + c

  如果想让当前正在运行的程序中断,可以按下 [Ctrl] 和 c 的组合按键。但如果运行的程序比较重要,最好不要着急使用。

[Ctrl] + d

  这个组合按键通常代表键盘输入结束EOF),也可以用来代替 exit 的输入。

[Shift] + {[Page Up]|[Page Down]}

  当命令的输出信息相当长,先前显示的信息不在屏幕中时,可以使用 [Shift] + [Page Up] 来往前翻页,也能够使用 [Shift] + [Page Down] 向后翻页。


在线求助

–help

  对于大部分的命令,使用 --help 选项,就能够对该命令的用法有个大致的理解。

在这里插入图片描述

  首先是执行命令的语法(Usage),cal 可以加上年月日显示日历,也可以加上时间戳或者月份名。下面介绍了 cal 函数的作用,后面的选项(Options)说明了各个选项如 -1 的意义。

  通常 --help 用在查询命令的选项与参数,但如果完全不了解一个命令,或要查询的是文件的格式,就要通过 man page 命令了。

man page

  需要详细的了解 cal 函数,可以通过输入 man cal 查询 cal 函数。进入 man 的功能后,可以按下空格键往下翻页,按下 q 键退出环境。

在这里插入图片描述

  上图中左上角的 CAL(1)(1)代表一般用户可使用的命令。常见的几个数字对应的意义如下:

代号 代表内容
1 用户在 shell 环境中可以操作的命令或可执行文件
2 系统内核可调用的函数与工具等
3 一些常用的函数与函数库,大部分为 C 的函数库
4 设备文件的说明,通常是 /dev 下的文件
5 配置文件或是某些文件的格式
6 游戏
7 惯例与协议等,如 Linux 文件系统、网络协议
8 系统管理员可用的管理命令
9 跟内核有关的文件

  通过 man -f man 命令可以查询 man 命令相关的信息。如果出现 nothing appropriate 的情况,需要切换 root 用户后执行 mandb 建立资料库。

在这里插入图片描述

  man 命令输出的结果和执行数字有关,如果忘记了执行数字,直接输入man man,就会显示查找到的文件,通常是执行数字较小的文件。如果要查找与 7 相关数据,执行 man 7 man

在这里插入图片描述

  如果要查询的不是完整名称,而是关键词,可以执行 man -k man。只要说明文件中含有 man 就会被取出来。

在这里插入图片描述

  man page 的内容分成好几个部分介绍命令,以 NAME 开始介绍,以 SEE ALSO 作为结束。man page 大致分成一下几个部分。

代号 内容说明
NAME 简短的命令、数据名称说明
SYNOPSIS 简短的命令语法简洁
DESCRIPTION 较为完整的说明
OPTIONS 针对 SYNOPSIS 的部分中,有列举的所有可用的选项说明
COMMANDS 这个程序(软件)在执行的时候,可以再此程序(软件)中执行的命令
FILES 这个程序或数据所使用或参考或链接到的某些文件
SEE ALSO 可以参考跟这个命令或数据有关的其他说明
EXAMPLE 一些可以参考的范例

  在 man page 中可以输入关键字,例如在 man cal 中输入 /calendar

在这里插入图片描述

  下表是常用按键,这些按键在 man page 的界面中才能使用。

按键 进行工作
空格键 向下翻页
[Page Down] 向下翻页
[Page Up] 向上翻页
[Home] 前往首页
[End] 前往尾页
/string 向下查找字符串 string
?string 向上查找字符串 string
n, N 在 / 或 ? 查找字符串时,可以用 n 继续查找,或用 N 反向查找
q 结束 man page

  man page 的文件通常存放在 /usr/share/man 目录下,可以通过修改 /etc/man_db.conf (有的版本为 man.confmanpath.conf 等)改变 man page 的查找路径。

info page

  在 UNIX-like 系统中,都可以用 man 来查询命令或相关文件,在 Linux 里还额外提供了一种在线求助方法 infoinfoman 的用法差不多,但 info page 会将文件数据分成不同的段落,每个段落有类似网页的超链接跳到各自的页面。每个独立的页面也称为一个节点。需要查询的说明文件以 info 的格式写成,默认放在 /usr/share/info/ 目录下。info 命令的说明文件有 info 格式,可以用 info info 查询。

在这里插入图片描述

  下表是 info page 常用的按键。

按键 进行工作
空格键 向下翻页
[Page Down] 向下翻页
[Page Up] 向上翻页
[Tab] 在节点之间移动
[Enter] 当光标在节点上时,按下 Enter 可进入该节点
b 移动光标到当前界面开头
e 移动光标到当前页面结尾
n 前往下一个节点
p 前往上一个节点
u 向上移动一层
s (/) 查找
H, ? 显示帮助选项
q 结束 info page

关机

  Linux下程序与服务在后台执行,可能有很多用户在一台主机上工作。如果直接关闭电源,不仅会中断他人的数据,还可能造成文件系统的损毁。

  执行 who 可以查看有哪些用户在线,执行 netstat -a可以 查看网络的联机状态,执行 ps -aux 可以查看后台执行的程序。关机前使用 shutdown 指令,让在线的用户有时间结束他们的工作。

  在 Linux 系统中,为了加快数据的读取速度,默认情况下加载到内存的数据不会直接被写回硬盘,而是先暂存在内存中。当系统不正常关机时,由于数据尚未写入硬盘,就会造成数据的更新不正常。输入 sync 命令可以将内存中尚未被更新的数据写入硬盘。虽然 shutdownreboothalt 等命令在关机前均执行了 sync 命令,但最好多做几次以防意外。

  主机终端前使用物理终端登录时可以用任何身份关机,使用远程管理工具只有 root 有权力关机。较常使用使用的命令是 shutdown,可以通过 man 命令详细了解。简单的语法规则如下。

shutdown [-krhc] [时间] [警告信息]
选项与参数:
-k 	:不关机,只发送警告信息
-r	:将系统的服务停止后重新启动
-h	:将系统的服务停止后关机
-c	:取消正在进行的 shutdown 命令
时间 :指定系统关机的时间,

在这里插入图片描述

在这里插入图片描述

  reboothaltpoweroff 也可以进行重新启动或关机的任务,这三个命令调用的函数库差不多,可以使用 man 查询详细的功能。

  目前系统中所有服务的管理是使用 systemctl 命令,前面的命令都是调用 systemctl,这个命令相关的语法如下。

systemctl [命令]
命令:
halt		进入系统停止的模式,屏幕可能保留一些信息,这与电源管理模式有关
poweroff	进入系统关机模式,直接关机
reboot 		直接重新启动
suspend		进入休眠模式

在这里插入图片描述

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

Linux01 一 Shell与命令执行 的相关文章

  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • Android:ANT 构建失败,并显示 google-play-services-lib:“解析为没有项目的 project.properties 文件的路径”

    我正在尝试使用 ANT 构建我的应用程序 但在包含 google play services lib 库项目后 我惨遭失败 Step 1 我在 project properties 文件中设置了对库项目的引用 android library
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • 抑制 makefile 中命令调用的回显?

    我为一个作业编写了一个程序 该程序应该将其输出打印到标准输出 分配规范需要创建一个 Makefile 当调用它时make run gt outputFile应该运行该程序并将输出写入一个文件 该文件的 SHA1 指纹与规范中给出的指纹相同
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 如何根据 HTTP 请求使用 Python 和 Flask 执行 shell 命令并流输出?

    下列的这个帖子 https stackoverflow com questions 15092961 how to continuously display python output in a webpage 我能够tail f网页的日志
  • 为什么内核需要虚拟寻址?

    在Linux中 每个进程都有其虚拟地址空间 例如 32位系统为4GB 其中3GB为进程保留 1GB为内核保留 这种虚拟寻址机制有助于隔离每个进程的地址空间 对于流程来说这是可以理解的 因为有很多流程 但既然我们只有 1 个内核 那么为什么我
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include

随机推荐

  • COPU陆首群教授应邀在开放原子全球开源峰会上做主旨演讲

    各位领导 各位专家 同志们 朋友们 大家下午好 祝贺开放原子开源基金会首届全球开源峰会成功举办 1970年是为人们称道的UNIX元年 也是开源在全球诞生之日 开源在全球流行至今已有52年了 自从1991年我国引进UNIX现代计算系统以来 中
  • DS内排—直插排序

    目录 题目描述 思路分析 AC代码 题目描述 给定一组数据 使用直插排序完成数据的升序排序 程序要求 若使用C 只能include一个头文件iostream 若使用C语言只能include一个头文件stdio 程序中若include多过一个
  • 在java中重复一个字符串n次的几种方法

    方法一 String format 0 n d 0 replace 0 s 方法二 new String new char n replace 0 s 方法三 JAVA 8 String join Collections nCopies n
  • (三)Unity开发Vision Pro——入门

    3 入门 1 入门 本节涵盖了几个重要主题 可帮助您加快visionOS 平台开发速度 在这里 您将找到构建第一个 Unity PolySpatial XR 应用程序的分步指南的链接 以及 PolySpatial XR 开发时的一些开发最佳
  • 目标检测数据集PASCAL VOC笔记

    PASCAL VOC 数据集的应用领域有Object Classification Object Detection Object Segmentation Human Layout Action Classification等 它的常用版
  • Acwing 116. 飞行员兄弟

    枚举所有开关的状态 0 2 16 1 16位二进制数 若某一位为1表示按一下 为0表示不按 按照该方案 对所有灯泡进行操作 所在行 所在列全部按一下 判断灯泡是否全亮 如果全亮的话 记录方案 include
  • 美团客户端技术团队招人啦

    非广告哈 帮好友发一则招聘 美团客户端团队在北京招人了 性能优化 基础组件相关的岗位都有 在看机会的或者想了解一下的 都可以通过文章最后面的联系方式进行联系 或者私信我 我拉个群你们细聊 想必大家都看过美团技术团队的博客 美团技术团队 1
  • SQL中DML语句(数据操作语言)

    表示数据操作语言 凡是对表当中的数据进行增删改的都是DML 目录 insert 插入数据 update 修改数据 delete 删除数据 insert 插入数据 语法格式 insert into 表名 字段名1 字段名2 字段名3 valu
  • 如何用burpsuite进行攻击

    一 使用Burpsuite进行攻击 1 第一步打开burpsuite 2 第二部点击Repeater 3 第三步点击粉笔形状的按钮 4 输入要攻击目标的ip地址与端口号 5 添加攻击报文 进行攻击 6 查看响应结果 完整界面展示如下 注意
  • 今日头条2017校招(出题数目)

    题目描述 头条的2017校招开始了 为了这次校招 我们组织了一个规模宏大的出题团队 每个出题人都出了一些有趣的题目 而我们现在想把这些题目组合成若干场考试出来 在选题之前 我们对题目进行了盲审 并定出了每道题的难度系数 一场考试包含3道开放
  • 使用共享 MVI 架构实现高效的 Kotlin Multiplatform Mobile (KMM) 开发

    使用共享 MVI 架构实现高效的 Kotlin Multiplatform Mobile KMM 开发 文章中探讨了 Google 提供的应用架构指南在多平台上的实现 通过共享视图模型 View Models 和共享 UI 状态 UI St
  • Python3 面向对象

    文章目录 面向对象基础 类及类的定义 对象的创建 成员变量 定义格式一 常用 定义格式二 不常用 区别 成员方法 定义格式一 定义格式二 init 方法 str 方法 成员方法调成员 成员 方法 调成员 变量 成员 方法 调成员 方法 手机
  • 【WebSocket】WebSocket使用,看这篇就行

    一 WebSocket连接的建立 消息的接收和回复 当涉及到WebSocket框架的深度使用时 一个流行的选择是使用Java的Spring框架来实现 下面是一个基本的示例 演示了如何使用Spring WebSocket框架进行深度使用 首先
  • 经纬度绘图_Python气象绘图教程(七)——Cartopy

    Python地理信息库包 Cartopy 一 简介 在前面的教程中 我们已经讲解了常用的二维型数据的可视化方法 但是在日常研究中 由于大气科学属于地学系统 和地球地理信息的结合十分密切 大多数时间 需要在图形中添加地理信息 作为胶水语言 在
  • 第九章 numpy之线性代数+练习题

    线性代数 Numpy 定义了 matrix 类型 使用该 matrix 类型创建的是矩阵对象 它们的加减乘除运算缺省采用矩阵方式计算 因此用法和Matlab十分类似 但是由于 NumPy 中同时存在 ndarray 和 matrix 对象
  • 大数据系统及分析

    IDC将大数据技术定义为 为更经济地从高频率的 大容量的 不同结构和类型的数据中获取价值而设计的新一代架构和技术 大数据的关键在于种类繁多 数量庞大 使用传统的数据分析工具无法在可容忍的时间内处理相应的数据 大数据分析主要涉及两个不同的领域
  • 单片机原理及应用复习

    关于这个复习的资源 或者网址 点击 第一章 单片机的基础知识 1 什么是单片机 特点 将通用微型计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统 嵌入式系统 用于解决小型被控对象的智能化问题 SCM或MCU 组成 特点 体积小
  • 工作中遇到的关于配置问题

    工作中遇到的问题 想记录一下 一个程序员小白每天遇到的问题 1 创建了一个Maven的web工程 但是启动一直是404 原服务器未能找到目标资源 解决办法 选择deployment 点击加号选择war格式就OK啦 目录里面无法创建类 解决办
  • postman批量请求post

    1 首先建立一个collection文件夹 2 建立一个post请求 3 建立一个csv文件 用excel转换过来 由于最后一行老是有换行符 r 所以加一行数据 执行错了
  • Linux01 一 Shell与命令执行

    Shell 是在操作系统内核的基础上编写的程序 也是一种脚本语言 Shell 为用户提供了操作界面 让用户高效安全地访问 Linux 内核 执行命令 command options parameter1 parameter2 command