-
- Linux shell 中单引号的技巧
一般情况下双引号引用变量。 其实,两组单引号之间也可以直接引用变量。 示例如下:
Var
=Hello
echo''${Var}' World! '
-
- 注意:在某些情况下,变量中不能含有分割符.
-
- 利用sed在行首与行尾添加字符
sed's/^/HEAD&/g'
/path/to/file
sed 's/$/&TAIL/g'
/path/to/file
-
- 利用sed在文件尾部添加行
sed'$a\ADDLINE'
/path/to/file
-
- 利用sed替换大小写
- 将所有字符替换为小写:
echo -n "$TEXT"|sed -r 's/(.*)/\L\1/'
- 将所有字符替换为大写:
echo -n "$text"|sed -r 's/(.*)/\U\1/'
- 将所有字符替换为小写:
- 利用sed替换大小写
-
- wget的POST方法下载
wget --continue --no
-check-certificate \
--header="Cookie: $cookie"
\
--post-data="DATA"
\
"https://domain.name/url"
\
-O "/path/to/File.Name"
-
- curl一般使用方法
curl
-sS --insecure --create-dirs \
--retry 3 --retry-delay 10
\
-H 'Host: domain.name'
\
-H 'User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'
\
-H 'X-Requested-With: XMLHttpRequest'
\
-H 'Referer: https://domain.name'
\
-H 'Cookie: $cookie'
\
-H 'Connection: keep-alive'
\
-b '/tmp/cookie'
\
-c '/tmp/cookie'
\
-X POST -d 'DATA'
\
-L 'https://domain.name/url'
|gzip -dc
-
- Linux修改时区
ln
-sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai"
>/etc/timezone
-
- 时间不对问题
apt-get install
-y ntpdate
ntpdate pool.ntp.org
hwclock --systohc
-
- 修改PHP默认时间
sed -i 's/^;\?date.timezone.*/date.timezone = PRC/g'
/etc/php5/cgi/php.ini
-
- 使Debian支持中文字符,解决乱码问题.
- 运行
- 使Debian支持中文字符,解决乱码问题.
dpkg-reconfigure locales
-
-
- 选择
-
en_US.UTF-8
zh_CNGB2312
zh_CN.GBKGBK
zh_CN.UTF-8UTF-8
-
-
- 选择默认
-
en_US.UTF-8
-
-
- 安装字体
-
apt-get install
-y xfonts-wqy ttf-wqy-zenhei ttf-wqy-microhei
-
-
- 重启
-
reboot
-
- 使用scp命令在Linux主机间传送文件
scp -P $SSHPort -r /Local/Path $RemoteUserName@$RemoteIP:/Remote/Path
-
- 检测IP有效性
IP=1.2.3.4
CHECKIP="$(echo "$IP" | grep -o '\(\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9]\|25[0-5]\)\.\)\{3\}\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9
]\|25[0-5]
\)')"
[ "$IP" == "$CHECKIP" ] && [ "$(echo "$IP" |awk -F '.' '{print NF}')" -eq '4' ] && echo "Ok! " || echo "Error! "
-
- 利用openssl给nginx添加账户密码
echo -n 'MoeClub.org:'>>
/etc/nginx/password
openssl passwd Vicer >>
/etc/nginx/password
-
- 非交互式更改Linux用户的密码
echo -ne "asd123\nasd123\n"
|passwd root
-
- 于iptables相关
#添加名为[NAME] 的Chain
.
iptables-N[NAME]
#清空名为[NAME] 的Chain
下所有规则.
iptables-N[NAME]
#删除名为[NAME] 的空Chain
.
iptables-N[NAME]
-
- iptables前面的规则会先生效,如果后面的规则与前面某条规则发生冲突,则后面的这条规则不会生效.
-
- There is no public key available for the following key IDs
apt-get install -y debian-keyring debian-archive
-keyring
apt-keyupdate
-
- 使用nc命令检测端口
nc-z-v-w 1 127.0.0.1
443
-
- 可使用
$?
-
- 来获取返回参数,0:open,1:close.
-
- 使用sed调换两行的顺序
sed'/lineONE/{h;d;};/LineTWO/G'
-
- 修改Linux系统时间
cp
-f /usr/share/zoneinfo/PRC /etc/localtime
-
- ssh,scp无交互密码登录
sshpass -p $PASSWORD ssh -o StrictHostKeyChecking=no -q -p $PORT root@$IPADDR"COMMAND;"
sshpass -p $PASSWORD scp -P $PORT -o StrictHostKeyChecking=no -q -r $FilePath root@$IPADDR:$FilePath
-
- 申请live后缀邮箱
# 浏览器F12,粘贴即可使用
var sub = window.prompt('msn.com /live.com /live.cn /live.hk /live.jp /live.fr /live.ca /live.de /live.ie /live.in ...\n','live.cn');if(sub){document.getElementById("SingleDomain").value = sub;document.getElementById("idSingleDomain").innerText =
"@"+sub;};
-
- 网易提供的检测是否为大陆IP接口
http://ipservice.163.com/isFromMainland
-
- bilibili检测IP接口
https://api.live.bilibili.com/ip_service/v1/ip_service/get_ip_addr
-
- sed多行合并
sed -n '1h;1!H;$g;s/\n/,/g;$p'
/file/to/path
-
- 指定时区查看时间
TZ=Asia/Tokyo date +"%Y.%m.%d %T"
-
- 去除重复行
cat file |sort -nk2 |sed '$!N; /^\(.*\)\n\1$/!P; D'
-
- 利用awk去除重复行
awk'!i[$0]++'
file
-
- 解决Nginx 413错误
server {
...
client_max_body_size 0;
...
}
-
- 解决利用eval赋值后echo输出URLENCODE的暗坑
echo"$str" |sed 's/\+/%2B/g' |sed 's/\=/%3D/g' |sed 's/\//%2F/g' |xxd -ps |sed 's/0d0a$\|0d$//g'
|xxd -r -ps
-
- 自定义批量修改文件时间(格式:世纪年份月份天数小时分钟.秒数)
Time="$(date +'%C%y%m%d%H%M.%S')"; find . -name "*" -exec touch -t $Time '{}'
\;
-
- 重复内容交集和并集
#并集(重复的行只保留一份)
cat file0 |sort -t';'
-k1 |uniq > file
#交集(只留下重复的行)
cat file0 |sort -t';'
-k1 |uniq -d > file
#只留下非重复行
cat file0 |sort -t';'
-k1 |uniq -u > file
-
- 利用awk进行计算
awk'BEGIN{printf("%.2f\n",'${RX_bytes}'/(1024*1024*1024))}'
;
-
- MySQL数据库备份与恢复
#备份数据
mysqldump -h $host -P $port -u"$username" -p"$password" --databases $db_name
>dump.sql
#还原数据
mysql -h $host -P $port -u"$username" -p"$password" --databases $db_name
CREATE DATABASE IF NOT EXISTS $db_name
;
SOURCE
dump.sql;
#赋予权限
grant all privileges on$db_name.* to $username@$host identified by "$password"
;
#刷新权限
flush
privileges;
#设置密码
set password for $username@$host = password("$password"
);
#删除数据库
drop database if exists $db_name
;
#创建用户
create user $username@$host
;
-
- shell取路径
#path0=/root/test0/test1/test2
#path1=/root/test0/test1/
#path2=/home/test0/
echo${path0%/*}
~# /root/test0/test1
echo${path0/#$path1}
~# test2
echo${path0/#$path1/$path2}
~# /home/test0/test2
-
- 文件描述符及简易通讯
#打开可读写的文件描述符7
exec7<>/dev/tcp/127.0.0.1/222
>/dev/null;
#发送数据到文件描述符7
echo -e "ok \n" >&7
;
#从文件描述符7中获取返回的信息
cat <&7
;
#关闭文件描述符7的输入和输出
exec7
<&-;
exec7
>&-;
#建立的socket链接在 /proc/self/fd 目录下
ls
-l /proc/self/fd
-
- Debian 快速换内核
apt-get install -y linux-image-3.16.0.4-amd
item="${1:-3.16.0-4}"
while [[ -n "$(dpkg -l |grep linux-image |grep -v "$item" |awk '{print $2}')" ]]; do
for kernel in `dpkg -l |grep linux-image |grep -v "$item" |awk '{print $2}'
`
do
if [ -f "/var/lib/dpkg/info/${kernel}.prerm" ]; then
sed -i 's/uname -r/echo purge/'"/var/lib/dpkg/info/${kernel}.prerm"
fi
dpkg --purge "$kernel"
done
done
-
- Redis关闭持久化
sed -i 's/^save/#&/g'
/etc/redis/redis.conf
sed -i 's/^appendonly\ .*/appendonly\ no/g'
/etc/redis/redis.conf
rm -rf /var/lib/redis/*
最新评论
十塊年費是直接從這張卡裡的外幣按匯率扣?
有人申请成功了吗?我的已经两天了,没有消息,没有收到成功邮件。信用卡扣了款!