英国雷迪RD1000非金属管线探测仪

Linux awk 命令

Linux 命令大全 Linux 命令大全

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。

之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。

语法

awk [选项参数] 'script' var=value file(s)

awk [选项参数] -f scriptfile var=value file(s)

选项参数说明:

  • -F fs or –field-separator fs
    指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:。
  • -v var=value or –asign var=value
    赋值一个用户定义变量。
  • -f scripfile or –file scriptfile
    从脚本文件中读取awk命令。
  • -mf nnn and -mr nnn
    对nnn值设置内在限制,-mf选项限制分配给nnn的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。
  • -W compact or –compat, -W traditional or –traditional
    在兼容模式下运行awk。所以gawk的行为和标准的awk完全一样,所有的awk扩展都被忽略。
  • -W copyleft or –copyleft, -W copyright or –copyright
    打印简短的版权信息。
  • -W help or –help, -W usage or –usage
    打印全部awk选项和每个选项的简短说明。
  • -W lint or –lint
    打印不能向传统unix平台移植的结构的警告。
  • -W lint-old or –lint-old
    打印关于不能向传统unix平台移植的结构的警告。
  • -W posix
    打开兼容模式。但有以下限制,不识别:/x、函数关键字、func、换码序列以及当fs是一个空格时,将新行作为一个域分隔符;操作符**和**=不能代替^和^=;fflush无效。
  • -W re-interval or –re-inerval
    允许间隔正则表达式的使用,参考(grep中的Posix字符类),如括号表达式[[:alpha:]]。
  • -W source program-text or –source program-text
    使用program-text作为源代码,可与-f命令混用。
  • -W version or –version
    打印bug报告信息的版本。

基本用法

log.txt文本内容如下:

2 this is a test
3 Are you like awk
This's a test
10 There are orange,apple,mongo

用法一:

awk '{[pattern] action}' {filenames}   # 行匹配语句 awk '' 只能用单引号

实例:

# 每行按空格或TAB分割,输出文本中的1、4项
 $ awk '{print $1,$4}' log.txt
 ---------------------------------------------
 2 a
 3 like
 This's
 10 orange,apple,mongo
 # 格式化输出
 $ awk '{printf "%-8s %-10s\n",$1,$4}' log.txt
 ---------------------------------------------
 2        a
 3        like
 This's
 10       orange,apple,mongo
 

用法二:

awk -F  #-F相当于内置变量FS, 指定分割字符

实例:

# 使用","分割
 $  awk -F, '{print $1,$2}'   log.txt
 ---------------------------------------------
 2 this is a test
 3 Are you like awk
 This's a test
 10 There are orange apple
 # 或者使用内建变量
 $ awk 'BEGIN{FS=","} {print $1,$2}'     log.txt
 ---------------------------------------------
 2 this is a test
 3 Are you like awk
 This's a test
 10 There are orange apple
 # 使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
 $ awk -F '[ ,]'  '{print $1,$2,$5}'   log.txt
 ---------------------------------------------
 2 this test
 3 Are awk
 This's a
 10 There apple

用法三:

awk -v  # 设置变量

实例:

 $ awk -va=1 '{print $1,$1+a}' log.txt
 ---------------------------------------------
 2 3
 3 4
 This's 1
 10 11
 $ awk -va=1 -vb=s '{print $1,$1+a,$1b}' log.txt
 ---------------------------------------------
 2 3 2s
 3 4 3s
 This's 1 This'ss
 10 11 10s

用法四:

awk -f {awk脚本} {文件名}

实例:

 $ awk -f cal.awk log.txt

运算符

运算符 描述
= += -= *= /= %= ^= **= 赋值
?: C条件表达式
|| 逻辑或
&& 逻辑与
~ 和 !~ 匹配正则表达式和不匹配正则表达式
< <= > >= != == 关系运算符
空格 连接
+ – 加,减
* / % 乘,除与求余
+ – ! 一元加,减和逻辑非
^ *** 求幂
++ — 增加或减少,作为前缀或后缀
$ 字段引用
in 数组成员

过滤第一列大于2的行

$ awk '$1>2' log.txt    #命令
#输出
3 Are you like awk
This's a test
10 There are orange,apple,mongo

过滤第一列等于2的行

$ awk '$1==2 {print $1,$3}' log.txt    #命令
#输出
2 is

过滤第一列大于2并且第二列等于’Are’的行

$ awk '$1>2 && $2=="Are" {print $1,$2,$3}' log.txt    #命令
#输出
3 Are you

内建变量

变量 描述
$n 当前记录的第n个字段,字段间由FS分隔
$0 完整的输入记录
ARGC 命令行参数的数目
ARGIND 命令行中当前文件的位置(从0开始算)
ARGV 包含命令行参数的数组
CONVFMT 数字转换格式(默认值为%.6g)ENVIRON环境变量关联数组
ERRNO 最后一个系统错误的描述
FIELDWIDTHS 字段宽度列表(用空格键分隔)
FILENAME 当前文件名
FNR 各文件分别计数的行号
FS 字段分隔符(默认是任何空格)
IGNORECASE 如果为真,则进行忽略大小写的匹配
NF 一条记录的字段的数目
NR 已经读出的记录数,就是行号,从1开始
OFMT 数字的输出格式(默认值是%.6g)
OFS 输出记录分隔符(输出换行符),输出时用指定的符号代替换行符
ORS 输出记录分隔符(默认值是一个换行符)
RLENGTH 由match函数所匹配的字符串的长度
RS 记录分隔符(默认是一个换行符)
RSTART 由match函数所匹配的字符串的第一个位置
SUBSEP 数组下标分隔符(默认值是/034)
$ awk 'BEGIN{printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n","FILENAME","ARGC","FNR","FS","NF","NR","OFS","ORS","RS";printf "---------------------------------------------\n"} {printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n",FILENAME,ARGC,FNR,FS,NF,NR,OFS,ORS,RS}'  log.txt
FILENAME ARGC  FNR   FS   NF   NR  OFS  ORS   RS
---------------------------------------------
log.txt    2    1         5    1
log.txt    2    2         5    2
log.txt    2    3         3    3
log.txt    2    4         4    4
$ awk -F\' 'BEGIN{printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n","FILENAME","ARGC","FNR","FS","NF","NR","OFS","ORS","RS";printf "---------------------------------------------\n"} {printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n",FILENAME,ARGC,FNR,FS,NF,NR,OFS,ORS,RS}'  log.txt
FILENAME ARGC  FNR   FS   NF   NR  OFS  ORS   RS
---------------------------------------------
log.txt    2    1    '    1    1
log.txt    2    2    '    1    2
log.txt    2    3    '    2    3
log.txt    2    4    '    1    4
# 输出顺序号 NR, 匹配文本行号
$ awk '{print NR,FNR,$1,$2,$3}' log.txt
---------------------------------------------
1 1 2 this is
2 2 3 Are you
3 3 This's a test
4 4 10 There are
# 指定输出分割符
$  awk '{print $1,$2,$5}' OFS=" $ "  log.txt
---------------------------------------------
2 $ this $ test
3 $ Are $ awk
This's $ a $
10 $ There $

使用正则,字符串匹配

# 输出第二列包含 "th",并打印第二列与第四列
$ awk '$2 ~ /th/ {print $2,$4}' log.txt
---------------------------------------------
this a

~ 表示模式开始。// 中是模式。

# 输出包含 "re" 的行
$ awk '/re/ ' log.txt
---------------------------------------------
3 Are you like awk
10 There are orange,apple,mongo

忽略大小写

$ awk 'BEGIN{IGNORECASE=1} /this/' log.txt
---------------------------------------------
2 this is a test
This's a test

