07shell
halazi100
勤勉务实、守正创新
展开
-
使用indent命令格式化统一C语言源代码风格
indent命令可以用来格式化C语言源文件,实现统一的代码风格。如果没有indent命令,可以先安装ubuntu:sudo apt-get install indentindent命令支持定制自己的风格,只需要添加相应的选项即可;具体选项可以使用man indent命令来查看;使用的时候也很简单# indent -选项 C源文件名如# indent-npro -nbad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli.原创 2020-12-22 16:14:16 · 539 阅读 · 0 评论 -
linux系统shell脚本中使用图形对话框
linux系统中shell图形对话框本文提供两种图形化方法第一种是图形化shell即dialog,另一种是gtk+的zenity;liunx 下的dialog 工具是一个可以和shell脚本配合使用的文本界面下的创建对话框的工具。默认是已安装的,如果没有安装使用以下命令安装sudo apt install dialog每个对话框提供的输出有两种形式:1. 将所有输出到stder...原创 2020-04-17 18:13:38 · 2587 阅读 · 0 评论 -
tar命令压缩解压缩带进度条的实现
tar命令压缩解压缩带进度条的实现需要用到pv命令,默认是已经安装的,如果没有安装参考以下命令yum install pv #centosapt install pv #ubuntubrew install pv #mac# 解压缩pv ${filename} | tar -zxf -# 压缩tar -cf - "${filename}" | pv -s $(($...原创 2020-04-17 16:54:33 · 4053 阅读 · 0 评论 -
Linux终端常用快捷键
Linux终端常用快捷键在命令行中使用这些 linux 快捷键将大大提升效率;<tab> 自动补全;<ctrl-c> 可以在终端中断命令或进程;<ctrl-z> 该快捷键将正在运行的程序送到后台; 通常可以使用 & 选项使程序在后台运行,但如果忘记使用该选项可以使用这对组合键;<ctrl-d> 退出当前终端;如果直接使用一个终端,该...原创 2019-12-11 13:26:46 · 204 阅读 · 0 评论 -
05 shell循环结构
5.1 步进循环语句forfor循环是最简单,也是最常用的循环语句。与其他的程序设计语言一样,for循环都是初学者在学习循环结构时的入门课程。for循环通常用于遍历整个对象或者数字列表。按照循环条件的不同,for循环语句可以分为带列表的for循环、不带列表的for循环以及类C风格的for循环。本节将介绍这3种不同的for循环结构。5.1.1 带列表的for循环语句带列表的for原创 2015-03-13 14:20:00 · 895 阅读 · 0 评论 -
06 shell函数
6.1 函数函数几乎是学习所有的程序设计语言时都必须过的一关。对于学习过其他的程序语言的用户来说,函数可能并不陌生。但是Shell中的函数与其他的程序设计语言的函数有许多不同之处。为了使用户了解Shell中的函数,本节将介绍函数的相关基础知识。6.1.1 什么是函数通俗地将,所谓函数就是将一组功能相对独立的代码集中起来,形成一个代码块,这个代码可以完成某个具体的功能。从上面的定义可原创 2015-03-13 14:19:50 · 575 阅读 · 0 评论 -
07 shell数组
7.1 定义数组所谓数组,是指将具有相同类型的若干变量按照一定的顺序组织起来的一种数据类型。Shell语言对于数组的支持非常强大。在Shell中,用户可以通过多种方式来创建一个数组。为了能够使读者充分了解数组的创建方法,本节将介绍其中最常用的几种数组定义方法。7.1.1 通过指定元素值来定义数组在Shell中,用户可以通过直接指定数组中的元素值来定义一个新的数组变量,其基本语法原创 2015-03-13 14:36:48 · 1185 阅读 · 0 评论 -
08 shell正则表达式
8.1 什么是正则表达式所谓正则表达式,实际上就是用来描述某些字符串匹配规则的工具。由于正则表达式语法简练,功能强大,得到了许多程序设计语言的支持,包括Java、C++、Perl以及Shell等。对于初学者来说,首次接触正则表达式非常难以接受,本节将介绍正则表达式的入门知识,以利于后面几节的学习。8.1.1 为什么使用正则表达式在进行程序设计的过程中,用户会不可避免地遇到处理某些文原创 2015-03-13 14:37:45 · 638 阅读 · 0 评论 -
在shell中kill掉后台子进程
在shell中kill掉后台子进程,如何不显示kill后台进程时的Terminated 提示信息kill后台进程如何屏蔽shell输出kill的消息原创 2015-03-13 14:08:42 · 6014 阅读 · 0 评论 -
09 shell基本文本处理
9.1 使用echo命令输出文本在进行Shell程序设计的过程中,文本的输出非常重要。例如程序为用户提供的提示信息以及程序的执行结果等,这些信息都是作为文本输出的。本节将介绍最简单的文本输出命令echo。9.1.1 显示普通字符串在本书前面几章的例子中,我们已经接触过echo命令了。echo命令的功能就是输出一行文本。在Shell程序中,多用于显示提示信息或者程序产生的数据。e原创 2015-03-13 14:40:08 · 539 阅读 · 0 评论 -
03 Shell变量和引用
3.1 深入认识变量在程序设计语言中,变量是一个非常重要的概念。也是初学者在进行Shell程序设计之前必须掌握的一个非常基础的概念。只有理解变量的使用方法,才能设计出良好的程序。3.1.1 什么是变量顾名思义,变量就是程序设计语言中的一个可以变化的量,当然,可以变化的是变量的值。变量几乎所有的程序设计语言中都有定义,并且其涵义也大同小异。从本质上讲,变量就是在程序中保存用户数据的一原创 2015-03-13 14:12:34 · 482 阅读 · 0 评论 -
02 Shell编程环境的搭建
2.1 在不同的操作系统上搭建Shell编程环境尽管Shell程序一般都是在UNIX或者Linux等操作系统上面运行的,但是,作为开发着来说,他所使用的操作系统却不一定是UNIX或者Linux,完全有可能是Windows等其他的操作系统。本节将介绍在不同的操作系统上面,如何搭建Shell编程环境。2.1.1 在Windows上搭建Shell编程环境如果想要在Windows上面进行S原创 2015-03-13 14:09:40 · 1560 阅读 · 0 评论 -
04 shell条件测试和判断语句
4.1 条件测试为了能够正确处理Shell程序运行过程中遇到的各种情况,Linux Shell提供了一组测试运算符。通过这些运算符,Shell程序能够判断某种或者几个条件是否成立。条件测试在各种流程控制语句,例如判断语句和循环语句中发挥了重要的作用,所以,了解和掌握这些条件测试是非常重要的。4.1.1 条件测试的基本语法在Shell程序中,用户可以使用测试语句来测试指定的条件表达式原创 2015-03-13 14:14:34 · 724 阅读 · 0 评论 -
01 Shell入门基础
1.1 什么是Shell1973年,使用C语言重写编写了Unix。通过这次编写,使得Unix得以移植到其他的小型机上面。1979年,第一个重要的标准UNIX Shell在Unix的第7版中推出,并以作者史蒂夫•伯恩(Stephen Bourne)的名字命名,叫做Bourne Shell,简称为sh。20世纪70年代末,C Shell作为2BSD UNIX的一部分发布,简称csh。原创 2015-03-13 14:08:30 · 405 阅读 · 0 评论 -
14 Shell脚本调试技术
14.1 Shell脚本中的常见错误实际上,编写Shell脚本的过程就是不断排除错误的过程。尤其对于初学者来说,由于不熟悉Shell脚本的语法,会经常出现一些意想不到的错误。本节列出了Shell程序设计中经常出现的错误,从而使得读者在编程时可以避免这些错误的发生。14.1.1 常见语法错误在进行Shell程序设计的时候,语法错误经常出现在关键字书写错误,引号错误,漏掉空格符以及原创 2015-03-13 14:47:47 · 523 阅读 · 0 评论 -
12 shell文件的操作
12.1 文件对于绝大部分的Linux以及UNIX系统管理员来说,他们每天面对的都是各种类型的文件,包括系统配置的更改、软件的安装以及调试。因此,了解Linux中的文件的基础知识非常重要。本节将介绍文件的类型以及文件的权限等。12.1.1 列出文件Linux提供了ls命令来列出某个目录的内容,其基本语法如下:ls [option]... [file]...在上面的语法中原创 2015-03-13 14:46:29 · 425 阅读 · 0 评论 -
shell脚本中用getopts处理用户输入选项和参数
shell脚本中用getopts处理用户输入选项和参数,举例说明使用方法: while getopts :a:b:cdefg opt; do case $opts in a) do sth;; cde) do another;; ?)exit;; esac done 几个重要变量: OPT原创 2015-01-26 11:58:27 · 2950 阅读 · 0 评论 -
linux基本命令-打印相关
打印相关07.01 lp命令用于向打印机输出打印任务 # lp -d printer 100 /etc/passwd/* -d指定将打印任务发送到哪个打印机上 */07.02 lpr命令用于将指定的文件发送给打印机打印 # lpr /etc/shadow //如果不指定打印机,将使用默认的打印机 # lpq //显示打印队列07.03 l原创 2014-12-30 15:31:53 · 799 阅读 · 0 评论 -
10 shell流编辑sed
10.1 sed命令及其语法sed命令是将一系列的编辑命令应用于一批文本的理想工具。sed命令拥有非交互式和高效的特点,可以为用户节约大量的时间。本节将介绍sed命令的基础知识。10.1.1 sed命令以及语法sed命令是一个非交互式的文本编辑器,它可以对来自文本文件以及标准输入的文本进行编辑。其中,标准输入可以是来自键盘、文件重定向、字符串、变量或者是管道的文本。sed命原创 2015-03-13 14:39:56 · 425 阅读 · 0 评论 -
11 shell文本处理利器awk命令
11.1 awk入门awk是一种非常强大的数据处理工具,其本身可以称为是一种程序设计语言,因而具有其他程序设计语言所共同拥有的一些特征,例如变量、函数以及表达式等。通过awk,用户可以编写一些非常实用的文本处理工具。本节将介绍awk的基础知识。11.1.1 awk的功能awk是Linux以及UNIX环境中现有的功能最强大的数据处理工具。简单地讲,awk是一种处理文本数据的编程语原创 2015-03-13 14:41:30 · 1204 阅读 · 0 评论 -
13 子Shell与进程处理
13.1 子ShellShell本身也是一个程序,也可以启动自己的子进程,这些子进程称为子Shell。作为初学者,必须搞清楚子Shell与其父Shell的区别与联系以及Shell命令与子Shell的关系。本节将对子Shell的基础知识进行介绍。13.1.1 什么是子Shell所谓子Shell,实际上是父Shell的一个子进程。子Shell本身也可以创建自己的子进程,从而成为其子原创 2015-03-13 14:47:10 · 764 阅读 · 0 评论 -
bash进行字符串大小写转换
# awk 命令str1="MATCH"str2="match"awk -vs1="$str1" -vs2="$str2" 'BEGIN { if ( tolower(s1) == tolower(s2) ){ print "match" }}'直接使用变量自身转换var1=TesTvar2=tEstecho ${var1,,} ${var2,,} #转换为小写...原创 2018-12-25 09:19:38 · 736 阅读 · 0 评论 -
使用python模拟命令行终端
可以对?显示帮助信息,需要立即获取输入的字符,因此需要用到termios模块另外需要对tab键做处理,当按下tab键时可以进行自动补全#! /usr/bin/env python# coding=utf-8import osimport sysimport ttyimport termios'''Enter: 13Back: 127?: 63C-h: ...原创 2018-03-27 23:41:05 · 7346 阅读 · 2 评论 -
使用python计算文件MD5
需要用到hashlib具体脚本如下#! /usr/bin/env python# coding=utf-8import osimport sysimport hashlibdef md5sum(filename): if not os.path.isfile(filename): return fd = open(filename, "rb") ...原创 2018-03-27 23:37:33 · 468 阅读 · 0 评论 -
快速查看python帮助文档的脚本
由于经常要查看python帮助文档,需要先输入python进入shell交互环境后再依次导入模块并调用help()函数才能查看python的帮助文档,何不动手写一个封装的脚本呢,然后添加为系统命令如pyhelp,直接运行之会更方便快捷。代码如下#! /usr/bin/env python# coding=utf-8import systry: input = raw_inpute...原创 2018-03-27 23:01:18 · 1133 阅读 · 0 评论 -
使用python实现unix2dos和dos2unix命令
由于工作电脑网络限制无法安装unix2dos和dos2unix命令转换文件,自己实现一个直接上代码,保存为python文件如unix2dos.py然后使用命令unix2dos.py {unix2dos|dos2unix} {dirname|filename}#! /usr/bin/env python# coding=utf-8import osimport systry: i...原创 2018-03-27 22:55:40 · 4554 阅读 · 0 评论 -
写一个使用subprocess的sPopen函数执行shell命令的例子
给个以前写的例子#! /usr/bin/env python# class subprocess test of python language# 2015-01-07import subprocessdef popen_test(): # use class subprocess to get child's pid, # return value, stdin, s...原创 2018-03-27 22:51:29 · 946 阅读 · 0 评论 -
shell编程中条件测试的=和==的区别
在某国外shell编程书籍上看到对shell编程的建议中提到,建议在条件测试时使用=而不是==对这个建议表示疑惑,在大多数的编程语言中判断相等一般都是==符号,经过测试=的确也可以用来进行相等判断;但为什么会有尽量使用=而不是==的建议呢。经过查阅资料并实际验证发现,这个建议是为了提交shell编程的兼容性;给出一个例子#!/bin/shWWW=Aif [ "$WWW" == "A" ]; ...原创 2018-03-17 12:12:46 · 6561 阅读 · 1 评论 -
linux下便捷高效地切换当前工作目录的技巧及脚本
使用方式,source以后,直接可以通过--help查看执行dtag --help查看使用帮助执行duntag --help查看使用帮助执行djump --help查看使用帮助# dtag [tag_name] 可以为当前目录创建一个标签# duntag <tag_name> 删除一个指定的标签# djump <tag_name> 跳转到标签指定的目录...原创 2017-04-02 00:29:05 · 1637 阅读 · 1 评论 -
创建自解压文档的脚本
#! /bin/bash## this scripts is used to make un-sparse image files,## then could copy the generated files to Windows and## to make DataIO images## created by longbin ## 2015-01-24## 2015-01-27##原创 2015-10-13 00:00:19 · 1040 阅读 · 0 评论 -
ubuntu搭建android编译环境
ubuntu12.04/14.04安装后搭建android编译环境注安装的是64位ubuntu系统1.更新软件仓库和软件升级将以下代码复制并保存为sh后缀的shell脚本如em_ubuntu_conf.sh然后执行/bin/bash em_ubuntu_conf.sh#! /bin/bash原创 2015-01-31 17:59:16 · 1262 阅读 · 0 评论 -
使用inotify实现实时文件同步的shell脚本
#!/bin/bash src=/data/www/ /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read file do /usr/bin/rsy转载 2015-07-08 18:55:38 · 7159 阅读 · 0 评论 -
inotify用法简介及以之结合rsync实现主机间的文件实时同步
一、inotify简介inotify是Linux内核2.6.13 (June 18, 2005)版本新增的一个子系统(API),它提供了一种监控文件系统(基于inode的)事件的机制,可以监控文件系统的变化如文件修改、新增、删除等,并可以将相应的事件通知给应用程序。该机制由著名的桌面搜索引擎项目beagle引入用于替代此前具有类似功能但存在诸多缺陷的dnotify。inotify既可以监控转载 2015-07-08 18:57:41 · 698 阅读 · 0 评论 -
ubuntu下安装goldendict及离线词库
首先安装goldendict和goldendict-wordnetsudo apt-get install goldendict goldendict-wordnet然后将制作好的离线词库解压到某个目录下,打开goldendict设置词典目录并加载如果要播放离线词库中的语音,还需要安装mplayer及其解码器sudo apt-get install mplayers...原创 2015-03-28 13:24:20 · 13769 阅读 · 3 评论 -
linux网络管理命令-网络服务器
网络服务器24.01 ab命令apache web服务器的处理性能测试工具 # ab http://10.42.100.20/24.02 apachectl命令apache web服务器的控制接口,可以关闭启动或重启apache服务 # apachectl status # apachectl start # apachectl configtest原创 2014-12-31 08:41:30 · 524 阅读 · 0 评论 -
linux网络管理命令-网络测试
网络测试21.01 ping命令ping, ping6 - send ICMP ECHO_REQUEST to network hosts是进行网络测试的命令,用来探测主机与目标主机的网络连接性 # ping www.baidu.com # ping -c 4 www.baidu.com21.02 netstat命令用于显示网络状态 # netstat -r原创 2014-12-31 08:38:20 · 646 阅读 · 0 评论 -
linux系统管理命令-系统安全
系统安全18.01 chroot命令切换操作系统 # mount -t ext3 /dev/sdb1 /mnt # chroot /mnt/18.02 lastb命令用于显示用户异常的登录列表 # lastb # lastb root 18.03 last命令用于显示最近的登录列表,默认读取/var/log/wtmp # last1原创 2014-12-30 15:48:53 · 490 阅读 · 0 评论 -
linux系统管理命令-内核与模块
内核与模块15.01 sysctl命令用于在系统运行时动态改变内核参数,重启后被还原为默认设置 # sysctl -a # sysctl net.core # sysctl net.ipv4.ip_forward=1 打开ip转发功能 # sysctl -a | gerp ip_forward # vi /etc/sysctl.conf 修改后会永久生效15原创 2014-12-30 15:44:48 · 673 阅读 · 0 评论 -
linux系统管理命令-文件系统管理
文件系统管理12.01 mount命令用于挂在指定的文件系统 # mount /dev/cdrom /media # mount -o loop -t iso9660 DVD.iso /mnt12.02 umount命令用于卸载一个已经加载的文件系统 # mount # umount /media12.03 mkfs命令用于创建文件系统,格式化原创 2014-12-30 15:38:12 · 504 阅读 · 0 评论 -
linux系统管理命令-性能监测与优化
性能监测与优化14.01 top命令以实时动态的形式实时展现系统资源的使用情况 # top默认每隔3s刷新一次,也可以按空格手动刷新运行时按k可以输入一个待结束的进程号14.02 uptime命令用于显示系统的运行时间和前一分钟内的平均负载情况 # uptime14.03 free命令用于显示系统中内存的使用情况 # free # fre原创 2014-12-30 15:43:23 · 566 阅读 · 0 评论