首页 » 网站建设 » php扩大antiword技巧_十年 Linux 桌面生计指南

php扩大antiword技巧_十年 Linux 桌面生计指南

访客 2024-12-08 0

扫一扫用手机浏览

文章目录 [+]

从 2006 年开始转战 Linux 系统后,经由几年的实践,我的软件设置在过去十年内出人意料的固定。
再过十年回顾一下,看看发生了什么,大概会非常有趣。

• 来源:linux.cn • 作者:Dennis Felsing • 译者:chenmu-kk •

php扩大antiword技巧_十年 Linux 桌面生计指南

(本笔墨数:12075,阅读时终年夜约:15 分钟)

php扩大antiword技巧_十年 Linux 桌面生计指南
(图片来自网络侵删)

从 2006 年开始转战 Linux 系统后,经由几年的实践,我的软件设置在过去十年内出人意料的固定。
再过十年回顾一下,看看发生了什么,大概会非常有趣。
在写这篇推文时,我迅速回顾了正在运行的内容:

htop overview

动机

我的软件先容排序不分先后:

程序该当运行在本地系统中以便我可以掌握它,这个中并不包括云办理方案。
程序应在终端中运行,以便于在任何地方连贯地利用它们,包括性能稍差的电脑或手机。
通过利用终端软件,可以实现自动聚焦键盘。
只有在一些故意义的地方,我会更喜好利用鼠标,由于在打字期间一贯伸手去拿鼠标觉得像在摧残浪费蹂躏韶光。
有时候过了一个小时我才把稳到乃至还没有插鼠标。
最好利用快速高效的软件,我不喜好听到风扇的声音和感到房间在变热。
我还可以连续长久地运行旧硬件,已经利用了 10 年的 Thinkpad x200s 还能很好地支持我所利用的软件。
组合。
我不想手动实行每个步骤,而是在须要时自动实行更多操作,这时自然是支持 shell。
操作系统

十二年前移除 Windows 系统后,我在 Linux 系统上经历了一个困难的开始,当时我手上只有 Gentoo Linux 系统的安装光盘和一本打印的解释书,要用它们来实现一个可运行的 Linux 系统。
虽然花费了几天的韶光去编译和修整,但终极还是以为自己受益颇多。

自此我再也没有转回 Windows 系统,但在持续的编译压力导致风扇失落灵后,我将我的电脑系统切换到 Arch Linux 。
之后我将其他的电脑和私人做事器也切换到了 Arch Linux。
作为一个滚动发布发行版,你可以随时升级软件包,但 Arch Linux News 已经详细宣布了个中最紧张的漏洞。

不过,令人烦恼的是一旦你更新了旧的内核模组,Arch Linux 就会移除旧版的干系信息。
我常常把稳到一旦我试着插入一个 USB 闪存盘,内核就无法加载干系组件。
相反,每次内核升级后都该当进行重启。
有一些 方法 可以办理这个问题,但我还没有实际地利用它们。

其他程序也会涌现类似的情形,常日 Firefox 、 cron 或者 Samba 在升级后都须要重启,但恼人的是,它们没有警告你存在这种情形。
我在事情中利用的 SUSE 很好地提醒了这种情形。

对付 DDNet 产品做事器,相较于 Arch Linux ,我更方向于 Debian 系统,这样在每次升级时涌现故障的几率更低。
我的防火墙和路由器利用了 OpenBSD ,它拥有干净系统、文档和强大的 pf 防火墙 ,而我现在不须要一个单独的路由器。

窗口管理器

从我开始利用 Gentoo 后,我很快把稳到 KDE 的编译韶光非常长,这让我没办法连续利用它。
我四处探求更大略的办理方案,最初利用了 Openbox 和 Fluxbox 。
某次,为了能更多进行纯键盘操作,我开始考试测验转入平铺窗口管理器,并在研究其初始版本的时候学习了 dwm 和 awesome 。

终极,由于 xmonad 的灵巧性、可扩展性以及利用纯 Haskell (一种出色的函数编程措辞)编写和配置,终极选择了它。
一个例子是,我在家中运行一个 40" 4K 的屏幕,但常常会将它分为四个虚拟屏幕,每个虚拟屏幕显示一个事情区,每个事情区自动排列在我的窗口上。
当然, xmonad 有一个对应的 模块 。

