bash脚本输入密码不回显问题的解决方法 2017年02月06日 71 阅读 不绕圈子,揭晓答案:设置终端状态为“字符不回显”(如果你了解过termios的话,也一定听说过) 方法就是: stty -echo #设置输入字符不回显 #此处用read语句接收用户输入的内容 stty echo #取消不回显状态 ps: 谢谢symclark给出的好建议!他的建议是使用read的-s选项直接就可以实现输入内容不回显,不必像我文章中写的那么麻烦。:)...
shell脚本编程之for语句、if语句使用介绍 2017年02月06日 66 阅读 上部:面向过程:顺序执行选择执行: if, case循环执行: for, while, until一、for语句 格式: for 变量 in 列表;do 语句1; 语句2; ... done 例1、写一个脚本,添加10个用户,并让每个用户的密码同用户名】复制代码 代码如下: #!/bin/bash for I in {1..10}; do useradd user$I; echo user$I | passwd --stdin user$I done 例...
shell去掉文件中空行(空白行)的方法详解 2017年02月06日 68 阅读 本文详细介绍了使用shell去除文件中的空行的方法,学习下sed、awk、shell文件检测的方法,有需要的朋友可以作个参考。本节内容:shell去掉文件中空行1,shell 去掉文件中的空行 复制代码 代码如下:cat filename | sed -e "/^$/d" > filename 2,保留最新的9个文件,其它的文件删除的命令语句 复制代码 代码如下:ls -t | awk "{if(NR>9){print $0}}" |xargs...
Linux shell脚本全面学习入门 2017年02月06日 69 阅读 1. Linux 脚本编写基础1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。 当编辑好脚本时,如果要执行该脚本,还必须使其可执行。 要使脚本可执行:编译 chmod +x filename 这样才能用./filename 来运行1.1.2 注释 在进行shell编程时,以#开头的句...
Hadoop单机版和全分布式(集群)安装 2017年02月06日 60 阅读 Hadoop,分布式的大数据存储和计算, 免费开源!有Linux基础的同学安装起来比较顺风顺水,写几个配置文件就可以启动了,本人菜鸟,所以写的比较详细。为了方便,本人使用三台的虚拟机系统是Ubuntu-12。设置虚拟机的网络连接使用桥接方式,这样在一个局域网方便调试。单机和集群安装相差不多,先说单机然后补充集群的几点配置。第一步,先安装工具软件编辑器:vim复制代码 代码如下:sudo apt-get install vimssh服务器: openssh,...
linux bash中too many arguments问题的解决方法 2017年02月06日 68 阅读 判断一个文件的内容是不是为空,使用语句:if test -z `cat filename`当filename为空或者只有一行没有空格的字符串的时候,一切正常,反之,则会报:too many arguments,甚至是: binary operator expected之类的错误。参考文章:http://www.ibm.com/developerworks/cn/linux/shell/bash/bash-2/index.html原因分析:filename中...
linux bash shell中case语句的实例 2017年02月06日 65 阅读 bash case语句的例子。分享一段bash shell代码,对于学习bash的同学理解case语句的用法,会有帮助。例子:复制代码 代码如下:#!/bin/bash### Program:# File operation# 1.) Open file 2.) Display file 3.) Edit file 4.) Delete file# site: WWW.JB51.NETPATH=/bin:/sbin:/usr/bin:/usr/sbin:/...
shell中case的用法学习笔记 2017年02月06日 70 阅读 shell中的case语句:可以把变量的内容与多个模板进行匹配,再根据成功匹配的模板去决定应该执行哪部分代码。使用格式:case 匹配母板 in模板1 [ | 模板2 ] … ) 语句组 ;;模板3 [ | 模板4 ] … ) 语句组 ;;esaccase语句的匹配是从上往下地匹配顺序。因此,case语句编写的原则是从上往下,模板从特殊到普通。在C语言里,case语句中有default模板,而在shell程序设计中,可能将模板写成*,就可以完成相同的功能。...
一个shell for循环与case结合的脚本(监控程序状态) 2017年02月06日 68 阅读 核心代码:复制代码 代码如下:#/bin/bashset -xHOSTS="nginx mysql php-cgi"for myhost in $HOSTS do count=(`ps aux |grep $myhost |grep -v grep |wc -l`) echo "$myhost" echo "$count"if [ $count -eq 0 ]; then case $myhost in nginx) cd /usr/local/webs...
shell脚本中case条件控制语句的一个bug分析 2017年02月06日 59 阅读 在shell脚本中,发现case语句的一个问题。就是指定小写字母[a-z]和大写字母[A-Z]的这种方法不管用了。出现如下情况:复制代码 代码如下:[root@station1 ~]# cat case.sh#!/bin/bashwhile :doecho -n "input a letter: "read varcase "$var" in [a-z]) echo "Lowercase letter";; [A-Z]) echo "Uppercase l...
shell编程基础之认识与学习BASH 2017年02月06日 64 阅读 1、认识Bash通过Shell将输入的指令与Kernel沟通,让Kernel控制硬件工作查看Shell:cat /etc/shell登录后预设的shell类型记录在/etc/passwd中,与账户相关命令别名:alias lm="ls -al" #注意有无空格帮助:man bash命令类型:type复制代码 代码如下:type ls # ls is aliased to `ls –color=auto"type cat # cat is hashed (/...
linux基础之Shell Script入门介绍 2017年02月06日 67 阅读 linux基础之Shell Script1 Shell Scipt使用指令和基本程序设计结构写成的程序,可以完成复杂的处理流程1.1 程序书写复制代码 代码如下:#!/bin/bash# Program:# This program shows "Hello Wrold" in your screen.# History:# 2013/2/3 on_1y First releasePATH=$PATHexport PATHecho -e "Hello Wo...
更改linux用户登录shell的操作方法 2017年02月06日 63 阅读 1、查看机器安装了哪些shell? 有两种方法可以查看。第一种: [rocrocket@wupengchong ~]$ chsh -l /bin/sh /bin/bash /sbin/nologin /bin/zsh 第二种: [rocrocket@wupengchong ~]$ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/zsh 其实chsh -l也是来查看这个文件。2、查看当前正在使用的sh...
Linux内核链表实现过程 2017年02月06日 65 阅读 关于双链表实现,一般教科书上定义一个双向链表节点的方法如下:复制代码 代码如下:struct list_node{stuct list_node *pre;stuct list_node *next;ElemType data; }即一个链表节点包含:一个指向前向节点的指针、一个指向后续节点的指针,以及数据域共三部分。但查看linux内核代码中的list实现时,会发现其与教科书上的方法有很大的差别。来看看linux是如何实现双链表。双链表节点定义复制代码 ...
linux网络编程用到的网络函数详解用和使用示例 2017年02月06日 66 阅读 一.概念介绍网络程序分为服务端程序和客户端程序。服务端即提供服务的一方,客户端为请求服务的一方。但实际情况是有些程序的客户端、服务器端角色不是这么明显,即互为客户端和服务端。我们编写网络程序时,一般是基于TCP协议或者UDP协议进行网络通信的。TCP:(Transfer Control Protocol)传输控制协议是一种面向连接的协议, 当我们的网络程序使用这个协议的时候,网络可以保证我们的客户端和服务端之间的传输是可靠的。UDP:(User Datag...
给定链表中间节点指针,删除中间节点的方法 2017年02月06日 70 阅读 问题如下输入:链表 a->b->c->d->e中指向节点c的指针输出:无返回值,但新链表变为a->b->d->e解答:想了好久没想出来,看了提示才知道解法的。这里用到了一个小技巧。要删除中间节点,但是我们不知道要删除节点的上一个节点p,所以无法通过修改指针的方法(p->next=del->next)来删除节点,但知道要删除节点的后一个节点,那么我们换一个思路,把要删除的节点的数据与该节点的后一个节点的数...
linux使用select实现精确定时器详解 2017年02月06日 70 阅读 在编写程序时,我们经常会用到定时器。首先看看select函数原型如下:复制代码 代码如下:int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);参数说明:slect的第一个参数nfds为fdset集合中最大描述符值加1,fdset是一个位数组,其大小限制为__FD_SETSIZE(1024),位数组的每一位代表其...
linux shell进度条实现方法 2017年02月06日 70 阅读 直接看代码吧,很简单复制代码 代码如下:#!/bin/bashb=""i=0while [ $i -le 100 ]do printf "progress:[%-50s]%d%% " $b $i sleep 0.1 i=`expr 2 + $i` b=#$bdoneecho...
利用kernel提供的接口打印进程号(pid) 2017年02月06日 70 阅读 c文件printPid.c复制代码 代码如下:#include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/sched.h>#include <linux/list.h>static __init int printPid(void) //安装模块函数{ struct task_st...
python实现Linux异步epoll代码 2017年02月06日 70 阅读 复制代码 代码如下:import socketimport selectif __name__=="__main__": s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) s.bind(("",20123)) s.listen(10) epoll=select.epoll() print s.fil...