linux脚本

命令行的艺术

人走茶凉 提交于 2019-11-28 21:56:45
WX众号:基因学苑 Q群:32798724 更多精彩内容等你发掘! 以下内容是我在Github上看到的,是一份很好的学习命令行的材料。不知多少次苦口婆心,耳提面命告诉别人要想学好生物信息一定要学会命令行操作。但是呢,书到用时方恨少的,很多东西只有自己强烈需要的时候才会去学的。点击“阅读原文”直达官网。 命令行的艺术 前言 基础 日常使用 文件及数据处理 系统调试 单行脚本 冷门但有用 仅限 OS X 系统 仅限 Windows 系统 更多资源 免责声明 熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。 这篇文章是许多作者和译者共同的成果。这里的部分内容首次出现于 Quora, 但已经迁移到了 Github,并由众多高手做出了许多改进。如果你在本文中发现了错误或者存在可以改善的地方,请贡献你的一份力量。 前言 涵盖范围: 这篇文章不仅能帮助刚接触命令行的新手,而且对具有经验的人也大有裨益。本文致力于做到覆盖面广(涉及所有重要的内容),具体(给出具体的最常用的例子),以及简洁(避免冗余的内容

转  CentOS6 Shell脚本/bin/bash^M: bad interpreter错误解决方

谁说我不能喝 提交于 2019-11-28 21:23:35
场景说明:今天网上找了一个备份mysql的shell脚本,在windows下新建了一个文件,把脚本复制进去,然后保存成.sh文件,上传服务器执行,提示:-bash: ./backup_mysql.sh: /bin/bash^M: bad interpreter: 没有那个文件或目录. 原因说明:网上找了资料才知道 如果这个脚本在Windows下编辑过,就有可能被转换成Windows下的dos文本格式了,这样的格式每一行的末尾都是以\r\n来标识,它的ASCII码分别是0x0D,0x0A。如果你将这个脚本文件直接放到Linux上执行就会报/bin/bash^M: bad interpreter错误提示。 解决方法: 用vi命令打开文件 vi backup_mysql.sh 然后: :set ff? 命令检查一下,看看是不是dos字样,如果是dos格式的,继续执行 :set ff=unix 然后执行 :wq 保存退出即可。 来源: oschina 链接: https://my.oschina.net/u/2246523/blog/681904

linux shell 脚本攻略 下

江枫思渺然 提交于 2019-11-28 21:22:02
sed 入门 sed可以替换给定文本中的字符串,当然也可以用正则表试试匹配 sed 's/pattern/replace_string/' file 或者 cat file | sed 's/pattern/replace_string' 使用-i选项,可以讲替换结果应用于原文件 sed -i 's/text/replace/' file 如果要替换所有的的内容,需要在末尾增加g sed -i 's/pattern/replace/g' file 也可以使用1g 2g 来从第n+1处开始替换 移除空白行 sed '/^$/d' file 其中 ^$ 为行首和行尾 空白行中 行首和行尾是一起的 双引号用来匹配变量 sed "s/$text/Hello" 如果有特殊字符可以使用 sed -i "s#$test#hello#g" awk 通用语法 awk ' BEGIN { print "start" } pattern { commands } END { print "end" } file awk脚本通常由3个部分组成,BENGIN语句块,END语句块,和能够使用模式匹配的通用语句块 awk " BEGIN { statements } {statements} END {end statements }" 例如 awk " BEGIN { i=0 } { i++ } END {

Linux 脚本----PXE脚本

陌路散爱 提交于 2019-11-28 20:19:45
#!/bin/bash #zxs read -p "请输入IP地址:" name read -p "请输入网段:" a read -p "请输入地址池:" b read -p "请输入网关:" c iptables -F &> /dev/null systemctl stop firewalld &> /dev/null setenforce 0 &> /dev/null yum -y install vsftpd &> /dev/null echo $? " ok" [ -d /var/ftp/asd ] || mkdir /var/ftp/asd yum -y install tftp-server syslinux dhcp &> /dev/null rpm -q tftp-server rpm -q dhcp umount /dev/sr0 mount /dev/sr0 /var/ftp/asd sed -i "s/yes/no/g" /etc/xinetd.d/tftp cd /var/ftp/asd/isolinux cp vmlinuz initrd.img /var/lib/tftpboot/ cp /root/anaconda-ks.cfg /var/ftp/ks.cfg chmod 777 /var/ftp/ks.cfg sed -i "s/cdrom/

Linux 脚本----用户脚本作业

我只是一个虾纸丫 提交于 2019-11-28 20:16:45
#!/bin/bash #zxs #用户管理 while true do echo " //==============================\\ | 用户管理系统 | ---------------------------------- | 1、创建用户 | | 2、删除用户 | | 3、锁定用户 | | 4、解锁用户 | | 5、查看用户 | | 6、退出脚本 | ---------------------------------- " #编制 read -p "请输入你的操作选择" number #建立用户 if [ $number = 1 ] then read -p "创建用户名:" user cat /etc/passwd | grep $user &> /dev/null if [ ! $? = 0 ] then useradd $user &> /dev/null && echo "创建成功。" else echo "用户已存在。" fi #删除用户设置 elif [ $number = 2 ] then read -p "输入删除用户:" user cat /etc/passwd | grep $user &> /dev/null if [ $? = 0 ] then userdel $user &> /dev/null && echo "删除用户成功。

Linux 脚本 ----yum脚本

我只是一个虾纸丫 提交于 2019-11-28 20:15:26
#!/bin/bash #Author:zxs systemctl disable firewalld sed -i '7 s/enforcing/disabled/' /etc/selinux/config #构建本地yum仓库 umount /dev/sr0 if [ -e media ] then mount /dev/sr0 /media else mkdir media mount /dev/sr0 /media fi cd /etc/yum.repos.d/ if [ -e z ] then mv C* z/ else mkdir z/ mv C* z/ fi cat << EOF > zxs.repo [zzz] name=zzz baseurl=file:///media enabled=1 gpgcheck=0 EOF yum clean all &> /dev/null && yum makecache &> /dev/null if [ $? -eq 0 ] then echo "OK" else echo "NO" fi 来源: https://www.cnblogs.com/wangjia120/p/11425990.html

pxe装机脚本

跟風遠走 提交于 2019-11-28 20:15:22
#!/bin/bash read -p "请输入IP地址:" name iptables -F systemctl stop firewalld setenforce 0 yum -y install vsftpd &> /dev/null [ -d /var/ftp/asd ] || mkdir /var/ftp/asd yum -y install tftp-server syslinux dhcp &> /dev/null rpm -q tftp-server rpm -q dhcp umount /dev/sr0 mount /dev/sr0 /var/ftp/asd sed -i "s/yes/no/g" /etc/xinetd.d/tftp cd /var/ftp/asd/isolinux cp vmlinuz initrd.img /var/lib/tftpboot/ cp /root/anaconda-ks.cfg /var/ftp/ks.cfg chmod 777 /var/ftp/ks.cfg sed -i "s/cdrom/#cdrom/" /var/ftp/ks.cfg sed -i "s/url/#url/" /var/ftp/ks.cfg sed -i "5a url --url=ftp://${name}/asd" /var/ftp/ks.cfg cp

Linux命令之chattr

不问归期 提交于 2019-11-28 19:58:00
(1).模拟木马程序病原体并让其自动运行   黑客让脚本自动执行的3种方法:1.计划任务;2.开机启动;3.系统命令被人替换,定一个触发事件。  1)生成木马程序病原体 [root@youxi1 ~]# vim /usr/bin/muma  //编写一个木马程序病原体 #!/bin/bash touch /root/a.txt while true do echo `date` >> /root/a.txt sleep 5 done [root@youxi1 ~]# chmod +x /usr/bin/muma  //添加执行权限 [root@youxi1 ~]# muma &  //后台运行测试一下 [1] 1440 [root@youxi1 ~]# ps aux | grep muma root 1440 0.0 0.1 113176 1436 pts/0 S 11:27 0:00 /bin/bash /usr/bin/muma root 1453 0.0 0.0 112720 984 pts/0 R+ 11:27 0:00 grep --color=auto muma [root@youxi1 ~]# kill -9 1440 [root@youxi1 ~]# cat a.txt 2019年 08月 26日 星期一 11:27:10 CST 2019年 08月 26日 星期一