模式取反

$ awk '$2 !~ /th/ {print $2,$4}' log.txt
---------------------------------------------
Are like
a
There orange,apple,mongo
$ awk '!/th/ {print $2,$4}' log.txt
---------------------------------------------
Are like
a
There orange,apple,mongo

awk脚本

关于 awk 脚本,我们需要注意两个关键词 BEGIN 和 END。

  • BEGIN{ 这里面放的是执行前的语句 }
  • END {这里面放的是处理完所有的行后要执行的语句 }
  • {这里面放的是处理每一行时要执行的语句}

假设有这么一个文件(学生成绩表):

$ cat score.txt
Marry   2143 78 84 77
Jack    2321 66 78 45
Tom     2122 48 77 71
Mike    2537 87 97 95
Bob     2415 40 57 62

我们的 awk 脚本如下:

$ cat cal.awk
#!/bin/awk -f
#运行前
BEGIN {
    math = 0
    english = 0
    computer = 0
 
    printf "NAME    NO.   MATH  ENGLISH  COMPUTER   TOTAL\n"
    printf "---------------------------------------------\n"
}
#运行中
{
    math+=$3
    english+=$4
    computer+=$5
    printf "%-6s %-6s %4d %8d %8d %8d\n", $1, $2, $3,$4,$5, $3+$4+$5
}
#运行后
END {
    printf "---------------------------------------------\n"
    printf "  TOTAL:%10d %8d %8d \n", math, english, computer
    printf "AVERAGE:%10.2f %8.2f %8.2f\n", math/NR, english/NR, computer/NR
}

我们来看一下执行结果:

$ awk -f cal.awk score.txt
NAME    NO.   MATH  ENGLISH  COMPUTER   TOTAL
---------------------------------------------
Marry  2143     78       84       77      239
Jack   2321     66       78       45      189
Tom    2122     48       77       71      196
Mike   2537     87       97       95      279
Bob    2415     40       57       62      159
---------------------------------------------
  TOTAL:       319      393      350
AVERAGE:     63.80    78.60    70.00

另外一些实例

AWK 的 hello world 程序为:

BEGIN { print "Hello, world!" }

计算文件大小

$ ls -l *.txt | awk '{sum+=$5} END {print sum}'
--------------------------------------------------
666581

从文件中找出长度大于 80 的行:

awk 'length>80' log.txt

打印九九乘法表

seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'

更多内容:

Linux 命令大全 Linux 命令大全

1 篇笔记 写笔记

  1.    z977690557

      977***557@qq.com

    102

    awk、sed、grep更适合的方向:

    •  grep 更适合单纯的查找或匹配文本
    •  sed 更适合编辑匹配到的文本
    •  awk 更适合格式化文本,对文本进行较复杂格式处理

    关于awk内建变量个人见解,简单易懂

    解释一下变量:

    变量:分为内置变量和自定义变量;输入分隔符FS和输出分隔符OFS都属于内置变量。

    内置变量就是awk预定义好的、内置在awk内部的变量,而自定义变量就是用户定义的变量。

    •  FS(Field Separator):输入字段分隔符, 默认为空白字符
    •  OFS(Out of Field Separator):输出字段分隔符, 默认为空白字符
    •  RS(Record Separator):输入记录分隔符(输入换行符), 指定输入时的换行符
    •  ORS(Output Record Separate):输出记录分隔符(输出换行符),输出时用指定符号代替换行符
    •  NF(Number for Field):当前行的字段的个数(即当前行被分割成了几列)
    •  NR(Number of Record):行号,当前处理的文本行的行号。
    •  FNR:各文件分别计数的行号
    •  ARGC:命令行参数的个数
    •  ARGV:数组,保存的是命令行所给定的各参数

    自定义变量的方法

    •  方法一:-v varname=value ,变量名区分字符大小写。
    •  方法二:在program中直接定义。

Linux 按文件列表拷贝文件到指定目录并保持原有的目录结构

当需要拷贝多个文件并且需要保留源文件的目录树结构时, 如果源目录的文件比较纯净,没有其他相关的文件或目录时, 我们只需要执行

~$ #cp -r <源目录> <新目录>
~$ cp -r workspace/project workspace/Cpp
12

但是, 如果我们需要拷贝的文件所在的目录里包含了其他项目或程序的文件或目录, 那我们就不能这么干

比如,

  • 在 /etc或者/usr/local/bin下面有很多我们自己项目的相关配置文件和程序文件, 并且我们知道这些文件路径

  • 包含指定字符串的文件名, 比如 *.log

  • 我们自己制作或者我们比较感兴趣的其他厂商的 *.deb程序包(Ubuntu使用软件包)

针对自己的项目配置文件

我们可以新建一个文本文档, 里面把我们所关心的文件列出来

list.txt

/etc/app/app.cnf
/etc/app/conf.d/a.cnf
/etc/app/conf.d/b.cnf
/etc/app/conf.d/c.cnf
/etc/app/conf.d/d.cnf
12345

这样我们就可以通过使用 cat list.txt 获取到我们的文件路径列表

此时我们只需要使用

~$ cp --parent $(cat list.txt) .
1

就可以将列表里面的所有文件按照原有的目录树结构拷贝到当前目录(或者使用其他目录)

针对包含指定字符串的文件名我们可以用 find 命令获取到文件列表

~$ find /opt/ros/ -name *.a
/opt/ros/kinetic/lib/liboctomath.a
/opt/ros/kinetic/lib/libcsm-static.a
/opt/ros/kinetic/lib/liboptions.a
/opt/ros/kinetic/lib/libegsl.a
/opt/ros/kinetic/lib/liboctomap.a
~$
1234567

然后, 嘿嘿

~$ cp --parent $(find /opt/ros -name *.a) .
1

这不就都按照源目录结构拷贝到当前目录了嘛

针对.deb包的文件列表, 我们也有命令可以获取到路径列表

~$ dpkg -L mysql-server-5.7 
/etc
/etc/mysql
/etc/mysql/mysql.conf.d
/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
/etc/mysql/debian-start
/etc/mysql/mysql.cnf
/etc/apparmor.d
/etc/apparmor.d/usr.sbin.mysqld
/etc/logrotate.d
/etc/logrotate.d/mysql-server
/etc/init.d
/etc/init.d/mysql
/etc/logcheck
/etc/logcheck/ignore.d.server
/etc/logcheck/ignore.d.server/mysql-server-5_7
/etc/logcheck/ignore.d.workstation
/etc/logcheck/ignore.d.workstation/mysql-server-5_7
/etc/logcheck/ignore.d.paranoid
/etc/logcheck/ignore.d.paranoid/mysql-server-5_7
/etc/init
/etc/init/mysql.conf
~$ 
123456789101112131415161718192021222324

linux复制指定目录下的全部文件到另一个目录中
复制指定目录下的全部文件到另一个目录中
文件及目录的复制是经常要用到的。linux下进行复制的命令为cp。
假设复制源目录 为 dir1 ,目标目录为dir2。怎样才能将dir1下所有文件复制到dir2下了
如果dir2目录不存在,则可以直接使用
cp -r dir1 dir2
即可。
如果dir2目录已存在,则需要使用
cp -r dir1/. dir2
如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。
ps:dir1、dir2改成对应的目录路径即可。

