Linux CAT与ECHO+tee命令详解

cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
cat主要有三大功能:
1.一次显示整个文件。
$ cat   filename
2.从键盘创建一个文件。
$ cat  >  filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件。
$cat   file1   file2  > file
cat具体命令格式为 : cat [-AbeEnstTuv] [–help] [–version] fileName
说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting
范例:
cat -n linuxfile1 > linuxfile2 把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -b linuxfile1 linuxfile2 >> linuxfile3 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3 里。
范例:
把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -n linuxfile1 > linuxfile2
把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到 linuxfile3 里。
cat -b linuxfile1 linuxfile2 >> linuxfile3
cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容

在linux shell脚本中我们经常见到类似于cat << EOF的语句,不熟悉的童鞋可能觉得很奇怪:EOF好像是文件的结束符,用在这里起到什么作用?
EOF是“end of file”,表示文本结束符。
<<EOF
(内容)
EOF


首先必须要说明的是EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。
可以把EOF替换成其他东西,意思是把内容当作标准输入传给程
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。

接下来,简单描述一下几种常见的使用方式及其作用:
1、cat<<EOF,以EOF输入字符为标准输入结束:
2、cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束:
注意:输入时是没有’>’的。
3、cat>filename<<EOF,以EOF作为输入结束,和ctrl+d的作用一样:

二、使用
看例子是最快的熟悉方法:
# cat << EOF > test.sh
> #!/bin/bash             #“shell脚本”
> #you Shell script writes here.
> EOF

结果:
引用# cat test.sh
#!/bin/bash
#you Shell script writes here.

可以看到,test.sh的内容就是cat生成的内容。
cat <<EOF >test.sh  内容 EOF
—就是将内容写入test.sh,之前存在的内容会被覆盖掉。EOF可以换成其他符号比如EEE:cat <<EEE  >test.sh  内容 EEE

三、其他写法
1、追加文件
# cat << EOF >> test.sh  内容  EOF
—将内容追加到 test.sh 的后面,不会覆盖掉原有的内容
2、换一种写法
# cat > test.sh << EOF 内容  EOF
3、EOF只是标识,不是固定的
# cat << HHH > iii.txt
> sdlkfjksl
> sdkjflk
> asdlfj
> HHH
这里的“HHH”就代替了“EOF”的功能。结果是相同的。
引用# cat iii.txt
sdlkfjksl
sdkjflk
asdlfj

4、非脚本中
如果不是在脚本中,我们可以用Ctrl-D输出EOF的标识
# cat > iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk
Ctrl-D

结果:
引用# cat iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk

※关于“>”、“>>”、“<”、“<<”等的意思,请自行查看bash的介绍。

ECHO命令详解

linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
该命令的一般格式为: echo [ -n ] 字符串
其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。