shell脚本

烂漫一生 提交于 2019-11-28 19:17:53
Shell入门: 1、用户空间用来跑应用程序 2、shell程序用来做人机交互 3、shell程序以单行命令来执行,缺乏逻辑关系。 4、Python与shell的区别:使用shell来实现Linux的批量处理,而不是去开发应用程序 5、ipython:是Python的交互式shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。 6、程序是执行某个功能的一段代码。程序必须包含的两个要素:指令(即命令),数据(由变量提供),还需要一个逻辑关系(可有可无) 7、date命令查看系统时间,hwclock(clock)命令查看硬件时间 8、chroot命令:切换根文件系统。l临时根文件系统,加载磁盘驱动文件 9、在开发语言中Tab键叫做制表符(\t,代表四个空格建) 10、bash的特性: ①命令历史(history) 作用:查看之前使用的命令 关于命令历史的文件(每个用户家目录下的.bash_history,在关机的时候会自动写入一次,重启后还会有。将内存中的命令历史手动写入:history -r) 关于命令历史的变量(环境变量) 查看环境变量:env、set(查看更详细的环境变量参数) 记录历史数量(HISTSIZE=1000) (HISTCONTRUL=ignoredups(忽略重复的历史命令

shell脚本--重定向

泪湿孤枕 提交于 2019-11-28 19:17:48
重定向与管道符 一、重定向--tr 程序=指令(命令)+数据(由变量提供) 重定向分为三类:标准输入重定向、标准输出重定向、错误重定向 数据输入:键盘-----标准输入,但并不是唯一输入方式 标准输入:例 useradd cqy; | passwd --stdin “cqy”(给用户cqy添加密码) 例如:功能添加用户 useradd.sh user.txt文本文档1000个用户 数据输出:显示器----标准输出,但并不是唯一的输出方式 Ls /etc/ >a.txt fd文件标识符 0-9,常用的被定义的为0(标准输出),1(标准输入),2(错误输入输出(标准错误)) 虚拟文件系统VFS,用来做翻译,文件系统格式ext2、ext2、reiserfs、FAT、NTFS、iso9660等。 常见重定向符号 1、标准输出:>覆盖重定向【非常危险】(set -C(关闭覆盖重定向的功能,set +C加上覆盖重定向的功能;>|强制重定向))set用来查看环境标量 C >>追加重定向(不覆盖) 2、标准输入:< tr(替换文件内容) tr set1 [set2] <file.txt        << 将多行数据同时输入 1 2 3 4 5 6 7 8 9 Cat >> a.txt<<EOF >1 >2 >3 >EOF  3、错误输出:2> 2>> 不需要输出内容,只需要输出状态; Ls