欢迎光临
我们一直在努力

在 Linux 命令行中转换大小写

sumaxi阅读(81)

有很多方法可以在 Linux 命令行中将文本从小写更改为大写,反之亦然。实际上,有一组这样的命令可以选择。这篇文章检验了一些优秀的命令来完成这项工作,以及你该如何让它们正常工作。

66afb4048e24c0c8a192213f462777a6-2.jpg-wh_651x-s_1072713676-2

使用 tr

tr(translate)命令是在命令行或脚本中最容易使用的命令之一。如果你要确定要一串大写字符串,你只需将它传给 tr,如下所示:

  1. $ echo Hello There | tr [:lower:] [:upper:]
  2. HELLO THERE

下面是一个在脚本中使用这个命令的例子,当你要确保添加到文件中的所有文本都使用大写形式以保持一致性时(LCTT 译注:这里输入部门名称作为示例):

  1. #!/bin/bash
  2. echo -n “Enter department name: “
  3. read dept
  4. echo $dept | tr [:lower:] [:upper:] >> depts

将顺序切换为 [:upper:] [:lower:] 会产生相反的效果,将所有大写的部门名称都转换为小写:

  1. echo $dept | tr [:upper:] [:lower:] >> depts

同样,你可以使用 sed 命令的 A-Z 和 a-z 字符串完成相同的操作:

  1. echo $dept | tr a-z A-Z >> depts

毫无疑问,反转 a-z 和 A-Z 字符串的顺序将产生相反的效果,将文本全部变为小写。

使用 awk

awk 命令可让你使用它的 toupper 和 tolower 选项执行相同的操作。上例脚本中的命令可以用这种方式代替:

  1. echo $dept | awk ‘{print toupper($0)}’ >> depts

相反操作(切换为小写)如下所示:

  1. echo $dept | awk ‘{print tolower($0)}’ >> depts

使用 sed

sed(stream editor)命令也可用于切换大小写。它与上面显示的两个命令中的第一个具有相同的效果。

  1. echo $dept | sed ‘s/[a-z]/U&/g’ >> depts

从大写字母切换到小写字母只需将行尾附近的 U 替换为 L。

  1. echo $dept | sed ‘s/[A-Z]/L&/g’ >> depts

操作文件中的文本

awk 和 sed 都能更改整个文件的文本大小写。因此,你发现你的老板需要所有部门名称的小写么?没问题。只需带上文件名运行以下命令:

  1. $ awk ‘{print tolower($0)}’ depts
  2. finance
  3. billing
  4. bookkeeping

如果要覆盖 depts 文件,而不仅仅是以小写形式显示,则需要执行以下操作:

  1. $ awk ‘{print tolower($0)}’ depts > depts-
  2. $ mv depts- depts

但是,使用 sed 进行更改,你可以避免最后一步,因为 sed 可以“原地”编辑文件,如下所示,文件完整,但文本全部小写:

  1. $ sed ‘s/[A-Z]/L&/g’ depts

仅将首字母转换为大写

要仅将字符串中单词的首字母转换为大写,那么可以执行以下操作:

  1. $ echo design & engineering| sed -e “s/b(.)/\u1/g”
  2. Design & Engineering

该命令将确保首字母大写,但不会更改其余字母。

确保只有首字母大写

当要更改文本以使只有首字母大写时,这更具挑战性。假设你正在处理一个工作人员姓名列表,并且希望以正常的“名 姓”方式对其格式化。

1. 使用 sed

你可以使用更复杂的 sed 命令来确保以下结果:

  1. $ echo design & ENGINEERING | sed ‘s/b([[:alpha:]])([[:alpha:]]*)b/\u1L2/g’
  2. Design & Engineering

2. 使用 Python

如果你已安装 Python,你可以运行这样的命令,它还可以设置文本格式,以便每个单词只有首字母大写,并且它可能比上面显示的 sed 命令更易于解析:

  1. $ echo -n “design & engineering” | python3 -c “import sys; print(sys.stdin.read().title())”
  2. Design & Engineering

有多种方法可以在大小写之间更改文本格式。哪种方法效果最好取决于你要处理的是单个字符串还是整个文件,以及想要的最终结果。

可在Linux桌面使用的3个电子书阅读器应用

sumaxi阅读(97)

4c49e718d7327dafa93cb1c8cfeecd53-1.jpg-wh_651x-s_2569531235-1