dzen 和 conky 对我来说是一个非常大略的状态栏。
我的整体 conky 配置看起来是这样的:

out_to_console yesupdate_interval 1total_run_times 0TEXT${downspeed eth0} ${upspeed eth0} | $cpu% ${loadavg 1} ${loadavg 2} ${loadavg 3} $mem/$memmax | ${time %F %T}

输入命令直接通过管道输入 dzen2:

conky | dzen2 -fn '-xos4-terminus-medium-r-normal--12-------' -bg '#000000' -fg '#ffffff' -p -e '' -x 1000 -w 920 -xs 1 -ta r

对我而言,一项主要功能是在完成事情后使终端发出蜂鸣声。
只须要大略地在 zsh 中的 PR_TITLEBAR 变量中添加一个 \a 字符就可以做到,只要事情完造诣可以发出蜂鸣声。
当然,我利用了命令:

echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf

将 pcspkr 内核模块列入黑名单来禁用实际的蜂鸣声。
相反 urxvt 的 URxvt.urgentOnBell: true 设置会将声音变为尖锐。
之后 xmonad 有一个 urgency 钩子来捕捉这类旗子暗记,并且我可以利用组合键自动聚焦到当前的发出紧急旗子暗记的窗口。
在 dzen 中我可以看到一个俊秀且通亮的 #ff0000 紧急窗口。

在我条记本上所得到的终极成品是:

Laptop screenshot

我听说前几年 i3 变得非常盛行,但它哀求更多的手动窗口对齐而不是自动对齐。

我意识到也有像 tmux 那样的终端多路复用器,但我仍想要一些图形化运用程序,因此终极我没有有效地利用它们。

终端连续性

为了使终端保持生动状态,我利用了 dtach ,它只是仿照屏幕分离功能。
为了使打算机上的每个终端都可连接和断开,我编写了一个小的封装脚本。
这意味着,纵然必须重新启动 X 做事器,我也可以使所有终端都运行良好,包括本地和远程终端。

Shell & 编程

对付 shell,我利用 zsh 而不是 bash ,由于它有浩瀚的功能。

作为终端仿照,我创造 urxvt 足够轻巧,支持 Unicode 编码和 256 色,具有出色的性能。
另一个主要的功能是可以分别运行 urxvt 客户端和守护进程。
因此,纵然大量终端也险些不占用任何内存(回滚缓冲区除外)。

对我而言,只有一种字体看起来绝对干净和完美: Terminus 。
由于它是位图字体,因此所有内容都是完美像素,渲染速率极快且 CPU 利用率低。
为了能利用 CTRL-WIN-[1-7] 在每个终端按需切换字体,我的 ~/.Xdefaults 包含:

URxvt.font: -xos4-terminus-medium-r-normal--14-------dzen2.font: -xos4-terminus-medium-r-normal--14-------URxvt.keysym.C-M-1: command:\033]50;-xos4-terminus-medium-r-normal--12-------\007URxvt.keysym.C-M-2: command:\033]50;-xos4-terminus-medium-r-normal--14-------\007URxvt.keysym.C-M-3: command:\033]50;-xos4-terminus-medium-r-normal--18-------\007URxvt.keysym.C-M-4: command:\033]50;-xos4-terminus-medium-r-normal--22-------\007URxvt.keysym.C-M-5: command:\033]50;-xos4-terminus-medium-r-normal--24-------\007URxvt.keysym.C-M-6: command:\033]50;-xos4-terminus-medium-r-normal--28-------\007URxvt.keysym.C-M-7: command:\033]50;-xos4-terminus-medium-r-normal--32-------\007URxvt.keysym.C-M-n: command:\033]10;#ffffff\007\033]11;#000000\007\033]12;#ffffff\007\033]706;#00ffff\007\033]707;#ffff00\007URxvt.keysym.C-M-b: command:\033]10;#000000\007\033]11;#ffffff\007\033]12;#000000\007\033]706;#0000ff\007\033]707;#ff0000\007

对付编程和书写,我利用 Vim 语法高亮显示和 ctags 进行索引,以及一些带有 grep 、sed 和其他用于搜索和操作的常用终端窗口。
这可能不像 IDE 那样舒适,但可以实现更多的自动化。

