linux脚本

Shell脚本语言学习总结

拈花ヽ惹草 提交于 2019-12-01 08:58:46
Shell 是一种脚本程序,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。 编写第一个Shell 程序    在linux命令行执行 [root@iz2zeexr9tk4ckr7dp9vwsz test]# echo "我的第n个shell 程序" 我的第n个shell 程序   打开文本编辑器, 新疆一个名称为xxx.sh的文件,例如:test.sh #!/bin/bash echo "Hello Word !"#编辑完成后使用命令,使test.sh脚本具有执行权限:chmod +x ./test.sh #执行程序./test.sh #控制台输出Hello Word ! #! :是一种约束标记, 它告诉系统使用什么命令执行脚本, 即使用那种shell。 echo:命令用于在控制太输出文本。 chmod +x ./xxx.sh : 使xxx.sh 脚本具有执行权限 Shell 变量   变量名命名规则: 命名只能使用英文字母、下划线、数字,首个字符不能为数字。 中间不能有空格,可以使用(_)代替 不能使用标点符号 不能使用bash里面的关键字, 可以使用help查看关键字,保留字   使用变量    使用一个定义过的变量,只要在前面加上美元符号即可,加花括号是为了帮助解释器识别变量的边界 your_name="你的名称,第一个变量值" echo ${your

LNMP+tomcat部署discuz、dedecms及zrlog

痞子三分冷 提交于 2019-12-01 08:36:41
文章目录 搭建lnmp Mysql的安装 · 移动到安装包存放路径: · 下载MySQL的二进制免编译包: ·解压mysql源码包文件: ·移动解压后的目录并更名: ·移动至mysql目录下: ·创建一个新用户: ·创建datadir的目录: ·初始化mysql,指定用户和data目录: ·修改mysql的配置文件(系统自带): · 将mysql自带的脚本文件移至chkconfig的执行目录下,并定义basedir(程序目录)和datadir: · 定义脚本中的basedir(程序目录)和datadir: · 将脚本文件的权限更改为755: · 将脚本文件加入到chkconfig服务中: · 启动mysql服务 PHP安装 · 相关的依赖包: · 移动到安装包存放路径: · 下载php5源码包: · 解压php5源码包 · 移至解压后的目录下执行命令: · 最后进行编译和安装: · 创建php-fpm用户: · 复制解压目录中的配置模板到php-fpm目录下: · 创建并修改主配置文件: · 创建php-fpm配置文件目录 · 添加discuz论坛的php-fpm配置文件: · 添加dedecms论坛的php-fpm配置文件: · 定时自动切割php-fpm的日志脚本 · 创建php-fpm_logrotate.sh的日志计划任务 · 复制解压后的源码包中的启动脚本: ·

autogen.sh 的使用

那年仲夏 提交于 2019-12-01 07:58:37
在linux下面的大型工程很多都是makefile管理的,但是随着工程越来越大,makefile编写又成了一个大工程,这个时候出现了两个比较流行的工具,cmake和configure,configure又衍生出来一套automake。 我这里记录下发现工程目录下有autogen.sh这个文件的时候,怎么处理工程 安装auto工具 sudo apt-get install autoconf automake libtool 然后正常的情况下直接运行脚本就没得问题了 ./autogen.sh 在运行后,可能遇到很多包和库没有安装,这是环境问题,按照提示安装相应的库就好了,如果不太懂可以百度或者谷歌一下。 在然后脚本会生成一个 configure 的脚本,直接运行就好了 ./configure 运行这个脚本后会生成一个makefile文件,这个时候就是伟大的make登场了 make -j8 make install 来源: https://www.cnblogs.com/luoluosha/p/11671404.html

SHELL脚本

