shell

最新文章

Shell脚本使用curl命令发送JSON数据

在Linux使用命令行工具curl发送JSON数据需要把content-type设置为“application/json”。-H "Content-Type: application/json 示例curl -H "Content-Type: application/json" -X POST&nb

Ruby调用shell脚本总结

Ruby可以使用以下几种方法来执行shell脚本。1、使用反引号``调用shell脚本语法`cmd` 返回命令的结果示例`echo "hello"` 2、内置语法%x( cmd ) 其中%x后面为分隔符,上面使用了(作为分隔符,当遇到收括号即表示命令结束。这些分隔符可以为[,{等。示例%x( echo 'hello' 

Linux shell判断字符串是否以某些字符开头

==比较使用bash检查字符串是否以某些字符开头可以使用==比较[[ $str == h* ]]示例str="hello" if [[ $str == h* ]]; then  echo 'yes' fi有两个地方需要注意:h*不需要使用引号括起来,使用引号括起来是直接做相等比较比较语句使

在shell脚本使用sftp登陆远程服务执行命令

有时我们需要定期登陆到远程服务器去去执行一些命令,sftp是一个让我们在shell脚本登陆到远程服务器的工具,这里演示一个例子:echo "sftp start" >> ~/logfile.log sftp username@host <<EOF >> ~/logfile.log

Linux统计目录下所有文件的行数

这里提供两种方法来统计目录下所有文件的行数:1、结合使用find和wc:find . -name '*.pl' | xargs wc -l 另外,此命令也可以改为:( find ./ -name '*.pl' -print0 | xargs -0&n

useradd命令:新建用户

说明useradd命令有两个功能:新建用户以及修改新建用户的默认值。新建用户useradd命令如果没有-D选项,它会使用命令行指定的值加上系统的默认值来新建用户。它根据命令的选项可能会做:新建用户的主目录(一般建在/home/目录下,当然你也可以指定home目录的路径)给新用户创建一个组(group)修改新建用户的默认值useradd命令如果只使用了-D选项,那么它用来显示系统用于新建用户的默认值

userdel命令:删除用户

说明userdel命令用来删除指定的用户,以及与此用户相关的文件。默认只删除用户帐号,不删除相关文件。语法userdel [options] LOGIN LOGIN:被删除的用户名。选项-f:强制删除用户,即使用户当前已登录,但这是一个危险的操作,可能会导致系统的状态不一致。-r:删除用户的同时,删除与用户相关的所有文件。不指定此选项,默认只删除用户账号。相关文件/etc/gr

passwd命令:修改密码

说明修改用户的密码,以及设置密码的相关信息,包括密码过期时间,清空密码等等。语法passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactived

chpasswd命令:批量修改密码

说明chpasswd命令是以批量的模式更新用户的密码。它会从标准输入里读取账号和密码对列表,然后用这些信息更新用户的密码。其中账号密码对的格式为:username:password如果在文件里,一行一个账号密码对。语法chpasswd [options]选项-c Method:指定加密的方法,可用的方法包括:DES, MD5, NONE以及SHA256/SH

chage命令:修改账号密码的过期信息

说明chage命令用来指定修改密码后密码的有效天数。 系统会根据此值来限定用户必须更改密码的日期。语法chage [options] LOGIN LOGIN:用户名选项-m days: 表示密码可更改的最小天数。-M days: 表示密码有效(可更改)的最大天数-E Date :表示在该日期之后密码失效,格式

newusers命令:批量添加用户

说明newusers命令提供了批量添加或更新用户的功能。它允许从文件或者标准输入读取用户信息,如果用户已存在则更新用户的信息,如果用户不存在则创建新用户。每行定义一个用户的信息,每行的格式需要严格按照/etc/passwd文件定义的格式。格式如下:pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shellpw_name:用户名pw_passwd

logname命令:显示登陆用户名

说明显示当前登录用户的用户名。语法logname [OPTION]选项--help:在线帮助;--vesion:显示版本信息。示例显示登陆用户名$logname demo

pwconv命令:转换密码到shadow文件

说明Linux新建用户和组的信息分别存放在/etc/passwd和/etc/group。这两个文件所有的用户都是可以查看的。/etc/passwd格式如下:$less /etc/passwd [clcaza@majing-web ~]$ less /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bi

shell命令在原文件查找和替换字符串

sed在文件直接替换字符串最简单的是使用sed,如sed -i -e 's/abc/XYZ/g' myfile.txt-i[SUFFIX], --in-place[=SUFFIX]表示就地编辑,如果后面提供了后缀,则会把原文件以提供的后缀做备份。-e script, --expression=script指定执行编辑的脚本,这里使用了替换表达式。表达式格式为s/被替换文本/新的文本/gperl也可

在Django shell模拟http请求

首先需要启动django shell(不能使用python shell):manage.py shell在django shell模拟http请求:使用python的requests library使用django的reverse function用法:>>> from django.core.urlresolvers import reverse>>> imp

Shell脚本boolean类型的使用注意点

推荐使用方式在shell脚本里,推荐按以下方式声明和使用布尔类型。bool=trueif [ "$bool" = true ]; thenif [ "$bool" = "true" ]; thenif [[ "$bool" = true ]]; thenif [[ "$bool" = "true" ]]; thenif [[ "$bool" == true ]]; thenif [[ "$bool

读取yaml文件的shell脚本

脚本如下:#!/bin/bashfunction parse_yaml() { local yaml_file=$1 local prefix=$2 local s local w local fs s='[[:space:]]*' w='[a-zA-Z0-9_.-]*' fs="$(echo @|tr @ '\034')" (

Shell脚本正确获取Git当前所在分支的方法

看到一些博文提到获取shell脚本获取git当前分支使用了git branch,类似的方法如下:#!/bin/bash function git.branch { br=`git branch | grep "*"` echo ${br/* /} }实际上,这是一种错误的方法。原因如下:$ git branch * master next $ git checkout master^0

Shell脚本书写规范

在日常的运维工作中,Shell脚本肯定是必不可少的工作内容。为方便问题排查、脚本执行历史问题追踪、方便大家共同维护,从网上搜罗结合以往的经验教训拟定以下Bash脚本书写规范。欢迎各位同学指正或补充。代码风格规范开头有“蛇棒”所谓shebang其实就是在很多脚本的第一行出现的以”#!”开头的注释,他指明了当我们没有指定解释器的时候默认的解释器,一般可能是下面这样:#!/bin/bash当然,解释器有

清空docker所有数据shell脚本

1、停掉所有的容器docker stop `docker ps -qa`2、删除dockers所有容器docker rm `docker ps -qa`3、删除所有镜像docker rmi -f `docker images -qa `4、删除所有volumedocker volume rm $(docker volume ls -qf)删除所有网络设置docker network rm `doc

shell脚本变量的使用

问var=value 在export前后的差在哪? 这次让我们暂时丢开command line,先了解一下bash变量(variable)吧…所谓的变量,就是利用一个固定的”名称”(name),来存取一段可以变化的”值”(value)。1. 变量设定(set)在bash中, 你可以用”=”来设定或者重新定义变量的内容: name=value 在设定变量的时候,得遵守如

Linux shell脚本拼接字符串变量

在shell脚本里,使用${var}引用变量,在双引号表示的字符串里,${var}会使用变量的值替换,示例如下:foo="Hello"foo="${foo} World"echo "${foo}"> Hello World多个字符串变量:a='Hello'b='World'c="${a} ${b}"echo "${c}"> Hello World

获取curl的http response状态码

可以使用以下脚本获取curl请求返回的状态码:curl -w '%{response_code}\n' -so /dev/null $URL其中$URL是一个变量,可以使用实际测试的url替换。如请求百度:curl -w '%{response_code}\n' -so /dev/null https://baidu.com输出结果:302

Linux自定义$PATH环境变量

$PATH变量内容使用echo命令查看$PATH变量的值:$ echo $PATH /home/xx/bin:/home/xx/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/java/jdk/bin:/usr/jav