初探shell与bash使用指南

news2024/9/25 0:46:13

文章目录

  • 一、shell
  • 二、bash
    • 第一步、新建脚本
    • 第二步、添加权限
    • 第三步、执行bash脚本

在日常开发中,经常使用到Linux服务器相关知识,输入命令获取想要的结果,本篇介绍shell 与 bash的相关知识。

一、shell

命令行解释器,接收用户输入的命令,调用操作系统内核去执行这些命令,并将执行的结果返回给用户。
在不同的系统中对应不同的工具,如 window 的 powerShell,git 的git bash

// 查看shell版本
cat /etc/shells
// 查看当前系统默认使用的shell路径
echo $SHELL
// 当前正在执行脚本的名称
echo $0
// 切换shell版本,直接输入
/bin/sh
// 退出
exit

在这里插入图片描述

二、bash

即可执行程序,是shell的实现,可用于备份数据,定时任务执行等。

第一步、新建脚本

即新建 hello 的bash脚本,命名为 hello.sh,并输入内容。

// 新建bash脚本
vi hello.sh

进入文件中,按 i 键,输入以下内容。

// #! 声明为bash脚本
#!/bin/bash
// 打印
echo "hello bash"
// 打印当前日期
date
// 打印账户信息
whoami

第二步、添加权限

使用 chmod 命令,如下所示。

// 给bash脚本授权
chmod a+x hello.sh
// 或者 777
chmod 777 hello.sh

第三步、执行bash脚本

执行命令为 ./ 后面跟文件名,如下所示。

在这里插入图片描述

ps -ef | grep bash
// 配置文件
cat /etc/passwd|head -1

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

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

相关文章

云岚到家 第一天实战总结

为什么使用post发送请求,参数依旧会被拼接带url上呢?这应该就是param 与data传参的区别。即param传参数参数会被拼接到url后,data会以请求体传递 不一定post发送请求,数据一定在请求体中,主要是看数据的格式。 后端c…

Makefile的写法以及gdb调试的使用方法

all:main # 一般makefile中的第一个目标都是all:可执行文件 # 为了保证,最后Makefile文件执行后一定会生成一个可执行文件main:main.o add.o gcc main.o add.o -o main main.o:main.cgcc -c main.c -o main.o add.o:add.cgcc -c add.c -o add.oclean: …

无人机之4G模块的主要功能和优势

一、增强图传 在无人机飞行过程中,传统的图传方式可能会受到信号遮挡或干扰的影响,导致图像传输不稳定甚至中断。而4G模块通过结合4G网络技术,能够在原有图传技术的基础上提供增强的图传功能。当传统图传信号不佳时,无人机可以自动…

MySQL 缓冲池管理与常见优化技巧

在 MySQL 数据库的性能优化中,缓冲池的管理至关重要。同时,了解其他常见的优化技巧也能极大地提升数据库的运行效率。今天,我们就来深入探讨在 MySQL 中如何管理并调整缓冲池的大小,以及一些常见的优化技巧。 一、缓冲池的重要性…

ZBrush入门使用介绍——17、NanoMesh

大家好,我是阿赵。   继续介绍ZBrush的用法,这次看看NanoMesh 一、 NanoMesh介绍 之前介绍过ArrayMesh,ArrayMesh可以把一个模型复制很多份。不过ArrayMesh有一个问题,复制了很多个网格之后,很难针对某部分网格做调…

鸿蒙开发(NEXT/API 12)【基础功能(Function Flow Runtime 开发)】任务并发调度

场景介绍 Function Flow编程模型是一种基于任务和数据驱动的并发编程模型,允许开发者通过任务及其依赖关系描述的方式进行应用开发。FFRT(Function Flow运行时)是支持Function Flow编程模型的软件运行时库,用于调度执行开发者基于…

《动手学深度学习》笔记1.10——激活函数←模型初始化←数值稳定性