Vim 的一个问题是你已经习气了它的键映射,因此希望在任何地方都利用它们。

在 shell 功能不足强大时, Python 和 Nim 作为脚本措辞也不错。

系统监控

htop (查看当前站点的后台运行,是托管做事器的实时视图)非常适宜快速理解软件确当前运行状态。
lm_sensors 可以监控硬件温度、风扇和电压。
powertop 是一款由 Intel 发布的精良省电小工具。
ncdu 可以交互式剖析磁盘利用情形。

nmap 、 iptraf-ng、 tcpdump 和 Wireshark 都是剖析网络问题的基本工具。

当然还有很多更精良的工具。

邮件 & 同步

在我的家庭做事器上,我为自己所有的邮箱账号运行了 fetchmail 守护进程。
fetchmail 只是检索收到的邮件并调用 procmail :

#!/bin/shfor i in /home/deen/.fetchmail/; do FETCHMAILHOME=$i /usr/bin/fetchmail -m 'procmail -d %T' -d 60done

配置非常大略,然后等待做事器关照我们有新的邮件:

poll imap.1und1.de protocol imap timeout 120 user "dennis@felsin9.de" password "XXX" folders INBOX keep ssl idle

我的 .procmailrc 配置包含一些备份全部邮件的规则,并将邮件整理在对应的目录下面。
例如,基于邮件列表名或者邮件标题:

MAILDIR=/home/deen/shared/MaildirLOGFILE=$HOME/.procmaillogLOGABSTRACT=noVERBOSE=offFORMAIL=/usr/bin/formailNL="":0wc ! ? test -d /media/mailarchive/`date +%Y`| mkdir -p /media/mailarchive/`date +%Y`# Make backups of all mail received in format YYYY/YYYY-MM:0c/media/mailarchive/`date +%Y`/`date +%Y-%m`:0 ^From: .(.@..kit.edu|.@..uka.de|.@..uni-karlsruhe.de)$MAILDIR/.uni/:0 ^list-Id:.lists.kit.edu$MAILDIR/.uni-ml/[...]

我利用 msmtp 来发送邮件,它也很好配置:

account defaulthost smtp.1und1.detls ontls_trust_file /etc/ssl/certs/ca-certificates.crtauth onfrom dennis@felsin9.deuser dennis@felsin9.depassword XXX[...]

但是到目前为止,邮件还在做事器上。
我的文档全部存储在一个目录中,我利用 Unison 在所有打算机之间进行同步。
Unison 可以视为双向交互式 rsync ,我的邮件是这个文件目录下的一部分,因此它们终极存储在我的电脑上。

这也意味着,只管邮件会立即到达我的邮箱,但我只是按需拿取,而不是邮件一到达时就立即收到关照。

从此我利用 mutt 阅读邮件,利用侧边栏显示我的邮件目录。
/etc/mailcap 文件对付显示非纯文本邮件( HTML, Word 或者 PDF)不可或缺:

text/html;w3m -I %{charset} -T text/html; copiousoutputapplication/msword; antiword %s; copiousoutputapplication/pdf; pdftotext -layout /dev/stdin -; copiousoutput新闻 & 通讯

Newsboat 是一个非常棒的终端 RSS/Atom 阅读器。
我在一个有约 150 个提要的 tach 会话做事器上运行它。
也可以在本地选择提要,例如:

ignore-article "https://forum.ddnet.tw/feed.php" "title =~ \"Map Testing •\" or title =~ \"Old maps •\" or title =~ \"Map Bugs •\" or title =~ \"Archive •\" or title =~ \"Waiting for mapper •\" or title =~ \"Other mods •\" or title =~ \"Fixes •\""

我以同样的办法利用 Irssi 进行 IRC 通讯。

日历

remind 是一个可以从命令行获取的日历。
通过编辑 rem 文件可以设置新的提醒:

# One time eventsREM 2019-01-20 +90 Flight to China %b# Recurring HolidaysREM 1 May +90 Holiday "Tag der Arbeit" %bREM [trigger(easterdate(year(today()))-2)] +90 Holiday "Karfreitag" %b# Time ChangeREM Nov Sunday 1 --7 +90 Time Change (03:00 -> 02:00) %bREM Apr Sunday 1 --7 +90 Time Change (02:00 -> 03:00) %b# BirthdaysFSET birthday(x) "'s " + ord(year(trigdate())-x) + " birthday is %b"REM 16 Apr +90 MSG Andreas[birthday(1994)]# SunSET $LatDeg 49SET $LatMin 19SET $LatSec 49SET $LongDeg -8SET $LongMin -40SET $LongSec -24MSG Sun from [sunrise(trigdate())] to [sunset(trigdate())][...]

遗憾的是,目前 remind 中还没有中国农历的提醒功能,因此中国的节日不易打算。

我给提醒设置了两个名字:

rem -m -b1 -q -g

按韶光顺序核对待办事项清单

rem -m -b1 -q -cuc12 -w$(($(tput cols)+1)) | sed -e "s/\f//g" | less

显示适应终端宽度的日历:

remcal

字典

rdictcc 是鲜为人知的字典工具,它可以利用 dict.cc 很棒的词典并将他们转存在本地数据库中:

$ rdictcc rasch====================[ A => B ]====================rasch: - apace - brisk [speedy] - cursory - in a timely manner - quick - quickly - rapid - rapidly - sharpish [Br.] [coll.] - speedily - speedy - swift - swiftlyrasch [gehen]: - smartly [quickly]Rasch {n} [Zittergras-Segge]: - Alpine grass [Carex brizoides] - quaking grass sedge [Carex brizoides]Rasch {m} [regional] [Putzrasch]: - scouring pad====================[ B => A ]====================Rasch model: - Rasch-Modell {n}记录和阅读

我有一个大略记录任务的备忘录,在 Vim 会话中基本上一贯处于打开状态。
我也利用备忘录作为事情中“已完成”事情的记录,这样就可以检讨自己每天完成了哪些任务。

对付写文件、信件和演示文稿,我会利用 LaTeX 进行高等排版。
德式的大略信件可以这样设置,例如:

\documentclass[paper = a4, fromalign = right]{scrlttr2}\usepackage{german}\usepackage{eurosym}\usepackage[utf8]{inputenc}\setlength{\parskip}{6pt}\setlength{\parindent}{0pt}\setkomavar{fromname}{Dennis Felsing}\setkomavar{fromaddress}{Meine Str. 1\\69181 Leimen}\setkomavar{subject}{Titel}\setkomavar{enclseparator}{Anlagen}\makeatletter\@setplength{refvpos}{89mm}\makeatother\begin{document}\begin{letter} {Herr Soundso\\Deine Str. 2\\69121 Heidelberg}\opening{Sehr geehrter Herr Soundso,}Sie haben bei mir seit dem Bla Bla Bla.Ich fordere Sie hiermit zu Bla Bla Bla auf.\closing{Mit freundlichen Grüßen}\end{letter}\end{document}

在 我的私人网站 上可以找到更多的示例文档和演示文稿。

Zathura 读取 PDF 文件速率很快,支持 Vim 类控件,还支持两种不同的 PDF 后端: Poppler 和 MuPDF。
另一方面,在偶尔碰着 Zathura 无法打开的文件时, Evince 则显得更全能一些。

图片编辑

简便的选择是, GIMP 和 Inkscape 分别用于照片编辑和交互式向量图形。

有时 Imagemagick 已经足够好了,它可以从命令行直策应用,从而自动编辑图片。
同样 Graphviz 和 TikZ 可以用来绘制曲线图和其他图表。

Web 浏览器

对付 Web 浏览器,我一贯在利用 Firefox 。
相较于 Chrome,它的可扩展性更好,资源利用率更低。

不幸的是,在 Firefox 完备改用 Chrome 风格的扩展之后, Pentadactyl 扩展的开拓就停滞了,以是我的浏览器中再也没有令人满意的 Vim 类控件了。

媒体播放器

通过设置 vo=gpu 以及 hwdec=vaapi,具有硬件解码功能的 mpv 在播放期间 CPU 的占用率保持在 5%。
相较于默认的 PulseAudio,mpv 中的 audio-channels=2 彷佛可以使我的立体扬声器/耳机得到更清晰的降级混频。
一个很棒的小功能是用 Shift-Q 退出,而不是只用 Q 来保存回放位置。
当你与母语是其他措辞的人一起看视频时,你可以利用 --secondary-sid= 同时显示两种字幕,主字幕位于底部,次字幕位于屏幕顶部。