功能说明:显示文字。
语   法:echo [-ne][字符串]或 echo [–help][–version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参   数:-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
–help 显示帮助
–version 显示版本信息

echo和tee的使用

tee作用

从标准的输入读取并写入标准输出或文件中,即双向覆盖重定向(屏幕输出|文本输入)

echo hello|tee demo.txt (demo.txt不存在,会自己创建,并将hello写入到文件中)

echo -e “<?php\n phpinfo();\n ?>” | tee info.php #建立一个PHPinfo文件,并在屏幕显示出内容。

-a 追加写入,将内容追加到上次内容之后

ECHO命令是大家都熟悉的DOS批处理命令的一条子命令,但它的一些功能和用法也许你并不是全都知道,不信你瞧:

1. 作为控制批处理命令在执行时是否显示命令行自身的开关 格式:ECHO [ON|OFF] 如果想关闭“ECHO OFF”命令行自身的显示,则需要在该命令行前加上“@”。

2. 显示当前ECHO设置状态 格式:ECHO

3. 输出提示信息 格式:ECHO信息内容 上述是ECHO命令常见的三种用法,也是大家熟悉和会用的,但作为DOS命令淘金者你还应该知道下面的技巧:

4. 关闭DOS命令提示符 在DOS提示符状态下键入ECHO OFF,能够关闭DOS提示符的显示使屏幕只留下光标,直至键入ECHO ON,提示符才会重新出现。

5. 输出空行,即相当于输入一个回车 格式:ECHO. 值得注意的是命令行中的“.”要紧跟在ECHO后面中间不能有空格,否则“.”将被当作提示信息输出到屏幕。另外“.”可以用,:;”/[/]+等任一符号替代。 在下面的例子中ECHO.输出的回车,经DOS管道转向作为TIME命令的输入,即相当于在TIME命令执行后给出一个回车。所以执行时系统会在显示当前时间后,自动返回到DOS提示符状态: C:〉ECHO.|TIME ECHO命令输出空行的另一个应用实例是:将ECHO.加在自动批处理文件中,使原本在屏幕下方显示的提示画面,出现在屏幕上方。

6. 答复命令中的提问 格式:ECHO答复语|命令文件名 上述格式可以用于简化一些需要人机对话的命令(如:CHKDSK/F;FORMAT Drive:;del *.*)的操作,它是通过DOS管道命令把ECHO命令输出的预置答复语作为人机对话命令的输入。下面的例子就相当于在调用的命令出现人机对话时输入“Y”回车: C:〉ECHO Y|CHKDSK/F C:〉ECHO Y|DEL A :*.*

7. 建立新文件或增加文件内容 格式:ECHO 文件内容>文件名 ECHO 文件内容>>文件名 例如:C:〉ECHO @ECHO OFF〉AUTOEXEC.BAT建立自动批处理文件 C:〉ECHO C:/CPAV/BOOTSAFE〉〉AUTOEXEC.BAT向自动批处理文件中追加内容 C:TYPE AUTOEXEC.BAT显示该自动批处理文件 @ECHO OFF C:/CPAV/BOOTSAFE

8. 向打印机输出打印内容或打印控制码 格式:ECHO 打印机控制码>PRN ECHO 打印内容>PRN 下面的例子是向M-1724打印机输入打印控制码。<Alt>156是按住Alt键在小键盘键入156,类似情况依此类推: C:〉ECHO 〈Alt〉+156〈Alt〉+42〈Alt〉+116〉PRN(输入下划线命令FS*t) C:〉ECHO 〈Alt〉+155@〉PRN(输入初始化命令ESC@) C:〉ECHO.〉PRN(换行)

9. 使喇叭鸣响 C:〉ECHO ^G “^G”是用Ctrl+G或Alt+007输入,输入多个^G可以产生多声鸣响。使用方法是直接将其加入批处理文件中或做成批处理文件调用。

10.执行ESC控制序列修改屏幕和键盘设置 我们知道DOS的设备驱动程序ANSI.SYS提供了一套用来修改屏幕和键盘设置的ESC控制序列。如执行下述内容的批处理程序可以把功能键F12定义为DOS命令“DIR/W”,并把屏幕颜色修改为白色字符蓝色背景。 @ECHO”←[0;134;”DIR/W”;13p @ECHO”←[1;37;44m (注:批处理文件中“←”字符的输入方法是在编辑状态下按Alt中小键盘上的27)

补充:

比较echo 和 cat的重定向功能

1、echo 1 > /proc/xxx

解析: echo 进行重定向的时候,仅仅是将字符“1” 输出到 /proc/xxx文件中

2、cat /tmp/vmlinux.bin  > /dev/mtdblock2

解析: cat 进行重定向的时候,将/tmp/vmlinux.bin中的内容输出到/dev/mtdblock2中

结论:如果需要覆盖flash中的内容,只能用cat或dd命令,不能使用echo命令。

>>实例

  • 建立一个空的文件:

    touch akeke.log

  • 用echo建立新文件、简单的编辑一个文件:

    #echo “I am wuyike”>wuyike.txt

    然后用cat查看:#cat wuyike.txt

  • >和>>的区别:

>是清空并添加新内容,即重定向

>>是在文件内容后面追加新内容,即追加重定向

  • 用cat对文件追加内容:(优点:可增加多行内容)

    [root@wuyike ~]# cat >>wuyike.txt<<EOF

    > I am beautiful

    > EOF

    查看结果:

    [root@wuyike ~]# cat wuyike.txt

    I am wuyike

    I am beautiful

  • cat -n显示行号
  • 用cat对文件重定向:(优点:可增加多行内容)

    [root@wuyike ~]#cat >wuyike.txt<<EOF

    > I am a student

    > EOF

    查看结果:

    [root@wuyike ~]# cat wuyike.txt

    I am a student

  • 也可用echo对文件增加多行内容:

    [root@wuyike ~]# echo “wuyike

    > wuyikeke”>>wuyike.txt

    查看结果:

    [root@wuyike ~]# cat wuyike.txt

    I am a student

    wuyike

    wuyikeke

  • 正确输出重定向:代码为1,使用>或>>。

    错误输出重定向:代码为2,使用2>或2>>。使报错信息存入文件内。

    [root@wuyike ~]# ech wuyike 2>test.txt

    [root@wuyike ~]# cat test.txt

    -bash: ech: command not found

    或者:

    [root@wuyike ~]# echo 111 1>wuyike.txt 2>wuyike1.txt

    [root@wuyike ~]# cat wuyike.txt

    111

    [root@wuyike ~]# cat wuyike1.txt

    [root@wuyike ~]#

    [root@wuyike ~]# ech 111 1>wuyike.txt 2>wuyike1.txt

    [root@wuyike ~]# cat wuyike.txt

    [root@wuyike ~]# cat wuyike1.txt

    -bash: ech: command not found

下面的三种方法是等价的:

/dev/null 空设备  黑洞

1)1>/dev/null   2>/dev/null

2)1>/dev/null   2>&1

3)&>/dev/null

则程序执行后,没有任何的输出

  • echo与{}配合使用,输出字母序列或者数字序列
  • [root@wuyike data]# echo {1..10}

    1 2 3 4 5 6 7 8 9 10

  • [root@wuyike data]# echo {a..z}

    a b c d e f g h i j k l m n o p q r s t u v w x y z

  • 创建100个目录:

    [root@wuyike data]# mkdir student{001..100}

  • [root@wuyike data]# ll

    total 416

    drwxr-xr-x. 3 root root 4096 Mar  3 14:45 a

    drwxr-xr-x. 2 root root 4096 Mar  3 14:27 b

    drwxr-xr-x. 2 root root 4096 Mar  3 14:45 c

    drwxr-xr-x. 2 root root 4096 Mar  3 17:55 student001

    drwxr-xr-x. 2 root root 4096 Mar  3 17:55 student002

    drwxr-xr-x. 2 root root 4096 Mar  3 17:55 student003

    drwxr-xr-x. 2 root root 4096 Mar  3 17:55 student004

    drwxr-xr-x. 2 root root 4096 Mar  3 17:55 student005

    ……

  • cd -:

    [root@wuyike data]# cd wuyike

    [root@wuyike wuyike]# cd –

    /root/data

    [root@wuyike data]#

  • history命令:打印用户操作的历史记录。
  • !+字母表示调出最近一次以此字母开头的命令。

    !!表示使用最近一次操作的命令。

    !+数字  表示调出历史的第几条命令。

  • tab命令或路径补全。如果tab不出,可能不存在或者权限不对
  • ctrl+c:终止
  • ctrl+a:光标从命令的结尾到开头
  • ctrl+e:光标从命令的开头到结尾
  • ctrl+u:将光标以前的内容删掉
  • ctrl+k:将光标以后的内容删掉
  • ctrl+shift+c:复制(ssh客户端)
  • ctrl+shift+v:粘贴(ssh客户端)
  • ctrl+d:退出当前用户环境,相当于exit,logout
  • ctrl+l:清屏