cp -r /home/www/xxx/statics/. /home/www/statics
如果存在文件需要先删除
rm -rf /home/www/statics/*
否则会一个个文件提示你确认,使用cp -rf 也一样提示

————————————–

linux下cp整个文件夹的文件到另一个文件夹
cp -ri A/B/* A1/B1/ 回车
若复制过程中询问是否覆盖,输入y按回车,若不想看到提示直接覆盖使用-rf
另外若A A1不在同一目录下,最好填绝对路径,就是/xxx/xxx/A/B/* /xxx/A1/B1/

实例:

cp -ri /home/server/tomcat/* /home/server/test/

cp: target `/home/server/test/’ is not a directory
需要先创建目标文件夹
mkdir /home/server/test

————————————–
copy命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。
语法: cp [选项] 源文件或目录 目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
该命令的各选项含义如下:
– a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
– d 拷贝时保留链接。
– f 删除已经存在的目标文件而不提示。
– i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
– p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
– r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
– l 不作拷贝,只是链接文件。

需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
例1
复制指定目录下的全部文件到另一个目录中
文件及目录的复制是经常要用到的。linux下进行复制的命令为cp。
假设复制源目录 为 dir1 ,目标目录为dir2。怎样才能将dir1下所有文件复制到dir2下了
如果dir2目录不存在,则可以直接使用
cp -r dir1 dir2
即可。
如果dir2目录已存在,则需要使用
cp -r dir1/. dir2
如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。
ps:dir1、dir2改成对应的目录路径即可。
例2
复制指定文件到指定文件夹
首先建立一个用于测试的目录,用’tree’命令查看
可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*。tes文件
目标是保持当前的目录结构,只把txt文件复制出来

方法一:当不需要的文件类型较为单一时,可以通过完全复制然后删除指定类型的文件完成
Step1 使用命令 cp -r test/ test2 将测试目录test下所有内容完全复制到test2

Step2 组合使用find及xargs,将*.tes文件删除
xargs是给命令传递参数的一个过滤器,可以将前一个命令产生的输出作为后一个命令的参数
命令find test2/ -name ‘*.tes’ |xargs rm -rf, 即将find产生的输出(test2目录下的所有tes文件),作为rm的参数,从而完全删除
适用场景举例:把项目文件备份,要去除其中的.svn文件,可以采用这种方式

方法二:需要的文件为单一类型,带目录结构复制
这种情况下可以使用tar命令将指定类型的文件打包,然后解包,同样需要组合使用find和xargs

Step1 建立目录test3
mkdir test3

Step2 将指定类型文件带目录结构打包
find test/ -name ‘*.txt’ |xargs tar czf test3.tgz

Step3 解包到目录test3
tar zxvf test3.tgz -C test3

适用场景:较为普遍,例如可以复制某个Web项目的所有html/jsp/php文件;或复制其他项目中特定类型的源文件

一、方法
列表:frp.txt
目录: /home/dir

在文件前加入cp
sed “s/^/cp /g” frp.txt >frp2.txt
在文件后加入 /home/dir
sed ‘s/$/& \/home\/dir/g’ frp2.txt> frp3.txt

以上全并成一个:
sed ‘/./{s/^/cp /;s/$/& \/home\/dir/}’ frp.txt > frp4.txt

二、方法
cp $(cat frp.txt) /home/dir
OR
cp `cat frp.txt` /home/dir

find / -name ‘frp*’ |xargs tar czf frp-dir.tgz

cp –parent $(cat list.txt) .

联想M73小主机黑苹果 篇一:黑苹果在线安装U盘制作

img

2020-08-13 11:27:43 66点赞 497收藏 114评论

很久之前一直想使用mac os系统,但是囊中羞涩,没钱买正版的,用自己的笔记本制作黑苹果,不是很完美,蓝牙无法驱动,所以放弃了,上次在B站上看到了up主:司波图的联想m73的黑苹果教程,立马去淘宝淘了一套硬件回来,组装黑苹果。

这次的黑苹果是捡垃圾,因为我并没有使用大型软件,所以看看网页,看看文档,挺好的,性能也是够用的,以下是我的配置清单

黑苹果在线安装U盘制作

淘宝购买截图

黑苹果在线安装U盘制作

主机的装机就不详细展示了,相信大家玩准系统也知道咋装。

下面开始黑苹果U盘的制作

1、下载黑苹果U盘制作工具包

下载地址:

坚果云:

[百度网盘: ](https://post.smzdm.com/p/a5k48qwk/(密码:c156)

2、安装U盘恢复镜像恢复工具

首先解压下载的工具包会得到4个文件夹

黑苹果在线安装U盘制作

打开0.安装环境文件夹,安装里面的2个软件

黑苹果在线安装U盘制作

黑苹果在线安装U盘制作

安装python的时候必须将底部的add python3.8 to PATH选项勾选上,否则无法调用。

3、下载U盘所需文件

打开1.0创建U盘文件夹

黑苹果在线安装U盘制作

进入gibMacOS-master文件夹

黑苹果在线安装U盘制作

双击gibMacOS.bat文件,会出现以下界面

黑苹果在线安装U盘制作

等待下载完成,会出现以下界面

黑苹果在线安装U盘制作

在命令框中输入r,然后回车,会出现以下选项

黑苹果在线安装U盘制作

可以用鼠标滚轮查看选项,看你的第五个选项和我上图的第五个是否一样,如果是在下面界面输入数字5,如果你的选项5和我的不一样请查找到和我上图一样的选项,并在下面界面输入对应的数字,然后回车

黑苹果在线安装U盘制作

黑苹果在线安装U盘制作

等待其下载完成即可,下载完成会出现以下界面

黑苹果在线安装U盘制作

这时,你的gibMacOS-master文件夹中会多出一个名为macOS Downloads的文件夹

黑苹果在线安装U盘制作

4、安装U盘的写入制作

进入macOS Downloads的文件夹

黑苹果在线安装U盘制作

然后点击publicrelease文件夹进入

黑苹果在线安装U盘制作

然后点击061-94461 – 10.15.6 macOS文件夹

黑苹果在线安装U盘制作

单击macOSUpd10.15.6Recovery这个文件,然后按住shift,单击右键,选择复制文件路径

然后插入U盘到电脑上

这时回到1.创建U盘->进入gibMacOS-master文件夹,双击MakeInstall.bat文件

黑苹果在线安装U盘制作

出现以下界面

黑苹果在线安装U盘制作

输入你U盘对应到数字并加上字母O并回车,此步骤会将U盘清空,请备份好U盘文件

黑苹果在线安装U盘制作

出现以下界面让你确认,这时输入小写字母y

黑苹果在线安装U盘制作

输入y后会清除你的U盘,清除过程会出现以下界面,这属于正常现象

黑苹果在线安装U盘制作

清除完毕后出现以下界面,请直接粘贴你前面复制到路径,按住键盘ctrl+v即可,然后回车

黑苹果在线安装U盘制作

黑苹果在线安装U盘制作

后面会出现以下界面,属于正常现象,在获取oc到时候可能速度会很慢,自己想办法解决,因为这是走github上下载,所以速度较慢

黑苹果在线安装U盘制作

黑苹果在线安装U盘制作

黑苹果在线安装U盘制作

黑苹果在线安装U盘制作

然后关闭对话框即可,可以在此电脑中看到多出一个名为boot到U盘,此时U盘制作已完成

这个安装u盘可以使用在任何电脑上,非联想m73的只需要将我下面的efi替换为自己机型对应版本的efi即可。

5、安装U盘的调整

进入名为BOOT的U盘中,删除里面的EFI文件夹

黑苹果在线安装U盘制作

打开2.EFI文件夹,

黑苹果在线安装U盘制作

复制里面的EFI文件夹到BOOT的U盘中

黑苹果在线安装U盘制作

黑苹果在线安装U盘制作

此时,EFI文件已经替换完成,我们还需要将EFI文件中的序列号改变,以免登陆不了你的苹果ID

打开3.修改序列号文件夹

黑苹果在线安装U盘制作

我们首先打开GenSMBIOS-master文件夹

黑苹果在线安装U盘制作

黑苹果在线安装U盘制作

双击GenSMBIOS.bat文件,出现以下命令对话框

黑苹果在线安装U盘制作

在这个对话框中输入数字3,然后回车

黑苹果在线安装U盘制作

然后出现下面对话框,在对话框中输入iMac14,1 (这里的iMac14,1一定要在英文状态下输入)

黑苹果在线安装U盘制作

然后会出现下面的序列号,这里的序列号是随机的

黑苹果在线安装U盘制作

这时,我们的将序列号生成完毕,我们现在需要修改EFI文件中的序列号了,我们打开3.修改序列号->ProperTree-master文件夹

黑苹果在线安装U盘制作

双击ProperTree.bat文件

黑苹果在线安装U盘制作

会自动出现下面界面

黑苹果在线安装U盘制作

我们点击File->Open,然后出现对话框,我们选择名为BOOT的U盘,打开EFI文件夹,选择config.plist文件,点击打开按钮

黑苹果在线安装U盘制作

会出现以下界面,

黑苹果在线安装U盘制作

我们点击Plantformlnfo前面的➕号,可以看到以下界面

黑苹果在线安装U盘制作

这时,我们将刚刚生成的序列号中的Serial复制,然后粘贴到上面界面中的SystemSerialNumber里面去,这里我们需要双击原本的序列号,将其删除然后粘贴新的序列号即可,在命令对话框中,我们选中需要复制的内容,点击右键即可复制完成

黑苹果在线安装U盘制作

按照上述方法将生成的Board Serial复制后替换MLB后面的序列号;将生成的SmUUID复制后替换SystemUUID后面的序列号即可完成所有的替换

黑苹果在线安装U盘制作

替换完成后点击File->Save,或者按ctrl+s即可保存,这是关闭软件,弹出U盘即可使用,在后面的篇2中我会讲述如何使用制作好的U盘安装macOS。

Frp内网穿透安装教程#Frpc OpenWrt客户端安装

服务端安装教程:(Frp第一篇)Frp内网穿透安装教程#Frps服务端一键安装脚本#

注意事项:在OpenWrt环境下,一定要先安装frpc客户端再安装图形操作界面 luci-app-frpc,要不就会出问题。不要问我怎么知道的,反正按着我的步骤装就好。

一、路由器安装Frp客户端Frpc,按下面的操作步骤。目前最新版本是0.33.0-1

二、路由器安装Frp图形操作界面 luci-app-frpc

1、通过ssh 登录路由器后台。并下载文件到路由器中

项目下载地址:https://github.com/kuoruan/luci-app-frpc/releases

2、安装软件

  1. #安装 luci-app-frpc
  2. opkg install luci-app-frpc_1.2.1-1_all.ipk
  3. #安装中文语言包
  4. opkg install luci-i18n-frpc-zh-cn_1.2.1-1_all.ipk

3、安装成功后Frpc图形管理界面就能在路由器的管理界面看到了。位置:路由器管理界面 -> 服务 -> Frpc

4、设置frp服务端配置

5、常规设置,按照如下配置即可。

6、最后设置内网穿透的规则即可。贴个我自己的配置,如果累心是http或者是https就不需要配置远程端口,因为在配置服务端的时候就指定好了。如果类型是TCP或UDP就要设置远程端口。

 

linux中scp命令使用技巧详解(传输速度)

linux中scp命令使用技巧详解(传输速度)

解,希望此方法对大家会帮助。

scp 命令

scp 可以在 2个 linux 主机间复制文件;

命令基本格式:
scp [可选参数] file_source file_target

======
从 本地 复制到 远程
======
* 复制文件:
* 命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
* 例子:
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3

* 复制目录:
* 命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder

第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
* 例子:
scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/
scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录

======
从 远程 复制到 本地
======
从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;

例如:
scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3
scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

最简单的应用如下 :

scp 本地用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2

[ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

可能有用的几个参数 :

-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

-C 使能压缩选项 .

-P 选择端口 . 注意 -p 已经被 rcp 使用 .

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .
注意两点:
1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:
#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。

加速scp传输速度

结论
声明:这里给出的测试数据不具有一般性,仅供参考。测试与数据本身特性有很大关系,本文使用InnoDB的redo log作为测试数据。

* 改变ssh加密算法,可以让速度更快;通常,越弱的加密算法,速度越快

* 通常压缩会降低scp速度,但这与数据类型有很大关系,对压缩率非常高的数据启用压缩,可以加速

* 压缩级别对传输效率影响很小

* 用于完整性校验的不同MAC( message authentication code)算法,对性能约有10%-20%的影响。

所以,简单尝试如下,让你的SCP速度double一下:

scp -r -c arcfour128 …
scp -r -c aes192-cbc …
scp -r -c arcfour128 -o “MACs umac-64@openssh.com” … 注:启用压缩使用参数: -o “Compression yes”

2. 测试数据:加密算法和压缩的影响
这里对比了12种ssh中实现的加密算法和是否使用压缩的传输效率,测试文件使用的是InnoDB的1GB*4的日志文件(注意:不同类型的文件测试结果会很不同),这里纵坐标单位为MB/s,数据分为压缩传输和不压缩传输两组:

screen-scp-compare-cipher-compression

原始数据:scp_speed.txt

可以看到,不同加密算法传输速度相差很大;使用了压缩之后,速度下降很多,也看到不同加密算法加密后区别并不大。

3. 关于是否启用压缩
* 压缩只有在网络传输速度非常慢,以致于压缩后节省的传输时间大于压缩本身的时间,这时才有效果,所以是否启用压缩,需要实际测试

* 压缩比很低的数据,不要再启用压缩(例如已经压缩过的数据、视频等)

* 通常建议,传输前先压缩,而不是使用ssh的压缩;建议使用pigz/lbizp2等并行压缩工具

* 数据中大量重复、空洞,这类适合压缩的数据,可以尝试压缩选项,例如如下是一组,大量”空洞”数据的测试:

chart_1

看到,压缩大大提高了传输效率

4. “压缩级别”对传输速度影响不大
最后一组对比是,将压缩级别从1改到9,对比传输速度,纵坐标单位MB/s,对12种加密算法分别使用了测试9个压缩级别,数据如下:

screen-scp-compare-compression-level

大图链接 原始数据:scp-compression-level.txt

可以看到,压缩级别对传输影响较小。ssh使用的默认压缩级别是6。

5. 测试数据:完整性校验算法MACs选择
通过选项Macs可以设置对应的哈希算法,man ssh_config可以看到支持哪些哈希算法。这里对了比了12中加密算法下使用不用的完整性校验算法的性能情况:

screen-scp-compare-macs-all

看到,绝大数情况下”umac-64@openssh.com”(关于此哈希)性能都更好,所以建议尝试使用此哈希算法做验证,看看你的场景下速度是否与提升。也可以看到,默认的hmac-md5哈希在默认的加密aes128-ctr下表现比较好;

scp命令详解(全)

 更新时间:2015年08月11日 11:28:56   作者:wtx
这篇文章主要介绍了scp命令,scp如何做远程拷贝,下面小编帮助大家解决有关scp命令相关知识,需要的朋友可以参考下

svn 删除所有的 .svn文件

复制代码代码如下:
find . -name .svn -type d -exec rm -fr {} \;

linux之cp/scp命令+scp命令详解

名称:cp

使用权限:所有使用者

使用方式:

1
2
3
cp [options] source dest
cp [options] source... directory

说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。

把计

-a 尽可能将档案状态、权限等资料都照原状予以复制。

-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。

-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。

范例:

将档案 aaa 复制(已存在),并命名为 bbb :

cp aaa bbb

将所有的C语言程式拷贝至 Finished 子目录中 :

cp *.c Finished

命令:scp

不同的Linux之间copy文件常用有3种方法:

第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。

第二种方法就是采用samba服务,类似Windows文件copy 的方式来操作,比较简洁方便。

第三种就是利用scp命令来进行文件复制。

scp是有Security的文件copy,基于ssh登录。操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上,可以如下命令。

scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root

然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始copy了。

如果想反过来操作,把文件从远程主机copy到当前系统,也很简单。

linux之cp/scp命令+scp命令详解(转) – linmaogan – 独木★不成林scp root@/full.tar.gz 172.19.2.75:/home/root/full.tar.gz home/daisy/full.tar.gz

linux 的 scp 命令 可以 在 linux 之间复制 文件 和 目录;

==================
scp 命令
==================
scp 可以在 2个 linux 主机间复制文件;

命令基本格式:
scp [可选参数] file_source file_target

======
从 本地 复制到 远程
======
* 复制文件:
* 命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
* 例子:
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3

* 复制目录:
* 命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder

第1个指定了用户名,命令执行后需要再输入密码;

第2个没有指定用户名,命令执行后需要输入用户名和密码;

* 例子:

scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/
scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录

======
从 远程 复制到 本地
======
从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;

例如:

scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3
scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

最简单的应用如下 :

scp 本地用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2

[ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

可能有用的几个参数 :

-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

-C 使能压缩选项 .

-P 选择端口 . 注意 -p 已经被 rcp 使用 .

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .

注意两点:

1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:

#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator

2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。

scp远程拷贝

SSH提供了一些命令和shell用来登录远程服务器。在默认情况下它不允许你拷贝文件,但是还是提供了一个”scp”命令。假定你想把本地计算机当前目录下的一个名为”dumb”的文件拷贝到远程服务器www.foobar.com上你的家目录下。而且你在远程服务器上的帐号名为”bilbo”。可以用这个命令:
scp dumb bilbo@www.foobar.com:.
把文件拷贝回来用这个命令:
scp bilbo@www.foobar.com:dumb .

scp命令是SSH中最方便有用的命令了,试想,在两台服务器之间直接传送文件,仅仅用scp一个命令就完全解决了。

你可以在一台服务器上以root身份运行#scp servername:/home/ftp/pub/file1 . 这样就把另一台服务器上的文件/home/ftp/pub/file1直接传到本机器的当前目录下,当然你也可以用#scp /tmp/file2 servername:/boot 把本机上的文件
/tmp/file2送到另一台机器的/boot目录下。

而且整个传送过程仍然是用SSH加密的。

1:拷贝本地文件到远程机器上:

scp 本地文件名 账号@192.168.80.80:远程机器目录

例:scp /home/test root@192.168.80.80:/home/testdir/

2:拷贝远程机器上的文件到本地:

scp 账号@192.168.80.80:文件全路径 本地目录

例:scp root@192.168.80.80:/home/testdir/test /home/testdir/

scp root@10.5.0.1:/root/firewall.tar.gz ./
scp /home/cheney/full.tar.gz root@10.5.0.1:/home/root/
scp -r root@10.5.0.1:/mail/* ./ (拷贝整个目录下的所有文件)

需要输入相应的用户名和密码

scp是有Security的文件拷贝,基于ssh登录。

不同的Linux之间拷贝文件常用有3种方法:

第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的拷贝。
第二种方法就是采用samba服务,类似Windows文件复制的方式来操作,比较简洁方便。
第三种就是利用scp命令来进行文件拷贝。

以上内容是本文关于scp命令详解全部内容,希望对大家有所帮助。

修改WordPress上传文件大小限制的三种方法

我们手动安装插件,手动上传附件,多媒体文件时,WordPress的媒体文件上传可以看到,大多数都是2MB或者8MB。如果是图片的话可能会还够用,但是如果是音频和视频文件就不一定够用了,今天要分享的方法就是增大文件上传限制的大小。不过如果你的主机商有特别严格的限制,本文的方法就不确定可以实现了。一般的主机商都可以实现。

通过.htaccess修改限制

在网站根目录的 .htaccess 文件中添加如下代码。

php_value upload_max_filesize 64M

php_value post_max_size 64M

php_value max_execution_time 300

php_value max_input_time 300

通过php.ini破除限制

新建一个php.ini文件,在你的主机空间的根目录新建一个php.ini文件,或者修改Php目录下的PHP.ini里面使用如下代码。

upload_max_filesize = 64M

post_max_size = 64M

max_execution_time = 300

通过functions.php破除限制

在functions.php中添加如下代码,这样上传限制就是64M

@ini_set( ‘upload_max_size’,’64M’ );

@ini_set( ‘post_max_size’,’64M’);

@ini_set( ‘max_execution_time’,’300′ );

建议

WP是用Php语言开发,建议通过修改php目录下的Php.ini文件来破除上传文件大小的限制。

总结

以上是编程之家为你收集整理的修改WordPress上传文件大小限制的三种方法全部内容,希望文章能够帮你解决修改WordPress上传文件大小限制的三种方法所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

解决debian 10 中文安装后出现乱码的问题

由于安装debian选择语言时选择了简体中文安装,但内核没有中文字库,导致某些字符显示为乱码(菱形,方块)。

解决办法:运行下面两行的命令

apt-get install locales
dpkg-reconfigure locales

进入语言设置界面:

其中,空格键为选取/取消,Tab键为切换到确认选择。

通过方向键与空格键选择en_us.UF-8,其余全部取消,然后按Tab选择<Aceptar>,回车进入下一个界面:

选择es_US.UTF-8,回车。然后用locale命令查看一下情况:

这样乱码的错误就解决了。

实例操作:

aptitude install locales
dpkg-reconfigure locales

界面下使用方向键左右翻页,空格键选中(选中en_us.utf8、zh_CN GB2312、zh_CN.GBK GBK、zh_CN.UTF-8 UTF-8)
使用tab键切换ok 和 cancel,回车确认
然后第二个界面设置本地语言为zh_CN.UTF-8

1
export LANG=zh_CN.UTF-8

终端记得相关选项调整为utf 8

DEBIAN下中文显示

一.首先检查LOCALE情况

说明:DEBIAN因为基于GNU所以,对不同地域进行了不同的包支持,以LOCALE形式存在。

1.挂载ISO文件包,前8个ISO包就可以(这里不在讲述)。

2.启动终端

#apt-get install locales

3.重新配置LOCALE

#dpkg-reconfigure locales

在所有的语言包选择en_US.ISO-8859-1和zh_CN.GBK。其他en_US和zh_CN打头的也选上。然后选择zh_CN.GBK为默认的LOCALE,则系统为中文界面(这里也可以选en_US.ISO,使系统为英文界面)。

3.运行LOCALE命令检查当前的LOCALE环境

#locale

正确配置下会显式

LANG =zh_CN.GBK

……………………以下显示略过

 

 

============================================================================

Debian 6解决中文乱码

 

解决办法:打开终端,切换至root帐号。

执行以下命令:

apt-get install ttf-wqy-zenhei(安装字体)
apt-get install ibus ibus-gtk ibus-pinyin(安装输入法)

————————-

设置本地化 Locale
如果我们在安装 Debian
系统时,语言选择了英语呢?进入系统后看到全是英文,是不是有点郁闷。那么我们怎样设置成简体中文呢?
#如果你安装系统时选择的就是简体中文,可以跳过这段,只安装中文字体就行了。当然你也可以修改成其他的语言。

打开终端,执行命令:
dpkg-reconfigure locales

把 带 zh_CN 字样的全部选上,然后选择 OK 确定,在弹出的对话框中,选择系统的 locale ,选择zh_CN.UTF-8。

安装时选择的是英语,会缺少中文字体,用以下命令安装字体:
apt-get install xfonts-intl-chinese wqy*

下次重起机器,在GNOME登录介面下方的Language,登录语言选择:汉语(中国)

设置字体
对着桌面猛击右键 ===> 更改桌面背景 ===> 字体
#
选择自己喜欢的字体,比如:文泉驿点阵正黑或文泉驿微米黑

输入法
选择喜欢的输入法,比如: ibus scim
# 注:fcitx 输入法在debian unstable
软件源里才有,如果需要的话,只能自行下载安装了。或者添加 Debian unstable 的软件源。
apt-get install
ibus-pinyin ibus-table-wubi #安装IBUS五笔和拼音

设置输入法
系统 ===> 首选项 ===> IBus 设置
#设置快捷键和添加输入法到列表。

浏览器
Iceweasel浏览器简体中文组件 # Iceweasel是Debian中Mozilla
Firefox浏览器的一个再发布版
#英语很菜,所以浏览器菜单也要是中文的
apt-get install
iceweasel-l10n-zh-cn

运行浏览器,然后点击
浏览器菜单 ===> 编辑 ===> 首选项 ===> 内容
# 设置浏览器字体

谷歌开源浏览器Chromium
# 不喜欢用这个的,也可以安装 Chrome 浏览器
apt-get install
chromium-browser chromium-browser-l10n

Flash插件
执行命令:
apt-get install flashplugin-nonfree
#嫌手动安装官方Flash插件麻烦的,直接安装这个吧

手动安装官方Flash插件
# 注意如果你已经用上面的命令安装了flashplugin-nonfree,最好先卸载掉。
#
可能是为了避免冲突吧,不然浏览器不知道用哪个插件,我不清楚原因。

源里的flash插件和官方的正式版的flash插件,在我这里播放在线视频时,全屏会卡。我安装的是测试版的flash插件

先下载两个软件包,不然装好了Flash插件也用不了。装源里的 flashplugin-nonfree 会自动安装这两个文件。
apt-get
install ca-certificates libcurl3-gnutls

到下面网址下载 Flash Player 的压缩包
http://labs.adobe.com/downloads/flashplayer10.html

Download plug-in for 32-bit Linux (TAR.GZ, 4.7 MB) ← 下载这个

然后解压下载下来的压缩文件,解压出来
libflashplayer.so

切换到普通用户创建存放 Flash 插件的目录
mkdir -pv ~/.mozilla/plugins

进入存放 libflashplayer.so 的目录
cp -v libflashplayer.so ~/.mozilla/plugins

Chromium安装Flash插件
su
cp -v libflashplayer.so
/usr/lib/chromium-browser/plugins

影音播放器
#Mplayer和播放前端SMplayer
apt-get install mplayer smplayer

设置QT程序字体
# 在Debian GNOME桌面中QT程序的字体不清析,所以要设置一下

先备份 /etc/fonts/conf.d/49-sansserif.conf
cp -v
/etc/fonts/conf.d/49-sansserif.conf{,.backup}

修改 /etc/fonts/conf.d/49-sansserif.conf

把文件倒数第4行中:
sans-serif
↓↓
文泉驿微米黑

# 把sans-serif替换成文泉驿微米黑,前提你得先安装文泉驿字库

PDF阅读器
Foxit # 如果觉得系统自带的不好用,就下载这个吧
http://www.foxitsoftware.com/downloads/index.php
#找到
Foxit Reader 1.1 Build 20090810 for Desktop Linux(bz2),下载后解压运行目录下的foxit就可以用。

CHM阅读器
如果有Windows下的CHM文档资料要看,那么就安装chmsee吧
apt-get install
chmsee

星际译王
# 星际译王是 GNOME 中的国际化的词典软件
# 本人英文单词不会几个的,所以是必配的词典软件
apt-get
install stardict

#词典下载,下载地址如下,下载tarball包,解压后,复制到 /usr/share/stardict/dict/
目录下,
#最好在这个目录下新建文件夹来分类存放词典。
http://stardict.sourceforge.net/Dictionaries_zh_CN.php

截图工具shutter
#默认情况下,Debian没有安装gnome-screenshot,可以下载功能更强大的shutter
apt-get
install shutter
apt-get install libgoo-canvas-perl # 编辑功能插件

解压缩软件
apt-get install unrar
apt-get install unzip
apt-get install
p7zip-full

安装基本编译环境
# 有时可能自己想编译软件
apt-get install gcc
apt-get install
linux-headers-`uname -r`
apt-get install make
apt-get install automake

虚拟机VirtualBox-OSE
# 使用 Linux 或多或少都要用虚拟机吧,如果不喜欢OSE版,可以到官方去下载。
apt-get
install virtualbox-ose

VirtualBox 官方主页:
http://www.virtualbox.org/

FTP上传下载工具
# gFTP是X Window下的一个用Gtk开发的多线程FTP客户端工具
apt-get install
gftp

LINUX下的“电驴”
# aMule 是基于eMule的“全平台”P2P客户端
apt-get install amule

BT下载工具
Transmission是一种BitTorrent客户端
apt-get install
transmission

Debian 9 忘记 root 密码怎么办

介绍

有客户有时候会忘记 debian 的 root 密码,结果怎么也登不进去。

那么这次来教教大家如何重设 debian 的 root 密码吧。

环境

Debian 9.11

步骤

重启系统,在开机蓝屏那个界面按 E 进去编辑 grub

进来以后界面如下所示:

我们找到 linux 开头的那一行,把 ro 替换为 rw,并在最后添加 init=/bin/sh

修改后如下所示:

按 ctrl + x 保存,进来后看到 # 说明已经是 root 权限了。

我们输入 passwd root,重复输入两次密码后密码就修改成功了。

然后硬重启系统,密码就改过来了!

以上行不通再试:

进入shell后,根分区的挂载模式默认是只读,我们要将其改为可写,否则不能更改root密码:
mount -no remount,rw /
passwd root
sync
mount -no remount,ro /
reboot
这样即可成功更改debian的root用户的密码。

以下清空密码操作:

Step3:按 “Ctrl+x ” 启动系统,进入 root@(none): 命令行模式
Step4:使用命令使系统可读写   # mount -no remount, rw /
Step5:此时 passwd、vi、vim 等都提示Command not found。
使用Debian自带默认文本编辑器 nano 编辑 /etc/shadow 的第一行( root 行),注意之前先备份shadow
# cd /etc
# cp shadow shadow.bak
# nano shadow
修改 shadow 的第一行为:   root::15198:0:99999:7:::    (即清空root密码)
继而 Ctrl+x 选择 yes 保存
Step6:重新使系统变为只读  # mount -no remount, ro /
Step7:重启用一般用户登录   # su 直接进入root用户(不需要密码)
Step8:最后使用 # passwd 重新设置root密码即可

wordpress的robots.txt创建和详细设置教程

Robots.txt

robots.txt文件主要用于各个搜索引擎的蜘蛛爬取规则,合理设置robots.txt文件,可以让蜘蛛爬取,和不准许蜘蛛爬取的页面,这样有助于网站的seo

工具/原料

  • windows系统的电脑

方法/步骤

  1. 1

    首先打开电脑,依次点击“开始——所有程序——附件——记事本”

    wordpress的robots.txt创建和详细设置教程
  2. 2

    打开记事本文件

    wordpress的robots.txt创建和详细设置教程
  3. 然后输入User-agent,表示“允许”的意思

    wordpress的robots.txt创建和详细设置教程
  4. 按照这样的写法就可以User-agent: *,其中“*号”表示允许所有的蜘蛛抓取,如果你写的是“User-agent: Baiduspider”  ,那么就是只允许百度的蜘蛛来抓取。

    wordpress的robots.txt创建和详细设置教程
  5. 这样写  Disallow:/*?*  禁止抓取动态的页面。这样的好处是,如果你的网址做了伪静态的话,如果不禁止,那么等于蜘蛛重复抓取了你网址的静态页面和动态页面,这样就不利于seo,所以如果你网站做了伪静态一定要禁止蜘蛛抓取动态链接。

    wordpress的robots.txt创建和详细设置教程
  6. 这样写   Disallow: /wp-admin/   就是禁止蜘蛛抓取  /wp-admin/  目录,为什么禁止这个目录?这个地址是wordpress默认的后台登录地址,没有必要让蜘蛛抓取,这是属于重复页面(因为每个人的wordpress后台登录界面都一样)。

    wordpress的robots.txt创建和详细设置教程
  7. 这样写   Allow: /wp-admin/admin-ajax.php  表示允许蜘蛛抓取这个目录的文件

    wordpress的robots.txt创建和详细设置教程
  8. 这样写  Sitemap: https://www.你的网址.com/sitemap.xml  让蜘蛛访问你的网站地图

    wordpress的robots.txt创建和详细设置教程
  9. 然后写完了所有的内容,就是这样的格式。

    wordpress的robots.txt创建和详细设置教程
  10. 然后保存txt文件,并命名为“robots.txt”

    wordpress的robots.txt创建和详细设置教程
  11. 然后把robots.txt文件上传到你的网站根目录

    wordpress的robots.txt创建和详细设置教程
  12. 然后在你的浏览器地址栏目中,输入你的网址,加上/robots.txt就可以成功的访

    wordpress的robots.txt创建和详细设置教程
    wordpress的robots.txt创建和详细设置教程

    说到 robots.txt 大家已经都不会陌生了,但是有些时候很多的细节却还是没有被大多数人注意,比如子凡就忽略了一个细节,导致最近的一些文章在搜索引擎结果中出现了重复而没有意义的链接,如果你也是使用的WordPress,不妨你也看看你自己的 robots.txt 文件。

     

    如果你的 WordPress 站点还没有 robots.txt 文件,那么子凡觉得你就更有必要添加一个了,即使你的站点可以让搜索引擎随意抓取,因为搜索引擎机器人访问网站时,首先会寻找站点根目录有没有 robots.txt 文件,如果有这个文件就根据文件的内容确定收录范围,如果没有就按默认访问以及收录所有页面。另外,当搜索蜘蛛发现不存在 robots.txt 文件时,会产生一个 404 错误日志在服务器上,从而增加服务器的负担,因此为站点添加一个 robots.txt 文件还是很重要的。

    好了,还是来分享一个经过子凡整理的比较完善的适用于 WordPress 的 robots.txt 文件内容吧!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    User-agent: *
    Disallow: /wp-admin/
    Disallow: /wp-content/
    Disallow: /wp-includes/
    Disallow: /trackback/
    Disallow: /comments/
    Disallow: /attachment/
    Disallow: /comments/feed
    Disallow: /feed
    Disallow: /*/feed
    Disallow: /*/comment-page-*
    Disallow: /*?replytocom=*
    Disallow: /*/trackback
    Disallow: /?s=*
    Disallow: /*/?s=*\
    Disallow: /wp-*.php
     
    Sitemap: http://yourdomain.com/sitemap.html

    使用方法:新建一个名称为 robots.txt 文本文件,将以上的内容放进去,然后上传到网站根目录即可。

    最后还是简单的解析一下其对应作用

    1、User-agent: *

    允许所有搜索引擎抓取网站,除非你网站有特别针对某个或多个搜索引擎,你可以适当的设置其抓取。如下只允许百度和谷歌抓取:

    1
    2
    3
    4
    
    User-agent: Baiduspider
    Disallow: /
    User-agent: Googlebot
    Disallow: /

    这样设置的意思为只允许百度和谷歌的蜘蛛抓取所有,但是这里子凡用的是 Disallow 并设置的/根目录,所以这里其实是禁止了百度和谷歌抓取,如果要允许所有可以使用Allow,大家可以举一反三的使用,仔细的体会感受一下。

    2、Disallow: /wp-admin/、Disallow: /wp-content/和 Disallow: /wp-includes/
    用于告诉搜索引擎不要抓取后台程序文件页面。

    3、Disallow: /*/comment-page-*和 Disallow: /*?replytocom=*
    禁止搜索引擎抓取评论分页等相关链接。

    4、Disallow: /category/*/page/和 Disallow: /tag/*/page/
    禁止搜索引擎抓取收录分类和标签的分页。(这一条子凡并未添加到上面演示,因为不同 WordPress 站点可能会有所不同,大家可以根据需要添加)

    5、Disallow: /*/trackback 和 Disallow: /trackback/
    禁止搜索引擎抓取收录 trackback 等垃圾信息

    6、Disallow: /feed、Disallow: /*/feed 和 Disallow: /comments/feed
    禁止搜索引擎抓取收录 feed 链接,feed 只用于订阅本站,与搜索引擎无关。

    7、Disallow: /?s=*和 Disallow: /*/?s=*\
    禁止搜索引擎抓取站内搜索结果

    8、Disallow: /attachment/
    禁止搜索引擎抓取附件页面,比如毫无意义的图片附件页面。

    9、Disallow: /wp-*.php
    禁止搜索引擎抓取 WordPress 网站根目录的以 wp 开头的文件。

    10、Sitemap: http://yourdomain.com/sitemap.html
    这个就是为了方便搜索引擎利用的网站地图,具体的根据自己网站需要添加。

    robots.txt是搜索引擎爬行网站的控制文件,按照一定的语法告诉搜索引擎哪些网页能爬,哪些不能爬,对于robots.txtd的介绍和书写语法,你可以参考这篇博文:网络蜘蛛访问控制文件robot.txt的写法 。

    可能你想说,收录量不是越多越好吗?

    其实不然,网站的网页不是收录越多越好,大家都知道搜索引擎比较网络上的网页相似度(相似度太高的两个页面会分散权重)的时候,不仅仅会进行不同网站间的纵向比较,而且会进行同一网站不同页面间的比较,所以,比如对于个人博客的作者归档和首页,页面内容差不多一样,我们完全可以屏蔽蜘蛛访问作者归档的页面。下面我来详细地介绍一下wordpress怎样写robots.txt利于SEO优化。

    WordPress怎样写Robots.Txt利于SEO优化

     

    一、屏蔽没有必要收录的一些链接

    1、屏蔽捉取站内搜索结果

    Disallow: ?s=*

    这个就不用解释了,屏蔽捉取站内搜索结果。站内没出现这些链接不代表站外没有,如果收录了会造成和TAG等页面的内容相近。

    2、屏蔽Spider捉取程序文件

    Disallow: /wp-*/

    屏蔽spider捉取程序文件,wp-*表示wp-admin,wp-include等文件夹都不让搜索蜘蛛爬行,这节约了搜索引擎蜘蛛资源。

    3、屏蔽Feed

    Disallow: /feed/*
    Disallow: /*/*/feed/*
    Disallow: /*/*/*/feed/*

    头部代码里的feed链接主要是提示浏览器用户可以订阅本站,而一般的站点都有RSS输出和网站地图,故屏蔽搜索引擎抓取这些链接,相当有必要,应为feed里面的内容基本就是你文章内容的重复,相同内容会让百度降低单页面权重,同时这也节约蜘蛛资源和服务器的压力。

    4、屏蔽捉取留言信息链接

    Disallow:/*?replytocom*
    Disallow: /comments/
    Disallow: /*/comments/

    屏蔽留言信息链接。需要指出的是,屏蔽留言信息链接不是说不让蜘蛛收录你文章的评论页面,而是这样的链接打开后,整个页面就只有一个评论,完全没有被收录的必要,同时也节约蜘蛛资源,故屏蔽之。

    5、屏蔽其他的一些链接,避免造成重复内容和隐私问题

    Disallow: /date/
    Disallow: /author/
    Disallow: /category/
    Disallow: /?p=*&preview=true
    Disallow: /?page_id=*&preview=true
    Disallow: /wp-login.php

    这些屏蔽规则你可以根据自己的需求决定是否创建,屏蔽data、author、category等页面都是为了避免太多重复内容,

    6、Disallow: /?P=*

    屏蔽捉取短链接。默认头部里的短链接,百度等搜索引擎蜘蛛会试图捉取,虽然最终短链接会301重定向到固定链接,但这样依然造成蜘蛛资源的浪费。

    7.屏蔽特定格式

    Disallow: /*.js$
    Disallow: /*.css$

    屏蔽对js、css格式文件的抓取,节约蜘蛛资源,降低服务器压力,你可以根据实际要求是否屏蔽你的图片被抓取。

    8.其它不想被抓取的页面

    Disallow: /*?connect=*
    Disallow: /kod/*
    Disallow: /api/*

    • /*?connect=*:我的博客登录链接
    • /kod/*:在线文件管理链接
    • /api/*:我自制的API链接

    二、使用Robots.Txt需要注意的几点地方:

    • 1、有独立User-agent的规则,会排除在通配“*”User agent的规则之外;
    • 2、指令区分大小写,忽略未知指令,下图是本博客的robots.txt文件在Google管理员工具里的测试结果;
    • 3、“#”号后的字符参数会被忽略;
    • 4、可以写入sitemap文件的链接,方便搜索引擎蜘蛛爬行整站内容。
    • 5、每一行代表一个指令,空白和隔行会被忽略;
    • 6、尽量少用Allow指令,因为不同的搜索引擎对不同位置的Allow指令会有不同看待。

    上面的这些Disallow指令都不是强制要求的,可以按需写入。也建议站点开通百度站长工具,检查站点的robots.txt是否规范。

    三、百度站长工具Robots.Txt工具的使用方法

    百度站长工具robots.txt工具网址:http://zhanzhang.baidu.com/robots/index

    wordpress怎样写robots.txt利于SEO优化

    百度站长工具robots.txt工具的使用方法

html网页自动跳转5种方法

HTML页面跳转的5种方法

下面列了五个例子来详细说明,这几个例子的主要功能是:在5秒后,自动跳转到同目录下的hello.html(根据自己需要自行修改)文件。
1) html的实现

 

1
2
3
4
5
6
<head>
<!-- 以下方式只是刷新不跳转到其他页面 -->
<meta http-equiv="refresh" content="10">
<!-- 以下方式定时转到其他页面 -->
<meta http-equiv="refresh" content="5;url=hello.html">
</head>

优点:简单
缺点:Struts Tiles中无法使用

 

2) javascript的实现

 

1
2
3
4
5
6
<script language="javascript" type="text/javascript">
// 以下方式直接跳转
window.location.href='hello.html';
// 以下方式定时跳转
setTimeout("javascript:location.href='hello.html'", 5000);
</script>

优点:灵活,可以结合更多的其他功能
缺点:受到不同浏览器的影响
3) 结合了倒数的javascript实现(IE)

 

1
2
3
4
5
6
7
8
9
<span id="totalSecond">5</span>
<script language="javascript" type="text/javascript">
var second = totalSecond.innerText;
setInterval("redirect()", 1000);
function redirect(){
totalSecond.innerText=--second;
if(second<0) location.href='hello.html';
}
</script>

优点:更人性化
缺点:firefox不支持(firefox不支持span、div等的innerText属性)
3′) 结合了倒数的javascript实现(firefox)

1
2
3
4
5
6
7
8
9
<script language="javascript" type="text/javascript">
var second = document.getElementById('totalSecond').textContent;
setInterval("redirect()", 1000);
function redirect()
{
document.getElementById('totalSecond').textContent = --second;
if (second < 0) location.href = 'hello.html';
}
</script>

4) 解决Firefox不支持innerText的问题

1
2
3
4
5
6
7
8
<span id="totalSecond">5</span>
<script language="javascript" type="text/javascript">
if(navigator.appName.indexOf("Explorer") > -1){
document.getElementById('totalSecond').innerText = "my text innerText";
} else{
document.getElementById('totalSecond').textContent = "my text textContent";
}
</script>

5) 整合3)和3′)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<span id="totalSecond">5</span>
<script language="javascript" type="text/javascript">
var second = document.getElementById('totalSecond').textContent;
if (navigator.appName.indexOf("Explorer") > -1)  {
    second = document.getElementById('totalSecond').innerText;
} else {
    second = document.getElementById('totalSecond').textContent;
}
setInterval("redirect()", 1000);
function redirect() {
if (second < 0) {
    location.href = 'hello.html';
} else {
    if (navigator.appName.indexOf("Explorer") > -1) {
        document.getElementById('totalSecond').innerText = second--;
    } else {
        document.getElementById('totalSecond').textContent = second--;
    }
}
}
</script>

方法1:

  1. <html>
  2. <head>
  3. <title>正在跳转</title>
  4. <meta http-equiv=“Content-Language” content=“zh-CN”>
  5. <meta HTTP-EQUIV=“Content-Type” CONTENT=“text/html; charset=gb2312”>
  6. <meta http-equiv=“refresh” content=“0.2;url=http://www.kaigesheji.com/wangzhanjianshe/”>
  7. </head>
  8. <body>
  9. </body>
  10. </html>

方法二:

  1. <html><head><title>正在跳转</title></head>
  2. <body>
  3. <script language=‘javascript’>document.location = ‘http://www.kaigesheji.com/wangzhanjianshe/’</script>
  4. </body>
  5. </html>

方法三:

  1. <html>
  2. <head>
  3. <meta http-equiv=“Content-Type” content=“text/html; charset=gb2312”>
  4. <title>gotoing, waiting</title>
  5. </head>
  6. <body>
  7. <form name=loading>
  8.  <p align=center> <font color=“#0066ff” size=“2”>gotoing, waiting</font><font color=“#0066ff” size=“2” face=“Arial”></font>
  9.   <input type=text name=chart size=46 style=“font-family:Arial; font-weight:bolder; color:#0066ff; background-color:#fef4d9; padding:0px; border-style:none;”>
  10.   <input type=text name=percent size=47 style=“color:#0066ff; text-align:center; border-width:medium; border-style:none;”>
  11.   <script> 
  12. var bar=0
  13. var line=“||”
  14. var amount=“||”
  15. count()
  16. function count(){
  17. bar=bar+2
  18. amount =amount + line
  19. document.loading.chart.value=amount
  20. document.loading.percent.value=bar+“%”
  21. if (bar<99)
  22. {setTimeout(“count()”,100);}
  23. else
  24. {window.location = “http://www.kaigesheji.com/wangzhanjianshe/”;}
  25. }</script>
  26.  </p>
  27. </form>
  28. <p align=“center”> not support goto,<a style=“text-decoration: none” href=“http://www.kaigesheji.com/wangzhanjianshe/”><font color=“#FF0000”>click here</font></a>.</p>
  29. </body>
  30. </html>