热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux下的shell编程(一)BY四喜三顺

CtrlAltTvim文本编辑器:i(插入模式),v(可视模式),Escÿ

Ctrl + Alt + T
vim文本编辑器:i(插入模式),v(可视模式),Esc(普通模式),:w(保存),:r(打开),:q(退出)
gvim 文本编辑器vim的升级版
gedit 更常用的文本编辑器

gcc file1.c 编译file1.c文件
./a.out  显示结果

pwd 查看当前路径
cd/ 切换到根目录
cd 切换到用户的主目录
cd /bin 切换到根目录下的bin子目录
cd bin 切换到当前坐在目录下的bin子目录
cd  ../.. 切换到上级目录的父目录
sudo -i 切换到root目录(exit 回来)

ls查看文件列表
ls-l 查看文件列表详情
touch file1 建立文件file1
vim file1 对文件file1进行vim编辑
rm file1 删除文件file1
mkdir -p mydir1/mydir2 建立目录
rmdir -p mydir1/mydir2 删除目录

cp -r /c /d 将目录c中的所有文件和目录复制到目录d中
find / -name file1.c 查找文件系统中名字为file1.c的文件
find /usr -name file1.c 查找usr文件夹中名字为file1.c的文件

man ls 查看ls的使用帮助
history 8 查看回溯8条操作指令

shell程序:将一系列linux程序通过流程控制写在一个文本文件中,由shell读取此文本文件并且依次执行文件中的这些程序
(1)gedit中输入代码,如:
        #! /bin/bash  (所有均已#!开头,后跟执行此shell程序的shell解释器完整路径)
        # name    (注释以#开头)
        echo 'Hello'
        echo 'this is a shell file'
(2)保存,文件名a.sh
(3)添加可执行权限 chmod +x a.sh
(4)运行程序   ./a.sh

局部变量:=进行赋值,$用来访问,如:a=1.23 echo $a
环境变量:一个用户的所有进程中都可访问的变量。export查看;echo $变量名,用来访问;export XX=1234用来定义。
为了实现重启后仍然访问定义的环境变量,可在系统配置文件中进行定义。gedit /etc/profile

echo 输出文本或变量的值
cat 文件名 输出文件内容
cat 文件1 文件2 拼接多个文件并输出内容
read 从键盘或文件中读入信息,并赋给一个变量

xdg-open filename 打开jpg\pdf\mp3等格式文件

文件重定向:
指令 > 文件名  将标准输出重定向到一个文件中
指令 >> 文件名  将标准输出以追加的方式重定向到一个文件中
指令 <文件名  指令以文件作为标准输入
指令 <文件名1 > 文件名2  指令以文件1作为标准输入&#xff0c;文件2作为标准输出

反引号&#xff08;tab上面的键&#xff09;用来执行引号中的系统命令&#xff0c;如 echo &#96;date&#96;或者 A&#61;&#96;ls&#96; echo $A


文件测试&#xff1a;
test -d /windows 测试windows是不是一个目录&#xff1b; test -x a.txt 测试文件a.txt是不是可执行

数值测试&#xff1a;2种方法
&#xff08;1&#xff09;test 第一个操作数 比较符 第二个操作数
&#xff08;2&#xff09; [ 第一个操作数 比较符 第二个操作数 ] &#xff08;[后面一定有空格&#xff09;
比较符包括&#xff1a;-eq&#xff08;相等&#xff09; -ne&#xff08;不想等&#xff09;-le&#xff08;小于等于&#xff09;-ge&#xff08;大于等于&#xff09;-gt&#xff08;大于&#xff09;-lt&#xff08;小于&#xff09;
输入$?输出测试结果

字符测试&#xff1a;
&#xff08;一&#xff09;如果测试一个字符串是否为空&#xff0c;则&#xff1a;
&#xff08;1&#xff09;test 比较符 字符串
&#xff08;2&#xff09;[ 比较符 字符串 ]
比较符为-z&#xff08;是否是空字符&#xff09;-n&#xff08;是否是非空字符&#xff09;
输入$?输出测试结果
&#xff08;二&#xff09;如果测试两个字符串是否相等&#xff0c;则&#xff1a;
&#xff08;1&#xff09;test 第一个字符串 比较符 第二个字符串
&#xff08;2&#xff09; [ 第一个字符串 比较符 第二个字符串 ] &#xff08;[后面一定有空格&#xff09;
比较符包括&#xff1a;&#61;&#xff08;相等&#xff09; !&#61;&#xff08;不想等&#xff09;
输入$?输出测试结果

逻辑测试&#xff1a;
[ 表达式 比较符 表达式 ]
比较符包括&#xff1a;-a&#xff08;与&#xff09;-o&#xff08;或&#xff09; !&#xff08;非&#xff09;

if语句&#xff1a;
&#xff08;1&#xff09;    if 条件
            then 命令1
            fi
&#xff08;2&#xff09;    if 条件
            then 命令1
            else 命令2
            fi
&#xff08;3&#xff09;    if 条件1
            then 命令1
            elif 条件2
            then命令2
            else命令3
            fi

for语句
            for 变量名 in 列表
            do
            命令1
            命令2……
            done

case语句
            case 匹配母板 in
            模板1 [ | 模板2 ] … ) 语句组 ;;
            模板3 [ | 模板4 ] … ) 语句组 ;;
            esac

until语句
            until 条件
            do
            命令1
            ……
            done
例如&#xff1a;计算1到100的和
            #! /bin/bash
            # sum.sh
            sum&#61;0
            i&#61;1
            until [ $i -gt 100 ]
            do
                sum&#61;$[$sum&#43;$i]
                i&#61;$[$i&#43;1]
            done
            echo $sum    

转:https://www.cnblogs.com/sxss/p/3618963.html



推荐阅读
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • RN即ReactNative基于React框架针对移动端的跨平台框架,在学习RN前建议最好熟悉下html,css,js,当然如果比较急,那就直接上手吧,毕竟用学习前面基础的时间,R ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文介绍了Cocos2dx学习笔记中的更新函数scheduleUpdate、进度计时器CCProgressTo和滚动视图CCScrollView的用法。详细介绍了scheduleUpdate函数的作用和使用方法,以及schedule函数的区别。同时,还提供了相关的代码示例。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 本文介绍了在Linux中执行.sh脚本时出现/bin/sh^M: bad interpreter: No such file or directory异常的原因分析,并提供了两种解决方法:在Windows下进行编码格式转换,或在Linux中修改文件格式和执行权限。具体操作步骤也在摘要中给出。 ... [详细]
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
  • 原文地址http://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/最开始时 ... [详细]
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • 【技术分享】一个 ELF 蠕虫分析
    【技术分享】一个 ELF 蠕虫分析 ... [详细]
  • golang源码分析调度概述
    golang源码分析-调度过程概述本文主要概述一下golang的调度器的大概工作的流程,众所周知golang是基于用户态的协程的调度来完成多任务的执行。在Linux ... [详细]
author-avatar
arliejun
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有