1. ps -p $$ 一个名为 "$$" (这是shell的特殊参数),表示当前你正在运行的 shell 实例的 PID 2. echo $0 3. echo $SHELL - 永远points to 默认的shell 4. 找出当前 Shell 的版本 bash --version zsh --version tcsh --version echo $BASH_VERSION$($BASHVERSION 或 $ZSHVERSION)…
linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部…
转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在CentOS 6 下运行成功 其它系统请自行修改参数 monitor_man.sh 主程序 check_http_log.sh Nginx的日志分析模块 check_server.sh 检查Nginx和MySQL的运行状态模块 system_monitor.sh 系统状态模块 一共4个脚本文件 放在一个…
Linux自动安装JDK的shell脚本 A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本: $ ./install-jdk.sh B的IP or: $ ./install-jdk.sh "B的IP" "JDK的URI" 就可以在机器B上安装JDK.jdk使用的tar包需要用户自己设定DEFAULT_JDK_SRC=?,保证可以wget得到即可…
一.初识bash shell 1.1 启动 shell   GNU bash shell 能提供对Linux系统的交互式访问.通常是在用户登录终端时启动,登录时系统启动shell依赖于用户账户的配置.etc/passwd文件包含了所有系统用户列表以及每个用户的基本配置信息. 如上图:最后一个字段,告诉用户(root,mysql)使用的是shell程序,是使用bin/bash作为自己的默认shell程序,这意味着当root登录linux系统后,bash shell会自动启动.后面也会讲到dash和…
这次说说「Shell 脚本」. 根据上回的介绍,Shell就是「作为联系Linux和用户的接口而存在的软件」.在Linux环境中,通过Shell来操作系统很普遍. 这里,考虑到有时候可能想要「多次的进行反复的类似操作」,比如定时的系统监视等等. 在这种场合下,需要在Shell中多次的输入同样的命令.非常浪费时间. 上述的场合,可以事前将一系列的操作(准备执行的命令等等)以程序的形式记录在文件中,同时让这个文件可执行.这个文件就是「Shell Script」. 「Script」就是「脚本」的意思.…
<Linux命令.编辑器与shell编程>第三版 学习笔记---001 Linux命令.编辑器与shell编程 Shell准备 1.识别Shell类型 echo  $0 echo $BASH echo $SHELL 上边三个命令结果都是: /bin/bash 2.终端常用操作 a.删除单个字符 c+h或退格键 b.删除单个单词 c+w c.删除单个行 c+u d.重复编辑命令行 arrowUp或arrowDown e.中断命令执行c+C 3.切换为root用户 a.su命令后,输入root密码…
Shell脚本命令的工作方式有两种: 交互式(Interactive):用户每输入一条命令就立即执行. 批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令. 一.编写简单的脚本 一个Shell脚本主要由三部分组成:脚本声明.脚本注释.脚本命令. 脚本声明:告诉系统使用哪种Shell解释器来执行该脚本,比如:#!/bin/bash 脚本注释:以#开头,主要是介绍脚本的功能和某些命令 脚本命令:需要被执行的Linux命令. Shell脚本的名称可以…
1.env (environment 的缩写)和export显示所有环境变量 2. 环境变量说明 环境变量 意义 HOME 用户主文件夹相当于“~” SHELL Linux默认为/bin/bash HISTSIZE history记录的条数 MAIL mail 读取邮件的目录(每个用户不同):/var/spool/mail/root PATH 执行文件查找路径,路径之间用:分隔,查找的顺序为PATH中次序 LANG 语系数据中文:zh_CN.gb2312和zh_CN.UTF-8 RANDOM 随…
■ 变量与环境变量 shell环境通常存在很多变量,变量可以通过echo $VAR或${VAR}的方式查看.set命令可以查看当前环境中的所有变量(包括一般的自定义变量和环境变量) 变量的设置通过简单的赋值命令进行.比如TESTVAR=abc,就是设置了TESTVAR的值为abc(注意等号两边都没有空格,值也不能有空格,有空格就要用引号引起来). 取消变量的设置可以通过unset命令,如unset TESTVAR. 变量中有一些特殊的变量被称为环境变量.环境变量的意义在于它可以被子进程继承,继而…
一.判断式 利用 test 命令进行执行结果的判断(例如判断是否存在该文件):关于test  test:test 示例:结合回传值 $? 进行判断:关于$?:$? [root@localhost tmp]# test -e add.sh;echo $? [root@localhost tmp]# test -e ad1d.sh;echo $? [root@localhost tmp]# test -f add.sh;echo $? [root@localhost tmp]# test -d ad…
特殊的 shell, /sbin/nologin 『无法登入』指的是:『这个使用者无法使用 bash 或其他 shell 来登入系统』而已, 并不是说这个账号就无法使用其他的系统资源! 让某个具有 /sbin/nologin 的使用者知道,他们不能登入主机时, 其实我可以建立 『/etc/nologin.txt 』这个文件, 并且在这个文件内说明不能登入的原因,那么下次当这个用户想要登 入系统时, 屏幕上出现的就会是 /etc/nologin.txt 这个文件的内容,而不是预设的内容了! PAM…
版权声明:本文为博主原创文章,未经博主允许不得转载.部分为转载其他人的,如要使用,也请提前通知一声 https://blog.csdn.net/a136332462/article/details/73469066 如果不知道怎么安装jenkins ,可以参考我的其他文章,linux与windows都有,http://blog.csdn.net/a136332462/article/category/6930401 那么我现在默认你已经安装成功了,咱们就开始吧 1.打开jenkins,点击左上角…
预备知识 1.Shell是解释执行的脚本语言,可以直接调用Linux系统命令 2.文件以.sh结尾, #!bin/bash 标识, 说明这是一个shell脚本, 不能省略 3.执行 赋予权限,直接运行 bash 4.命令执行顺序 (1).绝对路径或相对路径执行的命令 (2).别名[临时:alias vi='vim', 删除unalias: 永久生效: vi /root/.bashrc] (3).bash 内部命令 (4).按照$PATH找到的第一个命令 Linux重定向linux重定向 输入到屏…
背景 前几天在研究线程的时候,看到一句话说java里的线程Thread.run都会在Linux中fork一个的轻量级进程,于是就想验证一下(笔者的机器是Linux的).当时用top命令的时候,进程总是跳来跳去的,看起来很辛苦,有个工具叫htop,支持filter,感觉也没那么直观.根据在网上查到的资料和man top,整理出了两条语句: top -p pgrep java | tr "\\n" "," | sed 's/,$//' top -d 3 -n 100 -…
4.1.1 探查程序 ps 命令 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户进程的进程 显示的当前进程的项目 进程号 运行在哪个终端(tty) 进程占用的CPU时间 Linux系统支持的GNU ps命令支持3个不同的命令行参数 Unix风格的参数,前面加单破折线 常用的参数选项 -ef:查看系统上的所有运行的所有进程 -e:显示所有进程 -f:显示完整格式的输出 显示的列表项目 UID:启动这些进程的用户 PID:进程的进程号 PPID:父进程的进程号(如果该进程是由另一个进程…
linux中批量修改文件名的shell脚本代码,主要是使用了rename,结合shell,喜欢的朋友可以参考下 使用 rename 命令  ========================  NAME  rename - Rename files SYNOPSIS  rename from to file...  ======================== 复制代码代码如下: #! /bin/sh  INIFILE="./dirlist.ini"  CURPATH=$(pwd) …
1. 管道和重定向 文件描述符0:一个程序的标准输入 文件描述符1:标准输出 文件描述符2:标准错误输出 >操作符:把标准输出重定向到一个文件. >>操作符:将输出内容附加到一个文件中. |操作符:连接进程. 2. 作为程序设计语言的shell 2.1 创建脚本 注释以#符号开始. #!字符告诉系统同一行上紧跟在它后面的寻附上参数是用来执行本文件的程序. 2.2 把脚本设置为可执行 chmod +x first 3. shell的语法 3.1 变量 默认情况下,所有变量被看作字符串并以字…
1. 在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器).它类似于DOS下的command和后来的cmd.exe. 2. bash (Bourne Again shell)是众多shell的一种, 但它是Linux 预设的shell. bash 是 GNU 计划中重要的工具软件之一,目前也是 Linux distributions 的标准 shell. 因此, 掌握bash这一个shell就能保证你在linux的世界里畅通无阻了, 当然, 想学习其它…
硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /proc/cpuinfo #查看CPU信息具体信息,如每一个CPU的型号,主频等 内存相关 free -m #概要查看内存情况 这里的单位是MB cat /proc/meminfo #查看内存具体信息 磁盘相关 lsblk #查看硬盘和分区分布,显示非常直观 df -h #查看各分区使用情况 cat /proc/partitions #查看硬盘和分区 mount | column -t #查看挂接的分区状态 网卡相关 lsp…
1.shell的学习. shell的种类比较多,主要有三种: /bin/sh, /bin/csh, /bin/ksh. 查看当前使用的是哪种shell : 命令env (显示当前操作系统的环境变量). 改变shell的种类: chsh -s /bin/csh shell命令补全功能:tab键.两次tab键可以补全命令,一次tab键可以补全文件名. man命令: man command  .可以显示command的用法 history 命令:查看历史命令. history 5 :显示最近使用的5个…
Shell应用技巧 小技巧: 1.命令补全功能: <Tab>键 2.清屏: Ctrl+l 3.删除光标前所有内容: Ctrl+u 4.命令历史记录: history 这时:  !history所列出的命令标号,就可以执行那条命令. 如: !188 而且: 按方向键↑和↓可查找以前执行过的命令. 重要技巧: 1.命令别名: 作用: 可以使操作更加容易,命令能够更加容易记忆. alias: 显示系统已经定义了的别名. 定义别名: alias copy=cp alias drm="rm -…
21.1 为什么要学习Shell编程 (1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理. (2)对于JavaEE和Python程序员来说,工作的需要,你的老大会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本. (3)对于大数据程序员来说,需要编写Shell程序来管理集群. 21.2 Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Sh…
有时候在代码中需要使用到shell命令的情况,下面就介绍一下怎么在C语言中调用shell命令: 这里使用popen来实现,关于popen的介绍,查看 http://man7.org/linux/man-pages/man3/popen.3.html #include <stdio.h> #include <string.h> #include <errno.h> static long get_used_space(const char *dir) { ; ] = &q…
终于到shell 脚本这章了,在以前笔者卖了好多关子说shell脚本怎么怎么重要,确实shell脚本在linux系统管理员的运维工作中非常非常重要.下面笔者就带你正式进入shell脚本的世界吧. 到现在为止,你明白什么是shell脚本吗?如果明白最好了,不明白也没有关系,相信随着学习的深入你就会越来越了解到底什么是shell脚本.首先它是一个脚本,并不能作为正式的编程语言.因为是跑在linux的shell中,所以叫shell脚本.说白了,shell脚本就是一些命令的集合.举个例子,我想实现这样的…
在linux控制台下工作,有时候遇到不懂的单词,想要找个linux下的词典程序,搜寻无果,只好自己动手写个了. 首先获取词典文本文件,在github上找到一个 建立数据库 create database dictdb; 创建表 create table dict(en text,zh text); 导入词典文件 \copy "dict"("en","zh") from '/tmp/word.txt'; vi /usr/bin/dict #/bin…
这次说说关于Shell的东西. 「Shell」是看不见实体的,所以理解起来可能会有些困难. 最近的Linux发行版默认都是用X Window System来操作的(也就是图形化操作),所以很少见到有人会多余的去问「Shell是什么?」 UNIX系的OS的Shell是指「连结OS内核和用户的命令行接口」,命令行接口就是不使用鼠标,通过键盘输入字母文字等来和系统进行交互的接口. 即,Shell就是内核和用户之间通过文字交互的程序. X Window System启动后,同时按下 Ctrl+Alt+F…
在 Linux 下可以利用 Shell 实现 ftp 文件的自动上传和下载,封装至 crontab 更可实现定时调度. 1.ftp自动登录批量下载文件 ##### 从ftp服务器上的/home/data到本地的/home/databackup #### #!/bin/bash ftp -n << ! open 192.168.122.122 user user_name 123456 binary cd /home/data lcd /home/databackup prompt mget *…
转载自 http://blog.csdn.net/hjxhjh/article/details/7909518 1. 前言 Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个 ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我…
为了定时监控Linux系统CPU.内存.负载的使用情况,写了个Shell脚本,当达到一定值得时候,发送邮件通知.需要用到Crontab的定时任务去执行这个脚本,但是发现通过命令(./test.sh)执行Shell文件的时候,可以获取Linux的环境变量;可是通过Crontab做的定时任务,无法获取. 查找资料之后发现,crontab有一个坏毛病,就是它总是不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个 脚本时是成功的,但是到crontab中试图让它定期执行时就是会出…