任意一个开源电子书应用都能使你在大屏设备上的阅读体验得到提升。

我通常使用手机或 Kobo 阅读器阅读电子书,总是没有在大屏设备上阅读书籍那么爽。很多人经常在自己的笔记本或桌面电脑上阅读电子书,如果你有这种需求(或者你认为以后会遇到这种情况),我想向你介绍三种 Linux 桌面下的电子书阅读器。

Bookworm(书虫)

Bookworm 意在成为一个“简洁、专注的电子书阅读器”。事实证明它也确实做到了。Bookworm 内置一系列基础功能,有人抱怨它太过简单,缺少功能性(虽然这词显然有点指意不明)。Bookworm 起到了应有的作用而没有无关的花哨功能。

该应用的界面整洁干净。

746a5e4ab978cd501da68bfee19b9737-1

Bookworm 电子书应用

你可通过以下方式查看书籍:

  • 空格键前往下一页
  • 上下方向键按行移动
  • 左右方向键跳转至前后章节

你也可以通过添加注释或书签跳转至特定页面。

daf386c067e66de89d0ace0e844fa88b-1

Bookworm 注释

Bookworm 没有太多设置选项。你能调整书籍字体大小及间距,开启双页模式或夜间模式。在应用中添加新文件夹后,Bookworm 会自动扫描文件夹中的电子书。

a6a530aa6c75fca7dcd06a047b674a3a-1

Bookworm 参数设置

Bookworm 支持常用的电子书格式:EPUB、PDF、MOBI、FB2,你还能用它阅读 CBR 和 CBZ 格式的数字版漫画。我只在 Bookworm 上测试了前三种格式,PDF 倒是能打开,但加载速度很慢,格式也很难看。

Foliate

单从功能上来说,Foliate 确实比 Bookworm 强上一些。Foliate 不仅功能更强,它还有更多设置选项。这个功能多样、简单干净的应用满足了所有要求。

7690c1bda3effedd299e82857e4fc4a1-1

Foliate 电子书应用

在 Foliate 中可以通过空格、方向键、向上或向下翻页键浏览电子书,这里没什么特别的。

你还可以在书籍中添加注释、查找以及翻译字句、查询字词含义。如果你电脑上安装了智能语音应用, Foliate 还能将文本朗读出来。

58b6fa8764d076449f8ab171abfd7952-1

在 Foliate 中的注释文本

Foliate 与 Bookworm 相比有更多自定义选项。你能在应用中修改字体类型及大小、行间距、电子书页边距,也可以调高或降低屏幕亮度,从应用内置的四个主题中选择一个等。

f5eb5183d9dc7fef39d69470a63e64ec-1

Foliate 设置

你可以在 Foliate 上阅读 EPUB、MOBI、AZW、AZW3 格式的电子书。如果你不了解,我可以提前告诉你,后三种格式是亚马逊 Kindle 阅读器上架的书籍的闭源格式。

Calibre 电子书阅读器

这个电子书阅读器是 Calibre 电子书管理工具的一个组件,就像它的前代一样,电子书阅读器这部分并不是软件整体最棒的部分。

4b90a29adc6612a1f1a47a5621d790b5-1

电子书阅读器应用

不过别被上面的话吓到,它也的确是个桌面电子书阅读器。

在 Calibre 电子书阅读器中,你可以通过方向键、向上/向下翻页键以及空格浏览书籍,还能在在线字典中查找词语含义,添加书签。这一阅读器没有注释功能,但内置的搜索引擎却很好用,你还能将书籍保存为 PDF 格式(虽然我不太明白你为什么要这么做)。

不过参数设置这里确是它出彩的地方,它的可选设置比 Bookworm 和 Foliate 加起来都多,从字体到文本布局,页面分割方式你都能改。除此之外,你还能自定义应用按键设置,将你喜欢的词典网站添加进来,方便阅读查找。

bfada8338471051d48e0b0a93948517d-1

电子书参数设置

Calibre 电子书阅读器一个很有用的功能,就是把自行设置的 CSS 配置文件效果应用到电子书上。赘言一句,CSS 是一种调整网页格式的方法(这类文件就是许多电子书的一个组成部分)。如果你是使用 CSS 的高手,你可以将自己的 CSS 文件复制粘贴到配置窗口的 “User stylesheet” 部分,这就是个性化的究极办法。