Linux和Windows间的远程桌面访问

在Windows上面,我们都用过系统自带的远程桌面连接或者TeamViewer这样的工具,可以方便的让我们用图形化方式远程操作其他计算机。但是在Linux上,我们一般都是使用SSH来操作终端。那么在Linux上有没有一些工具可以让我们像Windows那样用图形化的方式来访问桌面呢?答案当然是有的,这就是这篇文章要介绍的。

远程桌面连接主要使用两种协议,第一种就是微软在Windows上的RDP(Remote Desktop Protocol)协议,第二种就是VNC(Virtual Network Console)协议。从使用效果上来说,VNC协议更加优秀,所以如果有条件的话我还是推荐大家使用使用VNC协议的工具。下面将会逐一介绍。

RDP协议

rdesktop

首先要介绍的一个工具是Rdesktop,它实现了RDP协议,允许我们在Linux系统上远程登录Windows系统。以深度系统为例,安装Rdesktop使用下面的命令。

sudo apt install rdesktop

安装完成之后,使用类似下面的命令来访问远程Windows系统。

rdesktop -g 1440x900 -P -z -x l -r sound:off -u windowsuser 192.168.31.100:3389

登录之后界面类似下面这样。当然对应的Windows系统别忘了开启允许远程连接到本计算机,否则用什么客户端也是无法连接的。如果连接有问题,在Windows上取消“仅允许运行使用网络级别身份验证的远程桌面的计算机连接”选项。

img

rdesktop

下面简单解释一下这些参数意义。

参数 意义
-g 后面代表要使用的分辨率
-P 启用位图缓存
-z 启用RDP数据流压缩
-x l 使用局域网级别的图像质量
-r sound:off 关闭声音
-u windowuser 指定要使用的用户
IP地址 要连接的计算机的IP地址和端口号

特别提一下,如果希望使用全屏方式来远程登录,可以在-g参数那里使用100%。如果需要更详细的使用说明,请用man rdekstop查询自带的帮助页面。

这里还是推荐ArchWiki这个网站,虽然它是ArchLinux的百科网站,但是很多知识是完全可以通用到其他Linux系统上的。我这里也参考了ArchWiki的相关内容wiki.archlinux.org/index.php/Rdesktop

grdesktop

当然,命令行方式使用有些时候还是比较麻烦的。对于Rdesktop来说自然也有对应的图形化前端工具,grdesktop就是一个不错的工具,它是Gnome桌面的远程登录前端。我们可以使用下面的命令来安装。

sudo apt install grdesktop

打开是一个类似这样的界面,输入相关信息然后连接即可。

img

grdesktop

连接之后类似下图。

img

grdesktop

krdc

krdc是KDE桌面的rdp和vnc连接工具。我们使用下面的命令安装krdc.

sudo apt install krdc

打开之后如图所示。使用时需要先输入要连接的计算机地址,然后按回车在弹出的对话框中进行进一步设置。

img

krdc

连接成功之后主窗口右半部分应该会显示远程桌面的内容,但是不知道什么情况我的krdc始终没办法连接成功,所以没办法截图了。

xrdp

前面的rdesktop工具可以让我们在Linux系统上远程桌面登录Windows系统,如果反过来,希望在Windows上用RDP协议远程登录到Linux系统,就比较麻烦了。这就需要xrdp来帮助我们了。它是一个RDP服务端,可以让我们用远程桌面方式登录到Linux系统。

首先要安装xrdp。

sudo apt install xrdp

然后启动xrdp服务。

sudo systemctl enable xrdp
sudo systemctl start xrdp

现在你应该可以使用Windows自带的远程桌面工具来连接到Linux系统了。

img

xrdp

输入用户名和密码之后稍等片刻,应该就会显示出Linux的桌面了。

img

xrdp访问桌面

好了,以上就是关于使用RDP协议的一些工具的介绍。从截图上,我们可以看到,RDP协议的一个缺点,就是如果平台不同的话,显示效果其实是很差的。我这还是局域网的两台电脑,假如间隔距离更长,效果会更差。RDP协议还是在Windows间使用比较适合。跨平台的话,还是下面介绍的VNC协议更加强大。

VNC

tigervnc和x11vnc

先来说说Linux上的VNC服务端,比较常用的就是tigervnc和x11vnc。x11vnc可以让远程访问者控制本地的实际显示器,而tigervnc既可以远程控制实际显示器,还可以控制平行独立于当前物理显示器的虚拟显示器。不过由于在我的笔记本上测试tigervnc没有成功,所以这里我只介绍一下x11vnc。如果想要了解tigervnc的详细信息,可以参考一下ArchWiki TigerVNC

首先用下面的命令安装x11vnc。

sudo apt install x11vnc

安装好之后就可以启动了,启动也很简单,-passwd参数指定密码,-forever参数指定这个会话始终开启。

x11vnc -passwd PASSWORD -display :0 -forever

开启之后就可以使用客户端进行连接了,默认端口号是5900,会在终端中显示出来。

Linux上的VNC客户端

Linux上的VNC客户端软件选择就比较丰富了,各大Linux桌面系统都推出了自己的VNC客户端。我们可以根据自己需要来使用。

