ls /usr/bin/

info
#路径操作
dirname
basename
#“”和‘’与 ` ` 在shell变量中的区别
“ ” 允许通过$符引用其他变量
‘’禁止引用其他变量符,视为普通字符
`` 将命令执行的结果输出给变量 #执行一个命令,但不保存在命令历史记录中
<space>command
man ascii #并行执行的命令之间添加&,多条命令就可以并行执行。
ls & echo 'aaaaaaaa' & echo 'fesfsfse'
#串行执行命令“&&”。如果要查看一个程序所执行的时间,可以使用命令date&&./需要执行的程序&&date来查看
#shell1 && shell2 ,如果是用&&符连接的,那只有在shell1返回0(即正常)时,shell2才会执行,否则shell2根本就不执行,所以前面说得最后一种cd&&rm的这种做法是可行的,而且是安全的。那||呢,对于shell1||shell2,只有在shell1执行失败时,shell2才会执行,否则shell2是不执行得
常用的 for 循环{
#for循环
a="a b c d e f"
for x in $a; do echo $x+'q'; done
for x in {..}; do echo $x; done
for x in `seq `; do echo $x; done
select a in ; do echo $a; done #创建选择菜单,无限循环
sh -v install.sh #查看执行的代码
sh -n install.sh #语法检查,没有错误不显示内容
f=/home/config.ini
while read -r b; do echo $b+'dada'; done < "$f" #一行一行读取文件
while read b; do echo $b+'dada'; done < $f
while read b; do echo "your input is $b"; done #读入键入的内容
cat .txt |while read line; do echo $line; done #读取文件
for x in `cat .txt`; do echo $x; done #按空格和回车读取文件
}
done & #后台执行循环
echo $SHELL #查看当前环境所使用的shell解释器
#脚本一般第一行为:#!/bin/bash
chsh -l #查看系统支持哪些shell解释器 whereis ls # 查找命令的目录
which # 查看当前要执行的命令所在的路径
echo -n | md5sum # md5加密
vi /etc/hosts # 查询静态主机名
alias # 别名
vmstat # 每隔一秒报告系统性能信息9次
ps aux |grep -v USER | sort -nk + | tail # 显示消耗内存最多的10个运行中的进程,以内存使用量排序.cpu +
uname -a # 查看Linux内核版本信息
stty 用来改变并打印终端行设置的常用命令 >密码
read -t varname # 更简单的方法就是利用read命令的-t选项
iptables -F # 将防火墙中的规则条目清除掉
/etc/init.d/sendmail start # 启动服务
/etc/init.d/sendmail stop # 关闭服务
/etc/init.d/sendmail status # 查看服务当前状态
/date/mysql/bin/mysqld_safe --user=mysql & # 启动mysql后台运行
vi /etc/rc.d/脚本.sh # 开机启动执行 可用于开机启动脚本
/etc/rc.d/rc3.d/S55sshd # 开机启动和关机关闭服务连接 # S开机start K关机stop 55级别 后跟服务名
rsync -avzP -e "ssh -p 22" /dir user@$IP:/dir # 同步目录 # --delete 无差同步 删除目录下其它文件
ifconfig eth0: 192.168.1.221 netmask 255.255.255.0 # 增加逻辑IP地址
mtr -r www.baidu.com # 测试网络链路节点响应时间 # trace ping 结合
echo > /proc/sys/net/ipv4/icmp_echo_ignore_all # 禁ping
ipcalc -m "$ip" -p "$num" # 根据IP和主机最大数计算掩码
ssh -p root@192.168.1.209 CMD # 利用ssh操作远程主机
scp -P 文件 root@ip:/目录 # 把本地文件拷贝到远程主机
scp -r root@192.168.1.209:远程目录 本地目录 # 把远程指定文件拷贝到本地
sshpass -p '密码' ssh -n root@$IP "echo hello" # 指定密码远程操作
ssh -o StrictHostKeyChecking=no $IP # ssh连接不提示yes
du -h 目录 # 检测目录下所有文件大小
du -sh * # 显示当前目录中子目录的大小
#鸟整理
ls -l --full-time #显示具体时间
ls --full-time resource/
LANG=en_US #修改诧系
ls -R resource/ #递归显示 users # 显示所有的登录用户
groups # 列出当前用户和他所属的组
who -q # 显示所有的登录用户
groupadd # 添加组
useradd user # 建立用户
passwd 用户 # 修改密码 chown -R user:group # 修改目录拥有者(R递归)
chown y\.li:mysql # 修改所有者用户中包含点"."
umask # 设置用户文件和目录的文件创建缺省屏蔽值
chgrp # 修改用户组
finger # 查找用户显示信息
echo "xuesong" | passwd user --stdin # 非交互修改密码
useradd -g www -M -s /sbin/nologin www # 指定组并不允许登录的用户,nologin允许使用服务
useradd -g www -M -s /bin/false www # 指定组并不允许登录的用户,false最为严格
usermod -l 新用户名 老用户名 # 修改用户名
usermod -g user group # 修改用户所属组
usermod -d 目录 -m 用户 # 修改用户家目录
usermod -G group user # 将用户添加到附加组
gpasswd -d user group # 从组中删除用户
su - user -c " #命令1; " # 切换用户执行 脚本{ #!/bin/sh # 在脚本第一行脚本头 # sh为当前系统默认shell,可指定为bash等shell
sh -x # 执行过程
sh -n # 检查语法
(a=bbk) # 括号创建子shell运行
basename /a/b/c # 从全路径中保留最后一层文件名或目录
dirname # 取路径
$RANDOM # 随机数
$$ # 进程号
source FileName # 在当前bash环境下读取并执行FileName中的命令 # 等同 . FileName
sleep # 间隔睡眠5秒
trap # 在接收到信号后将要采取的行动
trap "" # 禁止ctrl+c
$PWD # 当前目录
$HOME # 家目录
$OLDPWD # 之前一个目录的路径
cd - # 返回上一个目录路径
local ret # 局部变量
yes # 重复打印
yes |rm -i * # 自动回答y或者其他
ls -p /home # 查看目录所有文件夹
ls -d /home/ # 查看匹配完整路径
echo `ls` #执行 ls
echo -n aa;echo bb # 不换行执行下一句话 将字符串原样输出
echo -e "s\tss\n\n\n" # 使转义生效
echo $a | cut -c2- # 取字符串中字元
echo {a,b,c}{a,b,c}{a,b,c} # 排列组合(括号内一个元素分别和其他括号内元素组合)
echo $((#)) # 二进制转10进制
echo aaa | tee file # 打印同时写入文件 默认覆盖 -a追加
echo {..} # 打印10个字符
printf '%10s\n'|tr " " a # 打印10个字符
pwd | awk -F/ '{ print $2 }' # 返回目录名
tac file |sed ,3d|tac # 倒置读取文件 # 删除最后3行
tail - file # 取最后3行
outtmp=/tmp/$$`date +%s%N`.outtmp # 临时文件定义
:(){ :|:& };: # 著名的 fork炸弹,系统执行海量的进程,直到系统僵死
echo -e "\e[32m....\e[0m" # 打印颜色
echo -e "\033[0;31mL\033[0;32mO\033[0;33mV\033[0;34mE\t\033[0;35mY\033[0;36mO\033[0;32mU\e[m" # 打印颜色
} 变量{
A="a b c def" # 将字符串复制给变量
A=`cmd` # 将命令结果赋给变量
A=$(cmd) # 将命令结果赋给变量
eval a=\$$a # 间接调用
i=&&echo $((i+)) # 计算后打印新变量结果
i=&&echo $[i+] # 计算后打印新变量结果
a=$((>?:)) # 判断两个值满足条件的赋值给变量
A=(a b c def) # 将变量定义为組数
$ $ $* # 位置参数 *代表所有
env # 查看环境变量
env | grep "name" # 查看定义的环境变量
set # 查看环境变量和本地变量
read name # 输入变量
readonly name # 把name这个变量设置为只读变量,不允许再次设置
readonly # 查看系统存在的只读文件
export name # 变量name由本地升为环境
export name="RedHat" # 直接定义name为环境变量
export Stat$nu= # 变量引用变量赋值
unset name # 变量清除
export -n name # 去掉只读变量
shift # 用于移动位置变量,调整位置变量,使$3的值赋给$.$2的值赋予$
name + # 将字符串转换为数字
number " " # 将数字转换成字符串
a=`ps -auxh|grep node|awk '{print $2}'`
for x in seq $a; do kill $x; done #删除node的所有进程
} declare -F #显示当前可见的所有函数
declare -f #查看详细函数代码 ifconfig网卡{
#网卡的常用命令
ifconfig -a #查看所有网卡
ifconfig eth85
ifconfig eth85 down
ifconfig eth85 up
#在eth85网口上,配置IP地址为156.41.50.、子网掩码为255.255.255.0的IP
ifconfig eth85 156.41.50.11 netmask 255.255.255.0
#删除eth85网口上,IP地址为156.41.50.、子网掩码为255.255.255.0的IP
ip addr del 156.41.50.12/ dev eth85
ifconfig eth1: 10.175.102.123 netmask 255.255.252.0 up 配置浮动ip
#防止重启失效
在/etc/sysconfig/network目录下,vi ifcfg-【网卡名称】【Mac地址】
例:ifcfg-eth1 ifcfg-E0::7F:B6:FD:1B
在文件中加入IP信息,并保存文件
BOOTPROTO='static'
STARTMODE='auto'
IPADDR='182.3.1.180'
NETMASK='255.255.0.0'
重启网卡让IP生效 rcnetwork restart eth5
#样例
BOOTPROTO='static'
BROADCAST=''
IPADDR='192.121.1.71'
NETMASK='255.255.255.0'
STARTMODE='auto'
USERCONTROL='no'
FIREWALL='no'
DEVICE=eth1
}
变量{
#赋值时等号两边不能有空格
#在使用变量时,要在变量前面加上符号$,但定义的时候不需要
变量的范围
、未经特殊处理的变量均为全局变量
脚本中定义了的变量可以在该脚本中任何其他地方使用。
注意:函数内部定义的变量也可以在该函数以外使用。
、可以用export把普通变量变成环境变量
环境变量可以被其子进程使用,而普通变量不可以。
export $var
、可以用local来定义一个局部变量
local关键字只能在函数内部使用。
用local定义的变量只能在本函数。
#特殊变量
有些变量是一开始执行Script时就会设定,拥有特定含义,并且不能加以修改的。这些是系统特殊变量:
$ 当前脚本的名称
$n 脚本或函数的第n个参数值,n=..
$* 脚本或函数的所有参数
$# 脚本或函数的参数个数
$$ 当前shell进程的pid
$! 上一个shell后台进程的pid
$? 上一条命令返回值
其他参数:
$CDPATH 包含一系列目录名,cd命令对他们诸葛进行搜索来查找作为参数传递给它的目录;如果该变量未设置,cd命令搜索当前目录
$EDITOR 程序(如e-mail程序)里使用的默认编辑器
$ENV UNIX查找配置文件的路径
$HOME 用户初次登录时的起始目录名
$MAIL 用户的系统邮箱文件的名称
$MAILCHECK shell检查用户邮箱是否有新邮件并将结果通知用户的间隔时间(以秒为单位)
$PATH 包含用户的搜索路径的变量—shell用来搜索外部命令或程序的目录
$PPID 父进程的进程ID
$PS1 系统第一个提示符,一般为$
$PS2 系统第二个提示符,一般为>
$PWD 当前工作目录的名称
$TERM 用户的控制终端的类型.
$LINENO 所在的代码行,一般用来输出错误行号
shift [n] 将命令行参数往左移n位,但$0不变
export 变量名表 将变量名表所列变量传递给子进程
read 变量名表 从标准输入读字符串,传给指定变量
echo 变量名表 将变量名表指定的变量显示到标准输出
set 显示设置变量
env 显示目前所有变量 set命令可以重新设定参数表.如set hello wold命令会设定$*为字符串hello world,$n和$#也同时受影响。
shift命令可以将所有参数左移一个单位,$*、$n、$#均受影响
} 数组{
.初始化
#!/bin/bash
#指定索引值
array1[]=one
array1[]=
echo ${array1[]}
echo ${array1[]}
#全数组初始化
array2=( one two three )
echo ${array2[]}
echo ${array2[]}
#间隔索引
array3=( []=nine []= )
echo ${array3[]}
echo ${array3[]}
#读取键盘输入,空格隔开,换行结束
read -a array4
exit
.操作
!/bin/bash
array=( apple bat cat dog elephant frog )
#打印第一个元素
echo ${array[]}
echo ${array:}
#打印所有元素
echo ${array[@]}
echo ${array[*]}
echo ${array[@]:}
#除了第一个元素,打印所有元素
echo ${array[@]:}
#从第二个元素开始,打印四个元素
echo ${array[@]::}
#第一个元素的长度
echo ${#array[]}
echo ${#array}
#总元素数
echo ${#array[*]}
echo ${#array[@]}
#将元素的a替换为A
echo ${array[@]//a/A}
exit
.遍历
for i in “${array[@]}”
do
#access each element as $i. . .
done
for x in ${b[@]};do echo $x; done
.删除
直接通过:unset 数组[下标] 可以清除相应的元素。
echo ${varlist[*]} unset varlist[]
echo ${varlist[*]} 不带下标,清除整个数据
unset varlist
} sed
{
sed -i 's/cpu/lgj/' sys_info.txt #将修改生效到原文件
常用sed的语法:
. p:打印
sed 'num1,num2p' fileName #打印fileName中的num1到num2行
. s:替换字符串
sed 's/str1/str2/' fileName #把fileName中str1替换成str2(只替换每一行中的第一个str1)
. g:全局
sed 's/str1/str2/g' fileName #把fileName中str1替换成str2(替换所有的)
. y:替换字符
sed 'y/abc/ABC/g' fileName #把fileName中所有的a替换成A,b替换成B,
参数-e:执行一条命令。可以用-e参数给一行一次执行多条命令以提高效率
sed –e 'command1' –e 'command2' …… fileName #文件中的每一行执行命令:command1 #command2 ......
^:行的开头
$:行的结尾
sed 's/^str1/str2/' fileName #把fileName中每行开头的str1替换成str2
sed –e 's/^str1/str2/' –e 's/str1$/str2/' fileName 一些常用场景介绍:
.行的匹配
sed -n '2p' /etc/passwd 打印出第2行
sed -n '1,3p' /etc/passwd 打印出第1到第3行
sed -n '$p' /etc/passwd 打印出最后一行
sed -n '/user/'p /etc/passwd 打印出含有user的行
sed -n '/\$/'p /etc/passwd 打印出含有$元字符的行,$意为最后一行
.插入文本和附加文本(插入新行)
sed -n '/FTP/p' /etc/passwd 打印出有FTP的行
ftp:x:::FTP User:/var/ftp:/sbin/nologin
sed '/FTP/ a\ 456' /etc/passwd 在含有FTP的行后面新插入一行,内容为456
sed '/FTP/ i\ 123' /etc/passwd在含有FTP的行前面新插入一行,内容为123
sed '/FTP/ i\ "123"' /etc/passwd在含有FTP的行前面新插入一行,内容为""
sed '5 a\ 123' /etc/passwd 在第5行后插入一新行,内容为123
sed '5 i\ “12345”' /etc/passwd 在第5行前插入一新行,内容为“”
.删除文本
sed '1d' /etc/passwd 删除第1行
sed '1,3d' /etc/passwd 删除第1至3行
sed '/user/d' /etc/passwd 删除带有user的行
sed -i '/^$/d' ver_info.txt #删除空行
sed 's/remote_gateway_hostname.*/remote_gateway_hostname=/' config.ini #很有用
. 替换文本,替换命令用替换模式替换指定模式,格式为:
[ a d d r e s s [,address]] s/ pattern-to-find /replacement-pattern/[g p w n]
sed 's/user/USER/' /etc/passwd 将第1个user替换成USER,g表明全局替换
sed 's/user/USER/g' /etc/passwd 将所有user替换成USER
sed 's/user/#user/' /etc/passwd 将第1个user替换成#user,如用于屏蔽作用
sed 's/user//' /etc/passwd 将第1个user替换成空
sed 's/user/&11111111111111/' /etc/passwd 如果要附加或修改一个很长的字符串,可以使用( &)命令,&命令保存发现模式以便重新调用它,然后把它放在替换字符串里面,这里是把&放前面
sed 's/user/11111111111111&/' /etc/passwd 这里是将&放后面
. 快速一行命令
下面是一些一行命令集。([ ]表示空格,[ ]表示t a b键)
's / \ . $ / / g' 删除以句点结尾行
'-e /abcd/d' 删除包含a b c d的行
's / [ ] [ ] [ ] * / [ ] / g' 删除一个以上空格,用一个空格代替
's / ^ [ ] [ ] * / / g' 删除行首空格
's / \ . [ ] [ ] * / [ ] / g' 删除句点后跟两个或更多空格,代之以一个空格
'/ ^ $ / d' 删除空行
's / ^ . / / g' 删除第一个字符
's /COL \ ( . . . \ ) / / g' 删除紧跟C O L的后三个字母
's / ^ \ / / / g' 从路径中删除第一个\
's / [ ] / [ ] / / g' 删除所有空格并用t a b键替代
'S / ^ [ ] / / g' 删除行首所有t a b键
's / [ ] * / / g' 删除所有t a b键
如果使用sed对文件进行过滤,最好将问题分成几步,分步执行,且边执行边测试结果。
} cat
{
主要有三大功能:
.一次显示整个文件。$ cat filename
.从键盘创建一个文件。$ cat > filename <<qq
qq
创建fiename文件,追加内容,遇到qq时结束输入
只能创建新文件,不能编辑已有文件.
.将几个文件合并为一个文件: $cat file1 file2 > file cat -n config.ini 显示行编号
}
cut
{
cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
使用说明
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。 主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除
#实例
$ cat /etc/passwd | tail -n | cut -d : -f
postfix
apache
icecream
mysql
news
}
du
{
查看目录的大小
-s 只显示最终结果
-m 以M为单位显示
-k 以K为单位显示
-h 以合适的单位显示
常用:
du –hs ./*
} expect
{ #!/usr/bin/expect -f
if {$argc < 2} {
#打印
  puts stdout "$argv0 err params\n"
  exit 1
}
#行后面不可以加注释
#定义函数
proc do_console_login {login pass} {
puts $login;
puts $pass;
}
#打印参数长度
puts [llength $argv]
#设置变量
#set timeout -1 设置expect永不超时
set timeout 5
#设置超时时间
set user [lindex $argv 0]
#获取脚本运行时带的第一个参数值
set password [lindex $argv 1]
#调用函数
do_console_login $user $password spawn ssh $user@10.175.102.219
#判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间后返回,等待时长就是前面设置的10秒。
#开始匹配后,里面不可以在行后面加注释
expect {
"(yes/no)?" {
send "yes\r"
expect "password:"
send "$password\r"
exp_continue
}
"*assword" {
send "$password\r"
exp_continue
}
} ########## puts 会把所有的打印都放在一起############
#遍历的几种方法:
foreach i { 1 3 5 7 9 } {
puts "$i"
}
#i默认增量是1,即等价incr i 1
puts "---1---"
for {set i 0} {$i < 3} {incr i} {
puts "I inside first loop: $i"
} puts "---2---"
for {set i 3} {$i < 2} {incr i} {
puts "I inside second loop: $i"
} puts "---3---"
set i 0
while {$i < 4} {
puts "I inside third loop: $i"
incr i
puts "I after incr: $i"
} set i 0
incr i
puts "---4---"
puts "$i"
#expect里的加减法
set i [expr {$i + 1}]
puts "---5---"
puts "$i" #替代手工输入,执行命令,每条命令以空格隔开!
if { 1 eq 1 } {
puts "SYNC complete!"
} else {
puts "SYNC error!"
}
#if 的用法
set File "/usr/lgj"
if {[file isfile $File]!=1} {
send_user "$argv0: file $File not found. "
send_user "mkdir $File\n"
send "cd /usr/\r mkdir $File\n"
send "cd lgj\n touch 11.log\r"
}
send_user "for use\n" send_user "read file as print\n"
#################打开原主机中的文件在登陆机上打印################
set fd [open "./test.sh" "r"]
set number 0
# read each line
while { [gets $fd line] >= 0} {
incr number
#puts "Number of lines: $number"
puts $line
}
send_user "read file as cmd\n"
close $fd
#################打开原主机中的文件作为shell命令行在登陆机上执行#####
set fd [open "./lgj.sh" "r"]
set number 0
while { [gets $fd line] >= 0} {
incr number
send "$line\n"
}
close $fd puts "you do next!";
#把控制权交给控制台,这个时候就可以手工操作
interact
}   

linux shell 总结 (整理)的更多相关文章

  1. Linux的经典shell命令整理

    Linux的经典shell命令整理 1.删除0字节文件find -type f -size 0 -exec rm -rf {} \; 2.查看进程按内存从大到小排列ps -e -o “%C : %p ...

  2. 超全整理!Linux shell及常用36类命令汇总

    本文采编自http://blog.csdn.net,作者为ZHXGXN,版权归作者所有! 使用Linux shell是一些程序员每天的基本工作,但我们经常会忘记一些有用的shell命令和技巧.当然,命 ...

  3. Linux Shell 编程基础详解——吐血整理,墙裂推荐!

    第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...

  4. Linux shell 通配符 / glob 模式

    概念 glob 模式(globbing)也被称之为 shell 通配符,名字的起源来自于 Unix V6 中的 /etc/glob (详见 man 文档).glob 是一种特殊的模式匹配,最常见的是通 ...

  5. Linux Shell脚本攻略 读书笔记

    Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...

  6. 常用的shell命令整理

    工作快一年了,shell命令也玩了一年了.还是有点积累的,下面是本人常用的. 1.pwd | xargs -i basename {}   获取当前所在目录的名称 2.ps -ef|grep -w   ...

  7. [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门

    坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/   索引: 什么是shell shell的分类 shell脚本的执行方式   ...

  8. 【学习】Linux Shell脚本编程

    1.脚本的组成和执行 Linux shell脚本的结构并不复杂,其主要由变量.内部命令以及shell的语法结构和一些函数.其他命令行的程序等组成,以下是一个简单的shell脚本. #!/bin/bas ...

  9. 在window上使用 linux shell 删除文件夹递归地

    目的 在windows环境下, 整理代码,代码中含有 .svn 文件夹, 此文件夹在所有受控目录下都存在, 需要统一删除. 但是对windows的shell不熟悉,想用linux rm来删除, 如何实 ...

随机推荐

  1. javaweb基础(36)_jdbc进行批处理

    在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. JDBC实现批处理有两种方式:statement和pr ...

  2. 【Java-Regex】该用正则表达式却偷懒使用 indexOf 引起的BUG

    留着等下写. 背景 Excel列内容,无法获取全部格式,但我们有最终的准确格式. 用准确格式去严格匹配,而不是盲人摸象. 不符合就置为空,符合就.

  3. 121. Best Time to Buy and Sell Stock——Leetcode

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  4. 在windows7上配置xampp虚拟主机

    在设置之前最好关闭xampp1.修改hosts文件进入C:\Windows\System32\drivers\etc目录,找到hosts文件.在# Localhost (DO NOT REMOVE) ...

  5. CI的子目录控制器问题

    不管是根目录还是子目录里面的文件名必须是首字母大写,否则会报404

  6. java对一个int数组进行排序、去重

    思路: 1.使用 HashSet 进行去重 2.将 HashSet 变为 TreeSet 3.使用 TreeSet 进行排序 4.将 Set 变为 Integer 数组 5.将 Integer 数组变 ...

  7. 第34-2题:LeetCode113. Path Sum II

    题目 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ ...

  8. 第33题:LeetCode255 Verify Preorder Sequence in Binary Search Tree 验证先序遍历是否符合二叉搜索树

    题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 考点 1.BST 二叉搜索树 2.递归 思路 1.后序 ...

  9. codeforces757E. Bash Plays with Functions(狄利克雷卷积 积性函数)

    http://codeforces.com/contest/757/problem/E 题意 Sol 非常骚的一道题 首先把给的式子化一下,设$u = d$,那么$v = n / d$ $$f_r(n ...

  10. Ajax跨域请求以及乱码解决

    Ajax跨域请求2种解决方法 1 ) 什么叫跨域请求,协议,域名,端口号,其中一样不同都称跨域; 第一种:使用script标签发送请求; //创建一个script标签; var v_element=d ...