LinuxShell菜鸟教程详解

一、基础命令

在LinuxShell的世界中,基础命令是我们必须要学会的,例如常见的ls、mkdir、cd、cp、mv、rm、touch、echo等命令。

1、ls命令:

ls -l

在不加参数的情况下,ls命令为我们展示了当前目录的文件列表,而加上-l参数将为我们提供更为详细的信息,例如文件的权限、所有者、文件大小、创建时间等。

2、mkdir命令:

mkdir test_dir

该命令用于在当前目录下创建一个名为test_dir的目录。

3、cd命令:

cd test_dir

该命令将进入当前目录下的test_dir目录。

4、cp命令:

cp test.txt test_dir/

该命令将test.txt文件复制到test_dir目录下。

5、mv命令:

mv test.txt test_dir/

该命令将test.txt文件移动到test_dir目录下。

6、rm命令:

rm test.txt

该命令将删除当前目录下的test.txt文件。

7、touch命令:

touch test.txt

该命令用于创建一个名为test.txt的新文件。

8、echo命令:

echo "Hello World"

该命令将在终端中输出Hello World字符串。

二、Shell脚本

在了解基础命令之后,我们就可以开始编写Shell脚本了。Shell脚本是一种在LinuxShell环境中运行的脚本程序,常用于编写自动执行任务、批量操作文件等自动化处理任务。

1、创建一个简单的Shell脚本:

#!/bin/bash
echo "Hello World"

该脚本包含了一个echo命令,作用是输出Hello World字符串。

2、运行Shell脚本:

chmod +x test.sh
./test.sh

我们需要先将脚本文件test.sh赋予执行权限,然后通过./命令运行该脚本。

三、正则表达式

正则表达式是一种灵活的字符串匹配模式,LinuxShell中许多命令都支持正则表达式。

1、使用grep命令过滤文本:

grep 'hello' file.txt

该命令将在文件file.txt中查找包含hello字符串的行,并将其打印到终端中。

2、使用sed命令编辑文件:

sed 's/old/new/g' file.txt

该命令将在文件file.txt中查找old字符串,并将其替换为new字符串,所有匹配的字符串都会被替换。

四、Shell变量

Shell变量是我们在脚本中用于存储值的标识符,它可以是数字、文本或其他任何类型的数据。我们可以通过Shell脚本中定义的变量来进行不同的操作。

1、定义一个Shell变量:

name="Tom"
echo $name

该脚本定义了一个名为name的变量,并将其值设置为Tom,在终端中运行该脚本后,将输出Tom。

2、使用环境变量:

echo $HOME

使用$HOME环境变量,将输出当前用户的home目录路径。

3、使用特殊变量:

echo $0

使用$0特殊变量,将输出当前脚本的名称。

4、Shell数组:

names=("Tom" "Jerry" "Mike")
echo ${names[1]}

该脚本定义了一个名为names的数组,并将其值初始化为Tom、Jerry、Mike三个数据,然后通过${names[1]}命令输出该数组的第二个元素Jerry。

五、Shell函数

Shell函数是一段可重复使用的代码,当需要执行某些操作时,我们可以通过调用函数的方式来完成这些操作。

1、定义一个Shell函数:

#!/bin/bash
# 定义函数
function sayHello(){
  echo "Hello World"
}
# 调用函数
sayHello

该脚本定义了一个名为sayHello的函数,并在函数中定义了echo命令,用于输出Hello World字符串。在脚本的最后,我们调用了该函数,将在终端中输出Hello World。

2、定义带有参数的Shell函数:

#!/bin/bash
# 定义函数
function sayHello(){
  echo "Hello $1"
}
# 调用函数
sayHello "Tom"

该脚本定义了一个名为sayHello的函数,并在函数中定义了echo命令,用于输出Hello和函数中传入的参数。在脚本的最后,我们调用了该函数,并传入了参数Tom,将在终端中输出Hello Tom。

六、Shell条件判断

条件判断是我们在编写Shell脚本时不可避免的需求,例如我们需要在特定条件下执行特定操作,这时我们可以使用Shell的条件判断语句。

1、if语句:

num=10
if [ $num -gt 5 ]; then
  echo "num is greater than 5"
fi

该脚本定义了一个名为num的变量,并将其值初始化为10。然后使用if语句判断num是否大于5,如果是,则输出num is greater than 5。

2、case语句:

fruit="apple"
case $fruit in
  apple )
    echo "This is an apple.";;
  banana )
    echo "This is a banana.";;
esac

该脚本定义了一个名为fruit的变量,并将其值初始化为apple。然后使用case语句对fruit的值进行判断,如果是apple,则输出This is an apple。

七、Shell循环

循环语句在编写Shell脚本时也是常用的语句之一,例如我们需要对某些操作进行多次重复执行,这时我们就需要使用循环语句。

1、while循环:

count=0
while [ $count -lt 5 ]
do
  echo "Current count is: $count"
  count=`expr $count + 1`
done

该脚本定义了一个名为count的变量,并将其值初始化为0,然后使用while循环对count进行迭代,每次迭代输出Current count is:和当前的count值。

2、for循环:

names=("Tom" "Jerry" "Mike")
for name in ${names[@]}
do
  echo "Hello $name"
done

该脚本定义了一个名为names的数组,并将其值初始化为Tom、Jerry、Mike三个数据。然后使用for循环输出Hello和数组中的每个元素。

八、Shell并发编程

当我们涉及到多个任务需要同时执行时,我们就需要使用到Shell并发编程技术,以提高代码的效率。

1、&符号:

#!/bin/bash
# 运行任务1
task1(){
  echo "This is task1."
  sleep 5
}
# 运行任务2
task2(){
  echo "This is task2."
  sleep 5
}
# 运行任务3
task3(){
  echo "This is task3."
  sleep 5
}
# 并发运行任务
task1 &
task2 &
task3 &

该脚本定义了三个名为task1、task2、task3的函数,每个函数都包含一个输出语句和5秒的睡眠时间。在脚本的最后,我们使用&符号来并发运行三个函数。

九、Shell输入输出重定向

Shell输入输出重定向是我们在Shell编程中常用的技术之一,例如我们需要将命令的输出结果保存到文件中,或者从文件中读取输入等操作,都需要用到输入输出重定向技术。

1、输出重定向:

echo "Hello World" > file.txt

该命令将输出Hello World字符串,并将其重定向到文件file.txt中。

2、输入重定向:

cat < file.txt

该命令将从文件file.txt中读取数据,并输出到终端中。

十、Shell管道

Shell管道是我们另外一个常用的技术,通过将一个命令的输出结果传递给另一个命令来完成一系列的操作,以实现更加复杂的任务。

1、使用管道过滤数据:

cat file.txt | grep "Hello"

该命令将从文件file.txt中读取数据,然后将其传递给grep命令(也就是将包含Hello字符串的行输出到终端中)。

2、使用管道排序数据:

cat file.txt | sort

该命令将从文件file.txt中读取数据,然后将其传递给sort命令(也就是将文件内容按行排序输出到终端中)。

十一、Shell网络编程

在需要与外部服务器或者其他设备进行交互时,我们就需要使用到Shell网络编程技术,以完成网络通讯等任务。

1、使用telnet与远程服务器进行交互:

telnet www.baidu.com 80

该命令将连接到百度服务器并打开80端口,在终端中可以进行与该服务器的交互操作。

2、使用curl下载文件:

curl -O http://example.com/file.zip

该命令将从指定网址下载一个名为file.zip的文件。

十二、Shell常用工具

除了Shell自带的命令和组件外,还有一些社区或第三方提供的库和工具,我们可以使用这些工具来完成更加复杂的任务。

1、使用awk命令进行文本处理:

awk '{print $1}' file.txt

该命令将从文件file.txt中读取数据,并使用awk命令将每一行的第一个单词提取出来,输出到终端中。

2、使用sed命令编辑文件:

sed ' 

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/241339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:30
下一篇 2024-12-12 12:30

相关推荐

  • MQTT使用教程

    MQTT是一种轻量级的消息传输协议,适用于物联网领域中的设备与云端、设备与设备之间的数据传输。本文将介绍使用MQTT实现设备与云端数据传输的方法和注意事项。 一、准备工作 在使用M…

    编程 2025-04-29
  • Python3.6.5下载安装教程

    Python是一种面向对象、解释型计算机程序语言。它是一门动态语言,因为它不会对程序员提前声明变量类型,而是在变量第一次赋值时自动识别该变量的类型。 Python3.6.5是Pyt…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Qt雷达探测教程

    本文主要介绍如何使用Qt开发雷达探测程序,并展示一个简单的雷达探测示例。 一、环境准备 在开始本教程之前,需要确保你的开发环境已经安装Qt和Qt Creator。如果没有安装,可以…

    编程 2025-04-29
  • 猿编程python免费全套教程400集

    想要学习Python编程吗?猿编程python免费全套教程400集是一个不错的选择!下面我们来详细了解一下这个教程。 一、课程内容 猿编程python免费全套教程400集包含了从P…

    编程 2025-04-29
  • Python烟花教程

    Python烟花代码在近年来越来越受到人们的欢迎,因为它可以让我们在终端里玩烟花,不仅具有视觉美感,还可以通过代码实现动画和音效。本教程将详细介绍Python烟花代码的实现原理和模…

    编程 2025-04-29
  • 使用Snare服务收集日志:完整教程

    本教程将介绍如何使用Snare服务收集Windows服务器上的日志,并将其发送到远程服务器进行集中管理。 一、安装和配置Snare 1、下载Snare安装程序并安装。 https:…

    编程 2025-04-29
  • Python画K线教程

    本教程将从以下几个方面详细介绍Python画K线的方法及技巧,包括数据处理、图表绘制、基本设置等等。 一、数据处理 1、获取数据 在Python中可以使用Pandas库获取K线数据…

    编程 2025-04-28
  • Python语言程序设计教程PDF赵璐百度网盘介绍

    Python语言程序设计教程PDF赵璐百度网盘是一本介绍Python语言编程的入门教材,本文将从以下几个方面对其进行详细阐述。 一、Python语言的特点 Python语言属于解释…

    编程 2025-04-28

发表回复

登录后才能评论