据开发者描述,这一电子书阅读器“能支持所有主流电子书格式”。如果你想知道具体支持格式是什么,这是列表链接。我测试了列表中的一小部分格式,没有发现问题。

留在最后的话

不管你只是单纯想找个电子书阅读器,还是有个更多复杂功能的应用,上文提到的三个选择都很不错,而且它们都能提升你在大屏设备上的阅读体验。

Linux 的这十几个工具堪称神器!你用过几个呢?建议收藏

sumaxi阅读(70)

Linux系统是目前仅次于Windows系统的一个开源系统,并且拥有比Windows系统更广泛的应用范围,从航天到军事、从科研到金融、从手机到电脑,你能够在任何一个需要操作系统的地方看到Linux的身影。

7217aadb867c3b6b45d5bb93a04b84bf-1.jpeg-wh_651x-s_2710886084-1
实际上Linux并不是一个真正的系统,它仅仅是一个有着上万行代码的系统内核,最初版本也只能够在Minix操作系统上运行,并不是完全独立运行的,这个情况在第二个版本更新后才发生了改变,可以直接运行在制定类型的计算机上。

下面来接入正题,分享几个好用的Linux工具和一些Linux学习资料

ag:比grep、ack更快的递归搜索文件内容。

cf099d83b052eb4bbbb3605f40c93feb-1
tig:字符模式下交互查看git项目,可以替代git命令。

0d97213c3462c35e1b14a98bfde50b14-1
mycli:mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令。

64ef25fb6a9aa9cd98fa4b096ab9bacc-1
jq: json文件处理以及格式化显示,支持高亮,可以替换python -m json.tool。

b2c004149e300c68ee2c564e6087b126-1
shellcheck:shell脚本静态检查工具,能够识别语法错误以及不规范的写法。

e60e24a819d74eb5c3363db3d692ab81-1
fzf:命令行下模糊搜索工具,能够交互式智能搜索并选取文件或者内容,配合终端ctrl-r历史命令搜索简直完美。

0c07b57a7d40597e2fc01c7be2f4f047-1
PathPicker(fpp): 在命令行输出中自动识别目录和文件,支持交互式,配合git非常有用。

运行以下命令:

  1. git diff HEAD~8 –stat | fpp

b403b84688e710a086e56c3de1e8cacd-1
htop: 提供更美观、更方便的进程监控工具,替代top命令。

ee2c39060280f9df048e2ef90b17cf1b-1
glances:更强大的 htop / top 代替者。

htop 代替 top,glances 代替 htop:

bd52d7c9d57734791e0c5fea9f8d229f-1
信息比 htop 丰富了不少,更全了,对吧?除了命令行查看外,glances 还提供页面服务,让你从页面上随时查看某服务器的状态。

axel:多线程下载工具,下载文件时可以替代curl、wget。

  1. axel -n 20 http://centos.ustc.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso

93f3893b9c072bb09af9dbe17cd0eee1-1
sz/rz:交互式文件传输,在多重跳板机下传输文件非常好用,不用一级一级传输。

cloc:代码统计工具,能够统计代码的空行数、注释行、编程语言。

cc07942a3a0fb46259304fadb38818f2-1.jpeg-wh_600x-s_1470549542-1
tmux:终端复用工具,替代screen、nohup。

6ea7571a8658ed7ff89db7c4fdd6361d-1
script/scriptreplay: 终端会话录制。

  1. # 录制
  2. script -t 2>time.txt session.typescript
  3. # your commands
  4. # 录制结束
  5. exit
  6. # 回放
  7. scriptreplay -t time.txt session.typescript

multitail:多重 tail。

通常你不止一个日志文件要监控,怎么办?终端软件里开多个 tab 太占地方,可以试试这个工具:

f14d5aceaa8ab350c22376f5885c1ce7-1
童鞋们,你用过哪个工具?

解决centos7 CPU100%的过程

sumaxi阅读(77)

手上有一台华为1H2G的小鸡,安装了宝塔面板,平时主要来测试一些源码的,但是前段时间上去发现负载和CPU都爆红100%了,作为一个不懂代码的小白,十分不得其解。

问题:CPU100%

20200307130805-52900-1