蓝咒 提交于 2019-12-01 07:51:45
一、shell脚本定义   shell是一种特殊的交互式工具,它为用户提供了启动程序、管理文件系统中文件以及运行在系统上的进程的途径。shell一般是指命令行工具。它允许你输入文本命令,然后解释命令,并在内核中执行。shell脚本,也就是用各类命令预先放入到一个文本文件中,方便一次性执行的一个脚本文件。   Mac电脑自带的shell脚本是bash。 二、脚本执行相关命令 $ source FileName 意思:在当前shell环境中读取并执行FileName中的命令 特点:命令可以强行让一个脚本去立即影响当前的环境(一般用于加载配置文件)。    命令会强制执行脚本中的全部命令,而忽略文件的权限。 $ bash FileName 、 $ zsh FileName 意思:重新建立一个子shell,在子shell中执行脚本里面的句子 $ ./FileName 意思:读取并执行文件中的命令。但有一个前提,脚本文件需要有可执行权限。chmod +x 查看当前电脑有多少个shell命令: cd /private/etc cat shells 三、用户、组、权限   Unix和Linux都是多用户、多任务的系统,所以这样的系统里面就拥有了用户、组的概念。那么同样文件的权限也就有相应的所属用户和所属组了。 【 权限 】 【连接】【所有者】 【所属组】 【文件大小】 【最后修改日期】

使用shc加密bash脚本程序

流过昼夜 提交于 2019-12-01 07:46:09
SHC代表shell script compiler,即shell脚本编译器。通过SHC编译过的脚本程序对普通用户而言是不读的,因此如果你想保护你的代码(例如含有密钥),则可以考虑SHC;然而有些人可以通过反向编译的方式破解SHC加密过的脚本。 下面我们开始介绍: 一、使用SHC加密bash脚本程序 1.下载并编译SHC # wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz # tar xvfz shc-3.8.7.tgz # cd shc-3.8.7 # make 你可以在SHC官方网站找到其最新源代码。 现在我们验证SHC是否正确安装: $ ./shc -v shc parse(-f): No source file specified shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script 2.建立一个测试bash脚本 #!/bin/bash echo -n "How many random numbers do you want to generate? " read max for (( start = 1; start <= $max; start++ )) do echo -e

(一)shell脚本的分类

大城市里の小女人 提交于 2019-12-01 07:26:18
Shell分类: Korn Shell (ksh) 较难 较好 好 较好 --AIX Bourne Again (Bash) 难 较好 好 好 –centos 我们可以通过/etc/shells 文件来查询 Linux 支持的 Shell。命令如下: [root@localhost ~]# vi /etc/shells /bin/sh /bin/Bash /sbin/nologin /bin/tcsh /bin/csh (1) Shell脚本的执行方式 1、echo 命令 [root@localhost ~]# echo [选项] [输出内容] 选项: -e: 支持反斜线控制的字符转换(具体参见表 11-2) 转义字符 -n: 取消输出后行末的换行符号(就是内容输出后不换行) 2:shell脚本的执行 (1)赋予执行权限 vi hello.sh #!/bin/Bash #The first program echo hello world chmod 755 hello.sh 赋予执行权限直接执行。 (2)命令执行 bash hello.sh (3)window通过ftp编辑命令 执行shell脚本提示“-bash: ./checkP.sh: /bin/sh^M: bad interpreter: No such file or directory”解决方法 vi 打开文件

你与BAT只差这一套面试题

北城以北 提交于 2019-12-01 06:14:48
1、Linux如何挂载windows下的共享目录? mount.cifs //IP地址/server /mnt/server -o user=administrator,password=123456 linux 下的server需要自己手动建一个 后面的user与pass 是windows主机的账号和密码 注意空格 和逗号 2、如何查看http的并发请求数与其TCP连接状态? netstat -n | awk ‘/^tcp/ {++b[$NF]}’ END {for(a in b) print a,b[a]}’ 还有ulimit -n 查看linux系统打开最大的文件描述符,这里默认1024,不修改这里web服务器修改再大也没用。若要用就修改很几个办法,这里说其中一个: 修改/etc/security/limits.conf * soft nofile 10240 * hard nofile 10240 重启后生效 3、如何用tcpdump嗅探80端口的访问看看谁最高? tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F”.” ‘{print $1″.”$2″.”$3″.”$4″.”}’ | sort |uniq -c | sort -nr | head-5 4、如何查看/var/log目录下的文件数? ls /var/log/