首先介绍一下Vinagre,这是Gnome桌面环境的远程桌面客户端,同时支持SSH、RDP和VNC协议。使用下面的命令安装Vinagre。

sudo apt install vinagre

软件打开的界面如图所示。

img

Vinagre建立连接

这是连接效果图,这是用VNC协议连接到我的Windows系统。

img

Vinagre

然后是KRDC,这是前面介绍的KDE桌面的远程连接软件,它同时支持RDP和VNC协议。这是它使用VNC的连接效果图。

img

KRDP

最后是Remmina,它也同时支持RDP和VNC协议。我们可以用下面的命令安装它。

sudo apt install remmina

下面是它的连接效果图。

img

Remmina

Windows上的VNC软件

前面介绍了Linux上一些支持VNC协议的软件。在Windows上同样有一些支持VNC协议的软件,常用的有RealVNC(收费)、UltraVNC(免费)和TightVNC(免费),它们同时既是服务端又是客户端。这三个软件我都试了一下,感觉免费的TightVNC效果不错。收费的RealVNC和TeamViewer差不多,主要功能都在云端协作这方面,如果只是单纯的远程连接,TightVNC完全够用了,这是TightVNC的下载链接

下面是几张RealVNC的截图,有兴趣的同学可以注册个账户试用30天。

img

RealVNC

img

RealVNC服务端和客户端

然后来介绍一下TightVNC。安装好之后开始菜单会多出几个菜单项。首先点击Start TightVNC Service启动服务,然后系统托盘会多出一个图标,这就是TightVNC的图标。然后双击它打开设置。最主要的就是端口号和密码了,其实端口号也不需要设置,主要就是密码。设置完成后点击OK即可。

img

TightVNC服务器设置

如果需要远程登录其他系统,使用TightVNC Viewer。打开之后如图所示,按照IP地址::端口号的格式输入地址,然后输入密码即可。主要这里是双冒号,不是单冒号。

img

TightVNC Viewer

连接成功之后如图所示。

img

TightVNC Viewer连接

好了,以上就是Linux和Windows上RDP和VNC的一些软件的介绍和使用,下面再提供

8种最佳访问远程Linux桌面的工具

在本文中,我们将共享一个用于访问远程Linux桌面的列表软件:列表以VNC应用程序开始。

远程桌面协议( RDP )是Microsoft开发的专有协议,因此可以访问远程桌面计算机。 它为用户提供了一个图形界面,通过网络连接连接到另一台/远程计算机。 FreeRDPRDP的免费实现。

RDP以客户机/服务器模式运行,其中远程计算机必须安装并运行RDP服务器软件,并且用户使用RDP客户机软件连接到它,以管理远程桌面计算机。

在本文中,我们将共享一个用于访问远程Linux桌面的列表软件:列表以VNC应用程序开始。

VNC ( 虚拟网络计算 )是一种服务器 – 客户端协议,允许用户帐户通过使用图形用户界面 ( GUI )提供的资源远程连接和控制远程系统。

1. TigerVNC

TigerVNC是一款免费,开源,高性能,平台无关的VNC实现。 它是一个客户端/服务器应用程序,允许用户启动远程机器上的图形应用程序并与其进行交互。

与直接连接运行时桌面的其他VNC服务器(如VNC XVino)不同, tigervnc-vncserver使用不同的机制为每个用户配置独立的虚拟桌面。

它能够运行3D和视频应用程序,并尝试在所支持的各种平台上尽可能保持一致的用户界面并重新使用组件。 此外,它还通过许多实现高级身份验证方法和TLS加密的扩展来提供安全性。

了解如何在CentOS 7中安装和配置VNC服务器

2. RealVNC

RealVNC提供跨平台,简单和安全的远程访问软件。 它使用VNC ConnectVNC Viewer等产品开发VNC屏幕共享技术。 VNC连接使您能够访问远程计算机,提供远程支持,管理无人值守系统,共享对集中资源的访问等等。

您可以免费使用VNC连接家庭使用,限于五台远程计算机和三名用户。 但是,对于任何专业和企业用途,都需要订阅费用。

3. TeamViewer

Teamviewer是一个流行的,功能强大,安全的跨平台远程访问和控制软件,可以同时连接到多个设备。 它是免费的个人使用,并有一个企业用户的高级版本。

它是用于远程桌面共享,在线会议和通过互联网连接的设备之间文件传输的远程支持的全功能应用程序。 它支持全球30多种语言。

4. Remmina

Remmina是一款免费且开放源代码的功能齐全且功能强大的远程桌面客户端,可用于Linux和其他类Unix系统。 它是用GTK + 3编写的,面向需要远程访问和使用多台计算机的系统管理员和旅行者。

它高效可靠,支持多种网络协议,如RDP,VNC,NX,XDMCP和SSH。 它还提供了一个完整一致的外观和感觉。

Remmina允许用户维护一个由组织组成的连接配置文件列表,支持用户直接输入服务器地址的快速连接,并提供一个选项卡式界面,可选择由群组管理,还有更多功能。

5. NoMachine

NoMachine是一款免费的跨平台高质量远程桌面软件。 它为您提供安全的个人服务器。 Nomachine允许您访问所有文件,观看视频,播放音频,编辑文档,玩游戏并移动它们。

它具有一个界面,可让您专注于自己的工作,并设计为以快速方式工作,就好像您坐在远程计算机前一样。 另外,它具有非凡的网络透明度。

6.Apache鳄梨酱

Apache Guacamole是一款免费且开源的无客户端远程桌面网关。 它支持VNC,RDP和SSH等标准协议。 它不需要插件或客户端软件; 只需使用HTML5 Web应用程序(如Web浏览器)即可。