解决

  1. 首先百度了一下Centos7下CPU100%的情况,发现大部分大佬们说是中马了,但是想了想,以我每次上传源码前都用三个后门木马查杀工具以及两个在线查毒过一遍的小心翼翼,中马的几率应该不大。于是继续排查:
  2. 尝试重启一下服务器,调整各项软件的配置,发现并没有什么卵用
  3. 上ssh,输入 “top -c” 显示进程运行信息列表,倒是没发现有什么可疑进程。在准备尝试其他操作的时候,发现了一个不理解的进程,大体是node 运行了一个已经被我删除的目录。那是一个我之前测试的源码留下的站点目录,但是已经被我删了,为什么还会运行呢?带着这样的疑问,百度了一下,有大佬说宝塔有时候删除进程会失效,于是测试在ssh中打开那个目录,但是发现并不存在该目录。
  4. 调查node下的详细进程:管理node进程有个十分优秀的工具-pm2 ,于是运行 “pm2 logs” 查看所有日志。一运行,问题马上出来,原来后台一直在尝试打开那个被我删除的目录,而且pm2的日志文件已经4个多G。对于这种问题,由于作为小白的我实在没有太好的解决办法,于是尝试直接运行 “pm2 stop all” 关闭所有进程,然后去面板刷新一看
    20200307130806-79b51-1
    可以看到,CPU直接降到3%了,看来问题就是出在这里了。
  5. 总结:遇到CPU100%不能慌,先尝试重启一下看能否解决问题,没什么不是一次重启不能解决的,如果有……那就上ssh查看进程,使用top命令查看进程,遇到可疑进程先别急着杀掉,把进程号记下来,ps命令查看进程信息找到对应目录,去对应的目录下查看是否有可疑文件,有则杀之。杀完文件干掉进程还不够,记得使用crontab命令查看是否有定时任务重启该恶意进程,如果有的话就使用 “crontab –e” 命令将其删除。
    以上就是本小白遇到CPU100%后进行的一些解决办法,可能有些语句不是很通顺,或有什么错误,欢迎各位大佬帮忙指正。

基于宝塔面板安装qiandao.today自动签到工具

sumaxi阅读(118)

QianDao.Todao简介

qiandao.today:一个自动签到框架 Base on an HAR Editor

本次测试环境

Linux为Centos7.3
Python版本为2.7
宝塔面板版本为免费版6.8.8

项目地址

https://github.com/binux/qiandao

前期准备

  1. 安装宝塔面板,并安装相关环境。我这里用的是LNMP(nginx)。
  2. 在“软件管理”里安装Docker管理器
  3. 安装完Docker管理器后点击后面的设置
    unnamed-file-25-1
    Ps:我刚安装好后点击进去提示抱歉,出错了;Traceback(most recent call last);............错误
    可以在ssh中输入pip install docker==2.7来升级一下版本,如果报错:Cannot uninstall 'requests'. It is a distutils ..........是因为requests 默认版本过低造成的,这里再输入以下命令pip install -I requests==2.9此时应该不报错了,再次执行上一条命令,然后在宝塔面板后台重启面板或者重启服务器即可。

安装qiandao.today平台