[转帖]linux bash环境变量简单总结

僤鯓⒐⒋嵵緔 提交于 2019-12-01 05:21:55
linux bash环境变量简单总结 来源链接:http://www.178linux.com/8005 原创文章,如有转载,请注明原文地址 需要简单学习一下. 其实 我都是直接放一个 .sh文件到 /etc/profile.d 的目录下面感觉这样最粗暴有效 虽然也可以放 .bash_rc 或者是 .bash_profile 里面 但是 毕竟是单用户的而且不喜欢改 profile 文件 太复杂了 改坏了很麻烦. 一.环境变量简介 Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都 是相同的,这个默认环境实际上就是一组环境变量的定义。 环境变量是全局的,设置好的环境变量可以被所有当前用户所运行的程序所使用。 用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。 常见的环境变量: PATH: 决定了shell将到哪些目录中寻找命令或程序 ROOTPATH: 这个变量的功能和PATH相同,但它只罗列出超级用户(root)键入命令时所需检查的目录。 HOME: 当前用户主目录 USER: 查看当前的用户 LOGNAME: 查看当前用户的登录名。 UID: 当前用户的识别字,取值是由数位构成的字串。 SHELL: 是指当前用户用的是哪种Shell。 TERM : 终端的类型。 PWD 当前工作目录的绝对路径名

学习MySQL:系统管理

懵懂的女人 提交于 2019-12-01 05:03:09
MySQL服务器分发 1.MySQL可用于多个操作系统,包括Linux/Windows/Mac OS X和Oracle Solaris等;本课程仅讲述Linux; 2.MySQL可以作为二进制文件分发和源代码分发的形式提供: - 二进制文件分发:是预编译的,可以运行的程序,可用于Enterprise和Community MySQL Server版本,这些二进制文件是正式的经过Oracle测试的版本; - 源代码分发:不保证与商业代码更新一致,它们也不包括Oracle支持; TIPS:有关可用OS类型的完整列表http://dev.mysql.com/downloads/mysql/; MySQL二进制文件分发 1.用于Linux的二进制文件: - RPM文件可用于基于RPM的Linux分发,例如Oracle Linux;通过使用rpm程序或者通过使用yum等软件包管理器来安装这些文件,每个RPM的安装布局由RPM文件自身内包含的规范文件提供;(使用rpm -qpl 来查看安装时RPM文件内容的位置) - TAR文件可用于多种Linux和UNIX类似系统,要安装这种类型的分发,使用.tar程序在安装目录中解压缩该分发; 2.用于Windows的二进制文件: - 完整分发:包含MySQL安装的所有文件以及配置向导。 - 非安装分发:.zip归档文件,不使用安装或配置向导

git自动提交脚本

蓝咒 提交于 2019-12-01 04:27:31
每次在linux都要重新一遍一遍敲着这些重复的代码,我想着能够优化一下,做个一键脚本,减少重复劳动。 #!/bin/bash git status read -r -p "是否继续提交? [Y/n] " input case $input in [yY][eE][sS]|[yY]) echo "继续提交" git add -A git commit -m $1 git push origin $2 exit 1 ;; [nN][oO]|[nN]) echo "中断提交" exit 1 ;; *) echo "输入错误,请重新输入" ;; esac 实际操作的时候命令行输入:./gitcommit.sh commitMesage branchName就可以了 循环提交脚本 #!/bin/bash git status while true; do read -r -p "是否继续提交? [Y/n] " input case $input in [yY][eE][sS]|[yY]) echo "继续提交" git add -A git commit -m $1 git push origin $2 exit 1 ;; [nN][oO]|[nN]) echo "中断提交" exit 1 ;; *) echo "输入错误,请重新输入" ;; esac done 操作跟单次提交一样 有时候