这意味着,您的计算机的使用不会绑定到任何设备或位置。 此外,如果您想将其用于商业用途,您可以通过第三方公司获得专门的商业支持。

7. XRDP

XRDP是基于FreeRDP和rdesktop的免费开源,简单的远程桌面协议服务器。 它使用远程桌面协议向用户呈现GUI。 它可以用来与x11vnc一起访问Linux桌面。

它极大地与LikwiseOPEN集成,从而使您能够通过RDP使用活动目录用户名/密码登录到Ubuntu服务器。 尽管XRDP是一个很好的项目,但它需要一些修复程序,例如接管现有的桌面会话,在基于Red Hat的Linux发行版上运行等等。 开发者还需要改进其文档。

8. FreeNX

FreeNX是一个开源的,快速和多功能的远程访问系统。 它是一个安全的(基于SSH的)客户端/服务器系统,它的核心库由NoMachine提供。

不幸的是,在撰写本文时, FreeNX网站的链接不起作用,但我们提供了指向发行版特定网页的链接:

  1. Debian: https : //wiki.debian.org/freenx
  2. CentOS: https : //wiki.centos.org/HowTos/FreeNX
  3. Ubuntu: https : //help.ubuntu.com/community/FreeNX
  4. Arch Linux: https : //wiki.archlinux.org/index.php/FreeNX

就这样! 在本文中,我们回顾了访问远程Linux桌面的八种最佳工具。 请随时通过下面的评论表与我们分享您的想法。

MySQL Installer is running in Community mode 的解决办法

 更新时间:2018年06月15日 15:15:05   投稿:mdxy-dxy
这篇文章主要介绍了MySQL Installer is running in Community mode 的解决办法,需要的朋友可以参考下

今天在运行登录远程桌面的时候发现了这个提示

关于 “ MySQL Installer is running in Community mode ” 的解决办法

在项目开发完成后,需求是将项目部署到云服务器上,其中使用到了MySQL服务器,我们使用的是基于最新版本的MySQL服务,在安装完成后,系统能正常运行,但是第二天出现了如下一个提示框,如下图:

给个人人都看得懂的如下图:

解决办法:

这个是新版本MySQL服务自带的一个定时任务,每天23:59:59执行的任务,我们只需要在本地系统的“任务计划程序”中将这个定时任务干掉就OK了。
开始 -> 在 “ 搜索程序和文件 ” 框中,输入 “ 任务 ” 然后回车,然后选择 “ 任务计划程序 ” ,如下图:

打开 任务计划程序 Dialog后,在 计划程序库中找到 MySQL,在这儿就可以看到,MySQL的定时任务了,在右下角工具栏中选择 “ 禁用 ” 该任务计划即可,如下图:

温馨提示:尽量不要直接删掉这个MySQL定时服务器,如果到后期需要业务扩张的时候,还能用到,可以仿照到这个进行定时任务的创建工作,这个是非常用的。

第二种方法:

解决方案:

1、先关闭错误框

2、打开控制面板  -> 使用小图标查看 -> 打开管理工具 -> 双击打开任务计划程序 ->(展开并找到Mysql的定时Installer) -> 右键  -> 禁用

如图:

打开控制面板

使用小图标查看

双击打开任务计划程序

(展开并找到Mysql的定时Installer) -> 右键  -> 禁用

这篇文章就介绍到这了,主要就是需要禁止mysql的任务计划即可。

WordPress改变固定链接后自己的博客出现NOT FOUND或该页无法显示的情况

WordPress改变固定链接后自己的博客出现NOT FOUND或该页无法显示的情况

一、各软件版本

Ubuntu 16.04

Apache 2.4

WordPress 5.2-zh_CN

二、步骤

2.1 删除”.htaccess”文件

$ sudo rm -i /var/www/html/.htaccess
1

随后y,回车即可
但是未解决,在网上看到很多人都是修改apache的配置文件得以解决。

2.2 修改apache的配置

以Ubuntu 16.04为例

2.2.1 启用 Mod_rewrite 模块

在终端中执行

$ sudo a2enmod rewrite
1

指令后,即启用了 Mod_rewrite 模块。

2.2.2 修改配置文件

 $ sudo vim /etc/apache2/apache2.conf
1


        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted


123456

修改成


        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted


123456

到这里还是发现NOT FOUND,但是在网上看到有人说可以通过安装修改文章链接的方法解决

2.3 安装插件:Pinyin Permalink

该插件能自动修改文章的链接为拼音,这个情况的出现是由于wordpress生成的链接中包含中文字符导致的。
在这里进入自己的WordPress,“侧边栏”->“插件”->“安装插件”->搜索”Pinyin Permalink”->安装->输入自己服务器的用户名和密码即可->启用。

三、注意

3.1 关于标题的一点启示

虽说看似是改变固定链接后导致NOT FOUND的情况发生,实际上可能是apache的Mod_rewrite模块未开启或AllowOverride为None(默认为None),或由于wordpress生成的链接中包含中文字符导致的。

3.2 不同操作系统、不同软件版本的Apache的配置文件所在目录和文件名是不一样的

(在windows中apache的配置文件为httpd.conf,而Ubuntu为apache2.conf)

四、参考链接

Ubuntu开启Mod_rewrite模块

解决wordpress部分博客文章页面无法显示的问题

Posted in IT技术网站编程 and tagged .

Linux远程桌面环境

一键安装桌面环境,RDP,Windows支持,Linux的Office工具。

我的网站:https : //tech.cxthhhhh.com

