linux shell 总结 (整理)
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
创建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 总结 (整理)的更多相关文章
- Linux的经典shell命令整理
Linux的经典shell命令整理 1.删除0字节文件find -type f -size 0 -exec rm -rf {} \; 2.查看进程按内存从大到小排列ps -e -o “%C : %p ...
- 超全整理!Linux shell及常用36类命令汇总
本文采编自http://blog.csdn.net,作者为ZHXGXN,版权归作者所有! 使用Linux shell是一些程序员每天的基本工作,但我们经常会忘记一些有用的shell命令和技巧.当然,命 ...
- Linux Shell 编程基础详解——吐血整理,墙裂推荐!
第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...
- Linux shell 通配符 / glob 模式
概念 glob 模式(globbing)也被称之为 shell 通配符,名字的起源来自于 Unix V6 中的 /etc/glob (详见 man 文档).glob 是一种特殊的模式匹配,最常见的是通 ...
- Linux Shell脚本攻略 读书笔记
Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...
- 常用的shell命令整理
工作快一年了,shell命令也玩了一年了.还是有点积累的,下面是本人常用的. 1.pwd | xargs -i basename {} 获取当前所在目录的名称 2.ps -ef|grep -w ...
- [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门
坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/ 索引: 什么是shell shell的分类 shell脚本的执行方式 ...
- 【学习】Linux Shell脚本编程
1.脚本的组成和执行 Linux shell脚本的结构并不复杂,其主要由变量.内部命令以及shell的语法结构和一些函数.其他命令行的程序等组成,以下是一个简单的shell脚本. #!/bin/bas ...
- 在window上使用 linux shell 删除文件夹递归地
目的 在windows环境下, 整理代码,代码中含有 .svn 文件夹, 此文件夹在所有受控目录下都存在, 需要统一删除. 但是对windows的shell不熟悉,想用linux rm来删除, 如何实 ...
随机推荐
- nutzwk运行后wk-web中生成ehcache.disk.store.dir有什么用,怎么去掉
nutzwk运行后wk-web中生成ehcache.disk.store.dir有什么用,怎么去掉 发布于 29天前 作者 qq_96c46988 64 次浏览 复制 上一个帖子 下一个帖 ...
- 2018.9.5 Java中使用栈来模拟队列
栈的规律是是先进后出 队列的规律是先进先出 栈模拟队列 首先我们定义两个栈,一个放数据,一个出数据,判断B栈是否有元素,有元素则直接pop:没有元素则需要我们将A里面的元素出栈然后放到B里面,再取出, ...
- 2017.11.29 JSP+Servlet 中功能验证码及验证的实现
源代码如下: validate.jsp <%@ page language="java" import="java.util.*" pageEncodin ...
- jQuery UI datepicker z-index默认为1 怎么处理
最近在维护一个后台系统的时候遇到这样的一个坑:后台系统中日期控件使用的是jQuery UI datepicker. 这个控件生成的日期选择框的z-index = 1.问题来了.页面上有不少z-inde ...
- IE问题——列表项图像
等我们实现列表时,经常会遇到一种情况:需要为列表的每一项的前面添加一个列表项图像. 我们在查阅W3C时会发现,在CSS中已经为我们提供了实现方法——“list-style-type”,我们来看看它的实 ...
- AngularJS THML DOM
AngularJS为HTML Dom元素属性提供了绑定应用数据的指令. data-ng-disabled指令直接提供了绑定应用程序的数据到HTML元素的disabled属性. <!DOCTYPE ...
- Javascript入门笔记1-script标签
1.script标签在HTML文件中添加JavaScript代码. JavaScript代码只能写在HTML文件中吗?当然不是,我们可以把HTML文件和JS代码分开,并单独创建一个JavaScript ...
- 【ACM之行】◇第一站◇ 2018HDU多校赛总结
◇第一站◇ 2018HDU多校赛 十场多校赛下来,也算是给一个初中生开了眼界……看着清华一次次AK(默默立下flag),看着自己被同校的高中生完虐,一个蒟蒻只能给dalao们垫脚
- 10^9以上素数判定,Miller_Rabin算法
#include<iostream> #include<cstdio> #include<ctime> #include<string.h> #incl ...
- Golang反射机制
Go反射机制:在编译不知道类型的情况下,可更新变量.在运行时查看值.调用方法以及直接对它们的布局进行操作. 为什么使用反射 有时需要封装统一接口对不同类型数据做处理,而这些类型可能无法共享同一个接口, ...