1.进入宝塔后台的Docker管理器>设置>镜像管理>获取镜像,这里输入 fangzhengjin/qiandao
2.回到容器列表>创建容器(填写一下内容,端口跟目录映射填写完需要点“+”
unnamed-file-34-1

步骤:- 镜像:选择刚获取到的签到镜像
– 绑定IP:留空
– 容器端口:80(必须)
– 服务端口:6666(可自定义)
– 服务器目录:/Docker/qiandao(最好跟我一样)
– 服务器目录:/usr/src/app/(必须)
– 内存配额:100(根据需要)
– CPU权重:30(根据需要)

填写完后点提交
3.在主机根目录创建一个 /Docker/qiandao 结构的目录(刚刚设置的目录映射)
4.从官方https://github.com/binux/qiandao 打包下载然后上传至 /Docker/qiandao 目录
5.继续在/Docker/qiandao目录里面建立一个 database.db 空白文件,(可以新建一个文本文档.txt改为database.db)
6.最后通过服务器IP+6666(刚刚设置的服务端口)访问即可。这里注意,在你的主机运营商那里需要设置防火墙放行你刚刚的端口。
7.新建站点,pnp版本选择纯静态,其他的可以默认
8.选择刚刚创建的网站,点击设置进入站点修改页面,选择反向代理,添加反向代理
9.代理名称:qiandao(随便写),目标URl:127.0.0.1:6666(端口号是上面你在docker里填的服务器端口号)
unnamed-file-41-1
10.发送域名默认也可以直接填写你自己的域名,然后提交
至此配置完成,可以访问你的域名看看是否成功。

其他

如果你是技术大佬,还可以根据官方提供的安装教程https://github.com/binux/qiandao/wiki/Docker%E9%83%A8%E7%BD%B2%E7%AD%BE%E5%88%B0%E7%AB%99%E6%95%99%E7%A8%8B
自行安装。
平台安装好后,可以在https://qiandao.today/tpls/public 查看你需要的签到模板,点击下载。 在你自己的主页中 「我的模板+」 点击 + 上传。模板需要发布才会在「公开模板」中展示,你需要管理员权限在「我的发布请求」中审批通过。

SSH 免密登录

sumaxi阅读(69)

目录结构
免密登录相关文件放在~/.ssh目录下,主要有4个文件。

[root@linux1 .ssh]# pwd
/root/.ssh
[root@linux1 .ssh]# ll
total 16
-rw-r–r–. 1 root root 393 May 21 04:48 authorized_keys
-rw-r–r–. 1 root root 0 May 21 05:05 config
-rw——-. 1 root root 1675 May 21 04:17 id_rsa
-rw-r–r–. 1 root root 393 May 21 04:17 id_rsa.pub
-rw-r–r–. 1 root root 396 May 21 04:21 known_hosts
[root@linux1 .ssh]#
authorized_keys:存想免密登录机器的公钥
id_rsa:私钥   ##rsa、dsa:加密类型
id_rsa.pub:公钥
known_hosts:记录访问过本机的ip和公钥
config:可以配置忽略known_hosts记录等
生成步骤
1、生成秘钥
输入ssh-keygen,中间没有空格,输入命令之后,连续按3个回车。

[root@linux1 .ssh]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
9f:93:6b:7d:52:a8:12:5d:2a:75:92:74:ef:95:29:8b root@linux3
The key’s randomart image is:
+–[ RSA 2048]—-+
| |
| . . |
| . o . o|
| + o..o.|
| So =.oo. |
| o.oE..o |
| o=o . |
| . ooo . |
| o. o |
+—————–+
[root@linux3 .ssh]#
2、有些人会这样输入命令

[root@linux1 .ssh]# [root@linux4 .ssh]# ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa
-t dsa:表示使用密钥的加密类型,可以为’rsa’和’dsa’
-P ”:表示不需要密码登录

-f ~/.ssh/id_dsa:表示密钥存放的路径为${USER}/.ssh/id_dsa

 

3、发送到别的机器

[root@linux1 .ssh]# ssh-copy-id -i id_rsa.pub linux1
本机也发一份。
————————————————
版权声明:本文为CSDN博主「datadev_sh」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/datadev_sh/article/details/79304015

sumaxi阅读(80)

之前写 Superspeed 的时候,就有人让我整合到 teddysun 大佬的 bench.sh 脚本里面,当时没啥时间弄,而且人家写的东西也不能直接抄,今天花了点时间弄了一下,去查询了相关的 Linux 命令,发现写来写去,那些基本的获取参数的命令都是一样的,变不出啥花样了,就偷懒参照了 bench.sh 改了一份,一会就弄完了,测试了一下没啥大问题,就放出来了。

再次更新

2018.10.25    v1.1.3   增加TCP拥塞控制检测

2018.10.24    v1.1.2   取消speedtest默认的latency显示

2018.8.27    v1.1.1   当默认的speedtest由于自身ip库信息导致连接到较远的节点时候增加(*)提示

2018.8.14    v1.1.0    增加speedtest.net分享链接

2018.7.18    v1.0.9    修复部分bug

2018.7.14     v1.0.8     测速部分增加 fast-cli

2018.7.5     v1.0.7     ipip.net api 改用http,修复bug

2018.6.29     v1.0.6

修复硬盘容量重复bug

修改系统参数信息颜色

增加 hyper 识别

更换至 ipip.net 数据库

2018.5.11     v1.0.5       改用 ipip.net 数据显示 ip 地理位置信息

2018.5.5    v1.0.3       详细见 https://www.oldking.net/599.html

更新

  1. 新增 Virt 检测服务器类型参数,常见 openvz,kvm,独服都能检测出来
  2. 新增独服通电时间检测。
  3. 修复,speedtest 延迟飘逸,飘逸延迟统一改为 000.000 ms
  4. 修改 I/O 测试块大小
  5. 统一字符为英文,解决乱码问题

OpenVZ

openvz-1

Kvm

kvm-1

独服

de-1

一、特点

  1. 改进了显示的模式,基本参数添加了颜色,方面区分与查找。
  2. I/O测试,更改了原来默认的测试的内容,采用小文件,中等文件,大文件,分别测试IO性能,然后取平均值。
  3. 速度测试替换成了 Superspeed 里面的测试,第一个默认节点是,Speedtest 默认,其他分别测试到中国电信,联通,移动,各三个不同地区的速度。

二、使用方法

wget -qO- --no-check-certificate https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash

或者

curl -Lso- -no-check-certificate https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash

三、演示图

superbench-1

四、下载地址

https://github.com/oooldking/script/blob/master/superbench.sh

 

 

统一操作系统UOS适配NTKO Office控件:浏览器在线编辑文档

sumaxi阅读(103)

近一段时间以来,统信软件旗下的统一操作系统UOS在软硬件适配方面不断拓展,整个生态日渐完善,可以越来越好满足日常办公需求。

现在,NTKO Office文档控件Linux版也完成了与统一操作系统UOS的产品兼容适配,并支持鲲鹏、飞腾、龙芯、兆芯、海光等国产主流CPU平台。

NTKO Office文档控件Linux版出自致力于软件中间件研发的高科技IT公司——重庆软航科技,是其在十余年的Windows版产品自主研发与广泛成熟应用经验基础上,针对UOS在线办公提供的一款中间件产品。

它采用NPAPI插件技术、金山API接口,调用本地的WPS办公应用程序在线打开文档,支持在UOS系统中调用360、奇安信、红莲花、火狐等浏览器,在线打开WPS文字、WPS表格、WPS演示等文档,进而实现嵌入式的文档编辑和控制。

e0db0a952e8c9b487eb90596d12e7741-1.jpeg-wh_651x-s_3232389005-1

主要特性:

1、支持在线打开doc、docx、xls、xlsx、wps、et格式文档,并以二进制文件流的形式提交到服务器;

2、支持将Word文档在线转换为PDF、OFD版式文件并提交到服务器或保存到本地;

3、支持模板套红、添加图片、文字图片水印、文档保护等常用的文档办公自动化功能;

4、支持自定义菜单栏、自定义工具栏以及控件相关菜单控制等个性化设置;

5、支持调用Office VBA功能;

6、控件具有相关方法的回调事件,可更好的与应用业务逻辑连接

产品特点:

1、易部署、易管理,服务器无需安装任何组件,可以使用任意后台编程语言;

2、支持国产环境下360、奇安信、红莲花、火狐等浏览器运行控件;

3、提供控件安装程序,安装后即可使用,简单快捷;

4、除浏览器、WPS以及控件外,无需安装其他第三方软件,维护方便。

dca96193bb1d87e27a5825aff0b94fd3-1
技术体系

7a4e20f200053761c4f7e379d9443497-1
应用框架

ae6225d9db8549975a29c3f63d0bc712-1
总体架构

NTKO Office文档控件Linux版是纯客户端控件,继承于成熟稳定、应用广泛的Windows版产品的API接口风格,在HTML页面中以object标签的形式引入控件,通过JS脚本语言即可完成控件相关接口调用。

对于开发人员来说,不需要额外的学习成本,就可以轻松掌握。此前的Windows版应用系统也仅需极少代码改造量,即可快速完成国产化版本的改版迁移。

2decc45a0e0b41ca9dc799db525e3c59-1

使用Fedora 31和Nextcloud服务器构建自己的云

sumaxi阅读(128)

8945c4acf9af639b4878b19975aac5e9-1.png-wh_651x-s_1703272224-1

Nextcloud 是用于跨多个设备存储和同步数据的软件套件。你可以从 https://github.com/nextcloud/server 了解有关 Nextcloud 服务器的更多特性信息。

本文通过几个简单的步骤演示了如何使用 Fedora 和 Nextcloud 构建个人云。对于本教程,你将需要一台独立计算机或运行 Fedora 31 服务器版的虚拟机,还需要互联网连接。

步骤 1:预先安装条件

在安装和配置 Nextcloud 之前,必须满足一些预先条件。

首先,安装 Apache Web 服务器:

  1. # dnf install httpd

接下来,安装 PHP 和一些其他模块。确保所安装的 PHP 版本符合 Nextcloud 的要求

  1. # dnf install php php-gd php-mbstring php-intl php-pecl-apcu php-mysqlnd php-pecl-redis php-opcache php-imagick php-zip php-process

安装 PHP 后,启用并启动 Apache Web 服务器:

  1. # systemctl enable --now httpd

接下来,允许 HTTP 流量穿过防火墙:

  1. # firewall-cmd --permanent --add-service=http
  2. # firewall-cmd --reload

接下来,安装 MariaDB 服务器和客户端:

  1. # dnf install mariadb mariadb-server

然后启用并启动 MariaDB 服务器

  1. # systemctl enable --now mariadb

现在,MariaDB 正在运行,你可以运行 mysql_secure_installation 命令来保护它:

  1. # mysql_secure_installation
  2. NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL
  3. MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP
  4. CAREFULLY!
  5. In order to log into MariaDB to secure it, we'll need the
  6. current password for the root user. If you've just installed
  7. MariaDB, and you haven't set the root password yet, the password
  8. will be blank, so you should just press enter here.
  9. Enter current password for root (enter for none): <ENTER>
  10. OK, successfully used password, moving on...
  11. Setting the root password ensures that nobody can log into
  12. the MariaDB root user without the proper authorization.
  13. Set root password? [Y/n] <ENTER>
  14. New password: Your_Password_Here
  15. Re-enter new password: Your_Password_Here
  16. Password updated successfully!
  17. Reloading privilege tables...
  18. ... Success!
  19. By default, a MariaDB installation has an anonymous user,
  20. allowing anyone to log into MariaDB without having to have
  21. a user account created for them. This is intended only for
  22. testing, and to make the installation go a bit smoother. You
  23. should remove them before moving into a production environment.
  24. Remove anonymous users? [Y/n] <ENTER>
  25. ... Success!
  26. Normally, root should only be allowed to connect from
  27. 'localhost'. This ensures that someone cannot guess at the
  28. root password from the network.
  29. Disallow root login remotely? [Y/n] <ENTER>
  30. ... Success!
  31. By default, MariaDB comes with a database named 'test' that
  32. anyone can access. This is also intended only for testing, and
  33. should be removed before moving into a production environment.
  34. Remove test database and access to it? [Y/n] <ENTER>
  35. - Dropping test database...
  36. ... Success!
  37. - Removing privileges on test database...
  38. ... Success!
  39. Reloading the privilege tables will ensure that all changes
  40. made so far will take effect immediately.
  41. Reload privilege tables now? [Y/n] <ENTER>
  42. ... Success!
  43. Cleaning up...
  44. All done! If you've completed all of the above steps, your
  45. MariaDB installation should now be secure.
  46. Thanks for using MariaDB!

接下来,为你的 Nextcloud 实例创建独立的用户和数据库:

  1. # mysql -p
  2. > create database nextcloud;
  3. > create user 'nc_admin'@'localhost' identified by 'SeCrEt';
  4. > grant all privileges on nextcloud.* to 'nc_admin'@'localhost';
  5. > flush privileges;
  6. > exit;

步骤 2:安装 Nextcloud 服务器

现在,你已满足 Nextcloud 安装的预先条件,请下载并解压 Nextcloud 压缩包

  1. # wget https://download.nextcloud.com/server/releases/nextcloud-17.0.2.zip
  2. # unzip nextcloud-17.0.2.zip -d /var/www/html/

接下来,创建一个数据文件夹,并授予 Apache 对 nextcloud 目录树的读写访问权限:

  1. # mkdir /var/www/html/nextcloud/data
  2. # chown -R apache:apache /var/www/html/nextcloud

SELinux 必须配置为可与 Nextcloud 一起使用。基本命令如下所示,但在 nexcloud 安装中还有很多其他的命令,发布在这里:Nextcloud SELinux 配置

  1. # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?'
  2. # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?'
  3. # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data(/.*)?'
  4. # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini'
  5. # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?'
  6. # restorecon -Rv '/var/www/html/nextcloud/'

步骤 3:配置 Nextcloud

可以使用它的 Web 界面或在命令行配置 Nextcloud。

使用 Web 界面

在你喜欢的浏览器中,访问 http://your_server_ip/nextcloud 并输入字段:

d45f1fcf2ae7d4899068121641919ceb-1

使用命令行

在命令行中,只需输入以下内容,使用你之前在 MariaDB 中创建的独立 Nextcloud 用户替换相应的值:

  1. # sudo -u apache php occ maintenance:install --data-dir /var/www/html/nextcloud/data/ --database "mysql" --database-name "nextcloud" --database-user "nc_admin" --database-pass "DB_SeCuRe_PaSsWoRd" --admin-user "admin" --admin-pass "Admin_SeCuRe_PaSsWoRd"

最后几点

  • 我使用的是 http 协议,但是 Nextcloud 也可以在 https 上运行。我可能会在以后的文章中写一篇有关保护 Nextcloud 的文章。
  • 我禁用了 SELinux,但是如果配置它,你的服务器将更加安全。
  • Nextcloud 的建议 PHP 内存限制为 512M。要更改它,请编辑 /etc/php.ini 配置文件中的 memory_limit 变量,然后重新启动 httpd 服务。
  • 默认情况下,只能使用 http://localhost/ URL 访问 Web 界面。如果要允许使用其他域名访问,你可编辑 /var/www/html/nextcloud/config/config.php 来进行此操作* 字符可用于绕过域名限制,并允许任何解析为服务器 IP 的 URL 访问。
    1. 'trusted_domains' =>
    2. array (
    3. 0 => 'localhost',
    4. 1 => '*',
    5. ),

使用Eclipse在Fedora上进行 PHP 开发

sumaxi阅读(99)

13c5b1bfcee56aeb29c1aa2dde5c18dc-1.png-wh_651x-s_2728993824-1

Eclipse 是由 Eclipse 基金会开发的功能全面的自由开源 IDE。它诞生于 2001 年。你可以在此 IDE 中编写各种程序,从 C/C++ 和 Java 到 PHP,乃至于 Python、HTML、JavaScript、Kotlin 等等。

安装

该软件可从 Fedora 的官方仓库中获得。要安装它,请用:

  1. sudo dnf install eclipse

这将安装基本的 IDE 和 Eclipse 平台,能让你开发 Java 应用。为了将 PHP 开发支持添加到 IDE,请运行以下命令:

  1. sudo dnf install eclipse-pdt

这将安装 PHP 开发工具,如 PHP 项目向导、PHP 服务器配置,composer 支持等。

功能

该 IDE 有许多使 PHP 开发更加容易的功能。例如,它有全面的项目向导(你可以在其中为新项目配置许多选项)。它还有如 composer 支持、调试支持、浏览器、终端等内置功能。

示例项目

现在已经安装了 IDE,让我们创建一个简单的 PHP 项目。进入 “File →New → Project”。在出现的对话框中,选择 “PHP project”。输入项目的名称。你可能还需要更改其他一些选项,例如更改项目的默认位置,启用 JavaScript 以及更改 PHP 版本。请看以下截图。

bf044ed9a7872752cf8f06bfec19926b-1

Create A New PHP Project in Eclipse

你可以单击 “Finish” 按钮创建项目,或按 “Next” 配置其他选项,例如添加包含和构建路径。在大多数情况下,你无需更改这些设置。

创建项目后,右键单击项目文件夹,然后选择 “New→PHP File” 将新的 PHP 文件添加到项目。在本教程中,我将其命名为 index.php,这是每个 PHP 项目中公认的默认文件。

98205d1d3141287635569bcd8c1339c6-1

add a new PHP file

接着在新文件中添加代码。

3161201bdc09a947a85442bbca891387-1

Demo PHP code

在上面的例子中,我在同一页面上使用了 CSS、JavaScript 和 PHP 标记,主要是为了展示 IDE 能够支持所有这些标记。

页面完成后,你可以将文件移至 Web 服务器文档根目录或在项目目录中创建一个 PHP 开发服务器来查看输出。

借助 Eclipse 中的内置终端,我们可以直接在 IDE 中启动 PHP 开发服务器。只需单击工具栏上的终端图标,然后单击 “OK”。在新终端中,进入项目目录,然后运行以下命令:

  1. php -S localhost:8080 -t . index.php

bc65ddd0e25e465c52000798f3b00d1c-1

Terminal output

现在,打开浏览器并进入 http://localhost:8080。如果按照说明正确完成了所有操作,并且代码没有错误,那么你将在浏览器中看到 PHP 脚本的输出。

429d65b79d9f1f7e7ae24fa87af0f2c8-1

PHP output in Fedora

免备案CDN 更专业 更方便

免备案CDN免备案cdn