我的无线鼠标可以大略地通过一个小的配置文件( ~/.config/mpv/input.conf )实现远程掌握 mpv :

MOUSE_BTN5 run "mixer" "pcm" "-2"MOUSE_BTN6 run "mixer" "pcm" "+2"MOUSE_BTN1 cycle sub-visibilityMOUSE_BTN7 add chapter -1MOUSE_BTN8 add chapter 1

youtube-dl 非常适宜不雅观看在线托管的视频,利用 -f bestvideo+bestaudio/best --all-subs --embed-subs 命令可得到最高质量的视频。

作为音乐播放器, MOC 不再生动开拓,但它仍是一个大略单纯的播放器,可以播放各种可能的格式,包括最不常用的 Chiptune 格式。
在 AUR 中有一个 补丁 增加了 PulseAudio 支持。
纵然在 CPU 时钟频率降到 800 MHz, MOC 也只利用了单核 CPU 的 1-2% 。

moc

我的音乐收藏夹保存在我的家庭做事器上,因此我可以从任何地方访问它。
它利用 SSHFS 挂载并自动安装在 /etc/fstab/ 目录下:

root@server:/media/media /mnt/media fuse.sshfs noauto,x-systemd.automount,idmap=user,IdentityFile=/root/.ssh/id_rsa,allow_other,reconnect 0 0跨平台构建

除了 Linux 本身,它对付构建任何主流操作系统的软件包都很精良!
一开始,我利用 QEMU 与旧版 Debian、 Windows 以及 Mac OS X VM 一起构建这些平台。

现在我在旧版 Debian 发行版上转而利用 chroot (以得到最大的 Linux 兼容性),在 Windows 上利用 MinGW 进行交叉编译,在 Mac OS X 上则利用 OSXCross 。

用于 构建 DDNet 的脚本以及 更新库构建的解释 的脚本都基于这个。

备份

常日,我们都会忘却备份。
纵然这是末了一节,它也不应该成为事后诸葛。

十年前我写了 rrb (反向 rsync 备份)重新封装了 rsync ,因此我只须要将备份做事器的 root SSH 权限付与正在备份的打算机。
令人惊异地是,只管我一贯在利用 rrb ,但它在过去十年里没有任何改变。

备份文件直接存储在文件系统中。
利用硬链接实现增量备份(--link-dest)。
一个大略的 配置 定义了备份保存韶光,默认为:

KEEP_RULES=( \ 77 \ # One backup a day for the last 7 days318 \ # 8 more backups for the last month 365 11 \ # 11 more backups for the last year18254 \ # 4 more backups for the last 5 years)

由于我的一些打算机没有静态 IP / DNS 但仍想利用 rrb 备份,那我会利用反向安全隧道(作为 systemd 做事):

[Unit]Description=Reverse SSH TunnelAfter=network.target[Service]ExecStart=/usr/bin/ssh -N -R 27276:localhost:22 -o "ExitOnForwardFailure yes" serverKillMode=processRestart=always[Install]WantedBy=multi-user.target

现在,隧道运行备份时,做事器可以通过 ssh -p 27276 localhost 命令或者利用 .ssh/config 到达做事器端。

Host cr-remote HostName localhost Port 27276

在谈及 SSH 技巧时,有时由于某些中断的路由会很难访问到做事器。
在那种情形下你可以借道其他做事器的 SSH 连接,以得到更好的路由。
在这种情形下,你可能通过美国连接访问到我的中国做事器,而来自德国的不可靠连接可能须要几个周:

Host chn.ddnet.tw ProxyCommand ssh -q usa.ddnet.tw nc -q0 chn.ddnet.tw 22 Port 22结语

感谢阅读我工具的收藏。
这个中我大概遗漏了许多日常中自然成习气的步骤。
让我们来看看我的软件设置不才一年里能多稳定吧。
如果你有任何问题,随时联系我 dennis@felsin9.de 。

在 Hacker News 下评论吧。

via: hookrace.net

作者: Dennis Felsing 选题: lujun9972 译者: chenmu-kk 校正: wxy

本文由 LCTT 原创编译, Linux中国 名誉推出

点击“理解更多”可访问文内链接
标签:

相关文章