特征:

  1. 一键安装Linux(CentOS / Debian / Ubuntu)的桌面环境和RDP远程桌面连接。

    (您需要一个新安装的Linux系统,推荐的硬件要求是:CPU内核≥1,内存≥1GB,磁盘空间≥15GB。硬件配置越高越好。您还可以尝试以较低的硬件配置运行Debian,但它可能运行缓慢。)

    推荐系统:[原始]网络一键式重新安装CentOS 7(官方,纯净,安全,高效)URL:https : //tech.cxthhhhh.com/linux/2018/07/30/original-network-one-click-重新安装centos-7-official-pure-safe-efficiency-en.html

  2. Windows应用程序支持。(通过酒)

    (安装Wine X64和X86,现在您可以在Linux上运行Windows应用程序。)

  3. 创建一个3GB的交换内存。避免由于内存不足而导致的错误。

    (交换位置:/ var / swapd)

  4. 安装中文输入环境,中文支持。

    (在没有中文环境的情况下,您将无法查看中文字体。这会导致编码混乱。)

  5. 安装人们推荐的软件,例如浏览器,Office工具和输入法。

    (我在https://www.hostloc.com/thread-466449-1-1.htmlhttps://www.hostloc.com/thread-473982-1-1.html上发布了一份调查报告。请尊重调查中,已安装Chrome,Firefox,WPS International,FileZilla。)

  6. 安装远程桌面客户端。(Remmina允许您连接和管理其他计算机或服务器。)(支持RDP / SSH / NX / SFTP / VNC / XDMCP协议)

让我们开始(通过root用户)

wget --no-check-certificate -qO ~/Linux-Remote-Desktop-Environment.sh 'https://tech.cxthhhhh.com/tech-tools/Linux-Remote-Desktop-Environment/Linux-Remote-Desktop-Environment.sh' && chmod a+x ~/Linux-Remote-Desktop-Environment.sh
(CentOS 7+)			bash ~/Linux-Remote-Desktop-Environment.sh -CentOS
(Debian 9+)			bash ~/Linux-Remote-Desktop-Environment.sh -Debian
(Ubuntu 18.04+)			bash ~/Linux-Remote-Desktop-Environment.sh -Ubuntu

现在,您已经可以通过RDP(IP:3389)连接

(Please note that it is generally not recommended to use the root user, so the user [RdpUser] is automatically created with the password [cxthhhhh.com] and you should change the default password as soon as possible.)

您应该查看我的教程,以了解需要注意的内容。

Tutorial name : [Original] One-click installation of Desktop environment, RDP, Windows support for Linux
URL : https://tech.cxthhhhh.com/linux/2018/08/07/original-one-click-installation-of-desktop-environment-rdp-windows-support-for-linux-en.html

版本2.0.2(稳定版)于2018年9月11日更新

apache解决wordpress修改固定链接后出现404错误

wordpress程序修改固定链接设置后页面出现404错误,打不开文章页是什么原因呢?是伪静态设置出了问题,只要简单两步就可以解决。

方法/步骤

  1. 第一步:修改.htaccess文件,设置伪静态规则,这个文件位于你wordpress网站的根目录,如果没有就创建它。

    笔者用的是一款服务器管理系统,可以一键配置,你如果用其他系统或者FTP管理也是可以的,只要内容正确即可。

    内容如下:

    <IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ – [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule>

    两步解决wordpress修改固定链接后出现404错误
  2. 第二步:修改httpd.conf,这个是apache下面的文件,如图:

    两步解决wordpress修改固定链接后出现404错误
  3. 找到文件之后打开,按下面的步骤找到下面的两行代码并修改:

    1、找到“LoadModule rewrite_module modules/mod_rewrite.so”如果前面有“#”就删掉就可以了。

    两步解决wordpress修改固定链接后出现404错误
  4. 2、找到”AllowOverride”把如果后面是 None修改成 all就可以了,改成:AllowOverride all

    两步解决wordpress修改固定链接后出现404错误
  5. 5

    说明:通常主机商都会把apache功能给设置好,所以一般来说第二步不需要操作,做完第一步你的404问题就解决了,万一没解决的话可以再做第二步操作,完成后重启apache即可。

Apache2部署WordPress

在Apache2部署WordPress程序, 环境:Ubuntu 14.04 LTS x64 MySQL 5.5 Apache 2.4.7 WordPress 4.5.2-zh_CN

安装MySQLsudo apt-get install mysql-server

安装过程中会有几个设置选项:

New password for the MySQL “root” user:

Repeat password for the MySQL “root” user:

测试MySQL安装成功:

mysql -u root -p

Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 42 Server version: 5.5.49-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement. mysql>

安装Apache2sudo apt-get install apache2

浏览器地址中输入:

或者

看到Apache2主页

常见问题:

Apache2重启时遇到

AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message

解决:

sudo vim /etc/apache2/apache2.conf # 输入一下内容 ServerName 127.0.0.1 # 重启Apache2 sudo service apache2 restart

安装php5sudo apt-get install php5

安装PHP其他模块

# MySQL连接 sudo apt-get install php5-mysql

# 安装phpMyAdmin sudo apt-get install phpMyAdmin # Web server to reconfigure automatically # 选择Apache2 # Configure database for phpmyadmin with dbconfig-common? # Yes # Password of the database’s administrative user: # MySQL application password for phpmyadmin: # Password confirmation: # 创建连接 sudo ln -s /usr/share/phpmyadmin /var/www/Html

测试PHP和phpMyAdmin安装成功

PHP测试

cd /var/www/Html sudo vim test.php # 加入Hello PHP! 保存退出

浏览器输入:

phpMyAdmin测试

浏览器输入:

# 进入登录页面

安装WordPress官网下载WordPress

解压WordPress

sudo tar -zxvf wordpress-4.5.2-zh_CN.tar.gz -C /var/www/Html/

创建数据库

# 登录MySQL mysql -u root -p # 创建数据库 create database db_wp; # 查看数据库 show databases;

配置WordPress

浏览器输入:

现在就开始

数据库名 数据库用户名 数据库密码 数据库主机 数据库表前缀

抱歉,我不能写入wp-config.php文件

您可以手工创建wp-config.php文件并将以下信息贴入其中

sudo vim /var/www/Html/wordpress/wp-config.php # 将浏览器上的内容复制进去 # 将编码格式改成utf8 /** 创建数据表时默认的文字编码 */ define(‘DB_CHARSET’, ‘utf8’); # 保存退出,浏览器进行安装

设置WordPress基本信息

站点标题 用户名 密码 电子邮箱

登录后进入后台仪表盘,安装结束!

本文地址:http://itbyc.com/cms/wordpress/11753.html
转载请注明出处。

PHP版本Non Thread Safe和Thread Safe如何选择?区别是什么?

PHP版本分为Non Thread Safe和Thread Safe,Non Thread Safe是指非线程安全,Thread Safe是指线程安全,区别是什么?如何选择?

4af306b27c3a707d56974ac2261398c.png
Non Thread Safe和Thread Safe的区别

Non Thread Safe和Thread Safe

Non Thread Safe:非线程安全,非线程安全是与IIS搭配的环境;

Thread Safe:线程安全,线程安全是与Apache搭配的环境。

如果你的使用的是IIS服务器,就选择Non Thread Safe(非线程安全),如果使用Apache服务器,就选择Thread Safe(线程安全)。

那么,如何查看当前PHP到底是Non Thread Safe(非线程安全)还是Thread Safe(线程安全)?很简单,打印phpinfo(),查看PHP版本信息中的Thread Safety选项,此选项为enable,就是Thread Safe(线程安全)版本,否则就是None Thread Safe(非线程安全)版本。

以上就是PHP版本Non Thread Safe和Thread Safe如何选择?区别是什么?的详细内容,更多请关注php中文网其它相关文章!

———————
本文著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
来源地址:https://www.php.cn/php-weizijiaocheng-418642.html
来源:php中文网(www.php.cn)
© 版权声明:转载请附上原文链接!

Windows IIS 上安装部署 WordPress 网站快速简要教程

关于在 Windows Server 上部署 WordPress 站点,前面按步骤写了好几篇文章,截了好多图。自己感觉有点啰嗦,写的太多了,好像在 Windows 上部署一个 WordPress 站点有多么复杂似的,所以本文干脆再整理一篇稍微简化一点的。如果想看啰嗦详细的,请访问下面这些链接:

Windows 上可以完美运行 PHP WordPress 站点,Windows 上也可以安装运行 MySQL,PHP、MySQL 本来就是跨平台的。微软也对 IIS 运行 PHP 程序有很好的支持,可以看这个链接:https://php.iis.net。任何支持 PHP 和MySQL 的服务器都可以用来运行 WordPress。

WordPress.org 官方推荐服务器配置,WordPress 网站主机

  • PHP 5.2 或更高版本
  • MySQL 5.0.15 或更高版本

环境

  • 操作系统:安装有 IIS 的任何 Windows 机器。请忽略老掉牙的 Windows XP、Windows Server 2003,虽然也可以跑 WordPress。
  • PHP:WordPress 是 PHP 语言开发的网站程序。PHP 可以在 IIS 上以 FastCGI 方式运行 。
  • MySQL:WordPress 数据存储使用的是 MySQL 数据库,所以需要一台 MySQL 数据库服务器或者自行安装。

MySQL 数据库

如果已经有现成的 MySQL 数据库服务器,请忽略安装步骤。无论是 Linux 或者 Windows ,能连接上就行,直接创建一个空的数据库。运行 WordPress 站点,个人建议使用 Oracle MySQL 官方版本,不要使用 MariaDB 等分支版本。我起初用的就是 MariaDB,运行 WordPress 主程序没问题,但是有些主题、插件会报错。

下载 MySQL for Windows 安装文件

Oracle MySQL 官方安装包文件下载页面

安装 MySQL

服务器上只需要安装 MySQL Server 就可以了, 如果要在服务器上操作 MySQL 数据库,建议把 MySQL Workbench 客户端工具也装上。在运行 MySQL Installer 前,可以先确保机器上已经安装有 Microsoft Visual C++ for Visual Studio 可再发行组件包;或者你也可以像我一样,直接运行 MySQL Installer,让它自己检测,如果提示缺少 VC++ ,则退出 MySQL Installer,再手动安装 VC++ 包。

安装Microsoft Visual C++ for Visual Studio 可再发行组件包:

Windows Server 安装 MySQL,安装 Microsoft Visual C++ 2013 可再发行组件包

安装 MySQL Server 和 MySQL Workbench:

Windows Server 安装 MySQL,选择 MySQL Server 和 Workbench 产品

创建一个 WordPress MySQL 数据库

你可以用命令创建 MySQL 数据库,这里用 Workbench 客户端工具可视化操作。

Workbench 创建 MySQL 数据库

IIS 配置 PHP 支持

下载 PHP for Windows 安装文件

  • PHP for Windows 官方下载页面:http://windows.php.net/download
  • PHP 也需要 Microsoft Visual C++ Redistributable for Visual Studio 可再发行组件包,且上述 PHP for Windows 页面有列 Visual C++ 可在发行组件包各版本下载地址。
  • PHP 版本:根据操作系统和 Web 服务器(IIS 或者 Apache)的不同,要下载相应的 PHP 文件,如下图下载页面有详细说明:
    • IIS:下载 VC15 x86 Non Thread Safe 或者 VC15 x64 Non Thread Safe 版本。
    • Apache:下载 VC15 x86 Thread Safe 或者 VC15 x64 Thread Safe 版本。
  • PHP 5.x or 7.x:

PHP for Windows 官方下载页面

安装 PHP

1. 直接解压下载下来的 PHP zip包件,比如 C 盘根目录 C:\PHP。

2. 打开 C:\PHP 目录,复制 php.ini-production 文件,去掉“-production”重命名为 php.ini。

3. 修改 php.ini 如下设置:

  1. cgi.force_redirect = 0
  2. fastcgi.impersonate = 1
  3. ;去掉前面分号”;”注释,开启扩展模块
  4. extension=curl
  5. extension=mysqli

确保 IIS 已开启 CGI 模块选项

IIS 开启 CG I支持模块选项

在 IIS 上添加 PHP FastCGI 模块支持

IIS 处理程序映射 添加模块映射

IIS Add Module Mapping 添加模块映射

在 IIS FastCGI 设置(FastCGI Setting)界面,右键/编辑或者双击 C:\PHP\php-cgi.exe,设置监视 php.ini 文件改动:

IIS 编辑 PHP FastCGI Setting 设置

IIS 设置监视 PHP.ini 文件更改

测试 PHP 是否安装成功

在 IIS 上已存在的站点(或者新建一个站点)目录下新建一个 test.php文件,文件内容输入:<?php phpinfo(); ?>。然后在浏览器里访问这个文件地址。如果如下图,则说明 PHP 安装配置 OK。

IIS 测试 PHP 安装运行

安装 IIS URL Rewrite 模块

如果你想 WordPress 站点有漂亮的对用户和搜索引擎友好的 URL 链接格式,需要确保 IIS 安装了 URL Rewrite 模块,否则 会报 404 错误。

下载 IIS URL Rewrite 模块:

微软官方 IIS URL Rewrite 模块下载页面

安装完成后,在 IIS 的 Features View(功能视图),可以看到一个 URL Rewrite:

查看 IIS URL Rewrite 模块

IIS 上添加部署 WordPress 网站

下载 WordPress

Downlaod WordPress 下载 WordPress 压缩包

添加 IIS 网站

1. 解压下载好的 WordPress 压缩包,如:D:\WebSites\demo.wordpress.com。

2. 在 WordPress 程序文件夹根目录,找到 wp-config-sample.php文件,并重命名为 wp-config.php。

3. 用文本编辑器打开 wp-config.php 文件,修改 MySQL 数据库连接信息(上述 MySQL 步骤创建好的空数据库):

  1. // ** MySQL settings – You can get this info from your web host ** //
  2. /** The name of the database for WordPress */
  3. /*数据库名称*/
  4. define(‘DB_NAME’, ‘wordpressdemo’);
  5. /** MySQL database username */
  6. /*登录用户名, 须有上述数据库操作访问权限*/
  7. define(‘DB_USER’, ‘demodbo’);
  8. /** MySQL database password */
  9. /*数据库用户登录密码*/
  10. define(‘DB_PASSWORD’, ‘demoPassword’);
  11. /** MySQL hostname */
  12. /** 数据库服务器名或者IP,如果 MySQL 端口不是默认的3306,则格式为 hostname:端口号, 如: localhost:3307 */
  13. define(‘DB_HOST’, ‘localhost’);

4. 和一般普通网站(ASP.NET/MVC或者其它类型)的添加方式一样,在IIS 上添加一个站点,指向 WordPress 程序文件所在目录。

5. 给这个这点添加一个默认文档 index.php。可以把 Default.htm、default.aspx、等其它默认页面文档都删除了,只保留 index.php。

IIS 添加 WordPress 默认文档 index.php

6. 浏览器访问这个网站,会自动进行第一次初始化安装:

WordPress 首次初始化安装

7. 安装完成后,登录进入 WordPress 管理后台:

WordPress 后台管理控制面板

设置漂亮友好的固定链接格式

一般网站采用的比较友好的链接格式,如:

  1. #1 包含分类目录、Url 别名:
  2. https://blog.codeusing.com/category/post-name/
  3. #2 只包含 Url 别名
  4. https://blog.codeusing.com/post-name
  5. #3 包含年、月、日、Url 别名:
  6. http://example.com/year/month/day/post-name

如果你也想要这种格式:

1. 安装了 IIS URL Rewrite 模块。

2. 在 WordPress 网站根目录 web.config(没有的话创建一个) 文件里添加了 URL 路由重写规则:

  1. <rewrite>
  2. <rules>
  3. <rule name=“Main Rule” stopProcessing=”true”>
  4. <match url=“.*” />
  5. <conditions logicalGrouping=“MatchAll”>
  6. <add input=“{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” />
  7. <add input=“{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true” />
  8. </conditions>
  9. <action type=“Rewrite” url=”index.php/{R:0}” />
  10. </rule>
  11. <rule name=“WordPress: demo.wordpress.com” patternSyntax=”Wildcard”>
  12. <match url=“*” />
  13. <conditions>
  14. <add input=“{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” />
  15. <add input=“{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true” />
  16. </conditions>
  17. <action type=“Rewrite” url=”index.php” />
  18. </rule>
  19. </rules>
  20. </rewrite>

Wordpress 添加 IIS URL Rewrite 路由规则

3. 在 WordPress 固定链接设置界面进行配置:

Wordpress 固定链接设置 Permalink Settings

4. 浏览测试前台页面:

Wordpress 添加 IIS Url Rewrite 规则后,页面可以正常访问

结束,搞定!