【Linux】1 一篇通俗的Shell体验教程

这篇具有很好参考价值的文章主要介绍了【Linux】1 一篇通俗的Shell体验教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


【Linux】1 Shell 🍘

1. 语录

  • 计算机不仅仅用来开发个网站或软件,更是我们手中的利器,我们的tools。
  • shell是我们与计算机交互的主要方式,可视化的图形界面其实很受限,你只能通过预设的按钮去做一些事情。

2. Shell

2.1 程序

操作系统中通常都有一个”shell“,例如windows中的powershell。它们之间可能有些区别,但总的来说差不多。在windows系统中,也可以通过安装Git,使用linux风格的git bash(windows 下的git bash有时也不太一样,更建议真正的linux系统)

shell中可以通过输入程序名来执行程序,比如有个程序叫date,就之间输入($是命令提示符,就像windows中的>

$ date
Sat Mar 18 20:52:33     2023

可以给程序传递参数,例如程序echo的运行效果就是把传递给它的参数打印出来,

$ echo hello
hello

此外,如果有多个参数,参数之间是使用空格分开的,如果传多单词组成的参数,可以使用\(转义字符),例如下面其实只给echo传了一个参数,

$ echo hello\ world
hello world

系统可以找到你输入的程序,是通过 Path(路径),可以查看环境变量中的所有路径

$ echo $PATH
/c/Users/ThinkPad/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/mingw64/bin:/usr/bin:/c/Users/ThinkPad/bin:/c/Program Files/Common 
...(我省略了)

在你输入一个程序名,比如echo时,shell就会在系统的所有路径的目录中搜索该程序,你可以这样查看一个程序所在的路径

$ which echo
/usr/bin/echo

补充:关于程序(命令)的参数,我们使用-后面接单个字母,使用--后面接单词。例如-a--all

2.2 目录

程序默认会在当前目录下运行。下面是一些常用的目录操作

命令 介绍
pwd(print work directory) 打印当前目录路径
ls 列出当前目录下的文件,使用-l参数将显示更多详细信息
cd 切换目录到指定目录,使用cd -可回到刚才所在的目录,方便在两个目录间切换。.表示当前目录,..表示父目录,~表示用户目录,/开头表示根目录。

通过--help参数,可以查看某个命令的用法,例如

$ ls --help

想一想:ls -l列出的目录列表及其信息,如何解读?

而操作文件需要权限,你需要拥有整条路径的权限才能对文件进行相应的操作。下面是一些和文件操作有关的命令介绍。

2.3 文件

2.3.1 简单文件操作

你可以使用mv命令给文件重命名,即使它是move(移动)的意思。假设你在当前的目录下已经有个文件hello.txt,那么你可以使用命令

$ mv hello.txt hello2.txt

将它重命名为hello2.txtcp命令可以复制文件,它的意思是copy (很显然),你可以接着刚才的命令使用

$ cp hello2.txt hello.txt

那么你的hello.txt文件又回来了!现在你有了两个相同内容的文件,却有着不一样的名字。但估计你会觉得这有些多余,但好在你可以使用命令rm删掉其中一个,就像下面这样

$ rm hello2.txt

好了,现在我们又回到了刚刚开始的样子,但我们刚刚的操作已经在终端留下了杂乱的信息,使用clear命令清除它们!

$ clear

如果你想新建文件,可以使用touch命令,比如新建一个空hello2.txt文件

$ touch hello2.txt

有时你会感觉命令的名字有些奇怪,为什么创建文件要是touch?其实它就像前面的mv命令,重命名仅仅对它的一种使用方式,而它能做的不止于此,它其实可以将文件移动到你计算机的任何一个地方!

touch是一个时间戳命令,当操作的文件不存在时就会自动新建一个文件——而不是它本身只有新建文件的功能。当你感到疑惑时可以使用touch --help看看帮助文档。而我使用echo命令同样达到新建文件的目的

$ echo '' > hello3.txt

它将新建一个空文件hello3.txt 。你可能看着这些linux命令就像回到了高中背单词的时候,同一个单词有着相互略微联系的多种用法——也确实如此,单词是语言的基础。

至于刚刚命令中的>符号,相信大家一看就懂,我们后面也将会进一步介绍。

2.3.2 重定向

程序的输出除了直接显示到屏幕上,你也可以将它保存到文件里,而重定向可以帮你达成这个目标。这里有个的概念,每个程序都有自己的输入流输出流程序从自己的输入流中读取数据,并将运行结果写入到输出流中。而程序默认从键盘输入获取数据,并将运行结果写到屏幕上,我们将键盘输入称为标准输入流,将屏幕称为标准输出流。而重定向将助你获得修改程序输入、输出方向的能力——而不总是键盘和屏幕。

echo命令将输入流中的数据传递到输出流,但我现在不想输出到屏幕,我要将输入的内容保存到文件里,那么可以使用>——重定向输出流。

$ echo hello > hello.txt

想一想:为什么echo < hello.txt输出为空?

类似地可以使用<重定向输入流。cat命令可以将文件输入显示到屏幕,如

$ cat hello.txt
hello

现在我们通过重定向,可以将hello.txt文件的内容复制到另一个文件hello2.txt

$ cat < hello.txt > hello2.txt
$ cat hello2.txt
hello

cat程序从hello.txt中获得输入,并将输出写入了hello2.txt中——而不是屏幕上。

>重定向的输出流是覆盖模式,对应到文件操作中,就是先清空文件中原有的内容,然后写入新内容。如果你是想在原来的基础上添加一些内容,那么>>很适合你,它将以追加模式写入新内容。

$ echo world >> hello.txt
$ cat hello.txt
hello
world
命令 介绍
< 重定向输入流
> 重定向输出流,以覆盖模式写入
>> 重定向输出流,以追加模式写入

2.4 管道

一个程序的输出可以保存到文件里,也可以直接传递给另一个程序。将左侧程序的输出直接作为右侧程序的输入,这便是管道的作用,管道符为|

tail命令通过-n参数,可以输出它输入中的最后n行。命令ls -l /会显示出很多信息,那么通过下面的命令我可以只显示其中最后两行:

$ ls -l / | tail -n 2
-rw-r--r--  1 ThinkPad 197121   24183 Nov 28 12:20 unins000.msg
drwxr-xr-x  1 ThinkPad 197121       0 Nov 28 12:20 usr/

tee命令可以将输入同时输出到屏幕和指定的文件中,那么加上管道你可以像下面这样

$ echo linux1234 | tee hello.txt
linux1234

3 汇总与小结

本节介绍的一些命令、变量、参数如下表所示。

命令 介绍
date 显示当前时间
echo 将输入显示到屏幕
$PATH 环境变量
which 查找程序的位置
pwd 打印当前路径
ls 列出当前目录下的目录和文件
cd 切换当前目录
--help 查看程序的帮助文档
mv 重命名文件
cp 复制文件
rm 删除文件
clear 清除终端输出
touch 新建文件
< 重定向输入流
> 重定向输出流,覆盖模式写入
>> 重定向输出流,追加模式写入
| 管道符,左侧程序的输出作为右侧程序的输入
tail -n参数将输入中的最后n行输出
tee print to both your file and screen

本文仅仅大致介绍了linux shell的概况与使用,后面还有着更加精彩的世界等着大家自由探索。我是清风莫追,期待下次再见!文章来源地址https://www.toymoban.com/news/detail-433206.html


到了这里,关于【Linux】1 一篇通俗的Shell体验教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 最全Linux Shell详细教程

    我们在这里就在本地测试学习,因此我在这里先不建议大家这么着急去买服务器来学,这样比较费钱,等我们学好这些基础之后,再去上手服务器,那将是手到擒来。 本地学习工具:虚拟机 如果你没有该工具,请按照这个操作安装:虚拟机安装配置教程 当然,如果你有钱,

    2024年02月08日
    浏览(57)
  • Linux[Shell脚本]入门详细教程

    目录 前言  一、什么是shell 二、什么是脚本?  三、为什么要学习和使用shell? 四、 常见的shell种类  bash  五、shell语法  1.变量  1.1变量的定义与使用  1.2 只读变量 readonly   1.3接收用户输入 read  -p  1.4删除变量uset  2.条件判断语句 两个条件:  多个条件:  3.运算符  

    2024年02月04日
    浏览(52)
  • 万字长文·通俗易懂·一篇包掌握——输入/输出·文件操作(c语言超详细系列)(二)

    前言:Hello,大家好😘,我是心跳sy,上一节我们主要学习了格式化输入输出的基本内容,这一节我们对格式化进行更加深入的了解,对文件概念进行介绍,并且对输入、输出与文件读写的基本概念进行学习,本节主要对printf,scanf深入了解,并介绍文件处理函数,如fprintf,

    2024年02月13日
    浏览(64)
  • Linux中阶教程:bash shell基础

    echo 表示打印字符串; read 表示获取用户输入; $ 用于引用变量。 其运行结果为 bash 中的运算符并没有什么特殊的, 运算符 说明 + , - , × , / , % 加减乘除,求余;支持 += 形式 ** , , || 乘方、关系与、或 但是,与常见编程语言不同的是, bash 中的赋值和数学计算需要在

    2024年02月06日
    浏览(44)
  • 第六章、用户体验五要素之框架层解析(本文作用是通俗讲解,让你更容易理解)

            结构层定义产品运行形式,框架层则用于确定用什么样的功能或者形式来实现。在框架层,功能型和信息型产品都需要信息设计,不同的是功能型还需要界面设计,而信息型产品则是导航设计。         1、界面设计:如果涉及提供给用户做某些事的能力,那就是界

    2024年02月09日
    浏览(41)
  • 【Shell 命令集合 文件管理】Linux 拆分文件 split命令使用教程

    Shell 命令专栏:Linux Shell 命令全解析 split命令是Linux系统中的一个用于拆分文件的命令。它可以将一个大文件拆分成多个小文件,以便于传输、存储或处理。下面是split命令的详细描述: -b 大小 :指定每个输出文件的大小。大小可以使用后缀(如K、M、G)来表示,默认单位是

    2024年02月10日
    浏览(65)
  • 【Shell 命令集合 磁盘管理 】Linux 取消挂载 umount命令使用教程

    Shell 命令专栏:Linux Shell 命令全解析 umount命令用于卸载(取消挂载)已经挂载的文件系统,使其从文件系统树中移除。它用于断开文件系统与指定挂载点之间的连接,以便安全地卸载文件系统。 在Linux中,文件系统可以通过挂载的方式与特定的目录关联起来。挂载是将一个文

    2024年02月08日
    浏览(49)
  • Kali Linux入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。

    作为一名从事渗透测试的人员,不懂Kali Linux的话,就out了。它预装了数百种享誉盛名的渗透工具,使你可以更轻松地测试、破解以及进行与数字取证相关的任何其他工作。 今天给大家分享一套 Kali Linux资料合集 ,包括 12份Kali Linux渗透测试PDF资料 ,内容全面丰富,特别适合渗

    2023年04月16日
    浏览(34)
  • 【Shell 命令集合 磁盘维护 】Linux 检查和修复文件系统错误 fsck命令使用教程

    Shell 命令专栏:Linux Shell 命令全解析 fsck命令是Linux系统中用于检查和修复文件系统错误的工具。它可以扫描并修复文件系统中的损坏、错误或不一致的数据结构,以确保文件系统的正常运行。 fsck命令主要用于以下几个方面: 检查文件系统:fsck命令可以对指定的文件系统进

    2024年02月07日
    浏览(60)
  • Win系统下安装Linux双系统教程(非常详细)从零基础入门到精通,看完这一篇就够了

    软件下载 软件:Linux 版本:18.0.4 语言:简体中文 大小:1.82G 安装环境:Win11/Win10/Win8/Win7 硬件要求:CPU@2.0GHz 内存@4G(或更高) 下载通道①丨百度网盘: 1.ubuntu18.0.4下载链接: https://pan.baidu.com/s/13469aDpGacReo1bFvTKmng 提取码:7777 2.工具下载链接: https://pan.baidu.com/s/17AwjX2AO7E5fHjY

    2024年02月03日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包