bash

最新文章

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

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

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

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

bash shell把每行行首的数字移动到行末

可以使用sed和GNU的gawk来实现。示例:123adfdfdsf 234dferere 345rererer 移动后结果为:adfdfdsf123 dferere234 rererer345 sed方法:sed -E 's/^([0-9]+)(.*)/\2\1/' source.txt > target.txt gawk方法:gawk&n

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

Linux bash查找目录下最新的文件

方法一:ls使用-t按时间排序,然后使用head获取前面几条记录:ls -t b2* | head -1 方法二:使用unsetunset -v latest for file in "$dir"/*; do   [[ $file 

bash脚本内获取脚本的真实源路径

脚本如下:#!/bin/bash SOURCE="${BASH_SOURCE[0]}" while [ -h "$SOURCE" ]; do # 查找源码$SOURCE直到脚本为非symlink   TARGET="$(readlink "

Linux检测命令是否存在

兼容POSIX的command如果要兼容POSIX的话可以使用command:command -v <the_command>使用示例:if ! [ -x "$(command -v git)" ]; then   echo 'Error: git

Bash输出错误信息到标准错误stderr

首先要了解文件描述符:文件描述符 0:表示标准输入stdinput文件描述符 1:表示标准输出stdout文件描述符 2:表示标准错误stderr要把信息输出到标准错误,可以把stdout(文件描述符 1)重定向stderr(文件描述符 2),命令如下:>&2 echo "error" 其中echo "e

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

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

读取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脚本变量的使用

问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

The default interactive shell is now zsh

升级macOS,在命令行上执行命令,报错:The default interactive shell is now zsh.To update your account to use zsh, please run `chsh -s /bin/zsh`.For more details, please visit https://support.apple.com/kb/HT208050.这个是提

获取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

curl post请求发送json数据两种方式(Window/Linux)

设置请求头Content-Typecurl发送post请求,默认的content-type是:application/x-www-form-urlencoded。要发送json格式,则需要设置请求头的content-type为application/json。使用-H 或--header参数设置content type:-H "Content-Type: application/json"发送数据