目录 1. 数值稳定性 1.1 神经网络的梯度 1.2 数值稳定性的常见两个问题 1.3 梯度爆炸 1.3.1 MLP的例子 1.3.2 使用ReLU激活函数 1.3.3 产生的问题 1.4 梯度消失 1.4.1 使用sigmoid激活函数 1.4.2 梯度消失的问题 1.5 总结 2. 让训练更稳定 2.1 目标 (ResNet, LSTM…

8.进销存系统(基于springboot的进销存系统)

目录 1.系统的受众说明 2.开发技术与环境配置 2.1 SpringBoot框架 2.2 Java语言简介 2.3 MySQL环境配置 2.4 idea介绍 2.5 mysql数据库介绍 2.6 B/S架构 3.系统分析与设计 3.1 可行性分析 3.1.1 技术可行性 3.1.2 操作可行性 3.1.3经济可行性 3.4.1 数据库…

Java—反射机制详解

介绍反射 反射的基本概念 反射(Reflection)是Java语言中的一种机制,它允许程序在运行时检查和操作类、接口、字段和方法等类的内部结构。通过反射,你可以在运行时获取类的信息,包括类的构造器、字段、方法等&#xf…

k8s StorageClass 存储类

文章目录 一、概述1、StorageClass 对象定义2、StorageClass YAML 示例 二、StorageClass 字段1、provisioner(存储制备器)1.1、内置制备器1.2、第三方制备器 2、reclaimPolicy(回收策略)3、allowVolumeExpansion(允许…

从碎片到整合:EasyCVR平台如何重塑城市感知系统的视频数据生态

随着城市化进程的加速,城市感知系统作为智慧城市的重要组成部分,正逐步成为提升城市管理效率、保障公共安全、优化资源配置的关键手段。EasyCVR视频汇聚融合平台,凭借其强大的数据整合、智能分析与远程监控能力,在城市感知系统中扮…

Sam Altman的博客:The Intelligence Age

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

thinkphp 做分布式服务+读写分离+分库分表+负载均衡(分区)(后续接着写)

thinkphp 做分布式服务读写分离分库分表负载均衡(分区) 引言 thinkphp* 大道至简负载均衡分布式服务一、读写分离1、读写分离的实现方式2、主从同步的三种模式2-1、异步模式(mysql async-mode)2-2、半同步模式(mysql s…

红帽rhce含金量?考到能拿多少钱工资?

随着目前国内的it职业飞速发展,rhce已经成为it职业的首选认证、高薪亮点。主要是linux人才出现大比例短缺的状况,很多企业对linux人才的需求也继续升温。 这个时候大家如果抓住了机会,那么实力就能得到质的提升,那么小编针对红帽…

OpenAI GPT-3 API: What is the difference between davinci and text-davinci-003?

题意:OpenAI GPT-3 API:davinci 和 text-davinci-003 有什么区别 问题背景: Im testing the different models for OpenAI, and I noticed that not all of them are developed or trained enough to give a reliable response. 我正在测试…

论文阅读【时间序列】ModerTCN (ICLR2024)

【时间序列】ModerTCN (ICLR2024) 原文链接:ModernTCN: A Modern Pure Convolution Structure for General Time Series Analysis 代码仓库:ModerTCN 简易版本实现代码可以参考:(2024 ICLR)ModernTCN:A Mod…

谁是AI界的老司机?谁最“纯洁”?谁能通过暧昧小短文的终极考验?

AI的能力已经让人们惊叹不已,不管是帮你写文章、答疑解惑,还是生成艺术作品,几乎无所不能。但如果让AI来解读一篇暗藏玄机、暧昧十足的小短文,结果会怎样?今天,我们就把几款顶流AI大模型拉出来,…

Cobalt Strike的下载与基本用法

CobaltStrike4.8 链接:百度网盘 请输入提取码 提取码:tgf3 what Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个&…

C++的扩充和封装

作业: 手动封装一个顺序表(SeqList),分文件编译实现 有私有成员:顺序表数组的起始地址 ptr、 顺序表的总长度:size、顺序表的实际长度:len 成员函数:初始化 init(int n) 判空:em…

Vue:默认插槽

目录 一.性质 1.内容分发 2.无名称标识 3.作用域 4.使用方式 二.使用 1.父组件 2.子组件 三.代码 1.父组件代码 2.子组件代码 四.效果 一.性质 1.内容分发 默认插槽允许组件的使用者定义一些内容,这些内容会被插入到组件模板中的特定位置。这有助于实…