一些简单的 Linux 命令能让你根据需要分割以及重新组合文件,来适应存储或电子邮件附件大小的限制。
Linux 系统提供了一个非常易于使用的命令来分割文件。在将文件上传到限制大小的存储网站或者作为邮件附件之前,你可能需要执行此操作。要将文件分割为多个文件块,只需使用 split
命令。
一些简单的 Linux 命令能让你根据需要分割以及重新组合文件,来适应存储或电子邮件附件大小的限制。
Linux 系统提供了一个非常易于使用的命令来分割文件。在将文件上传到限制大小的存储网站或者作为邮件附件之前,你可能需要执行此操作。要将文件分割为多个文件块,只需使用 split
命令。
除了将 VHD 文件用人工方式在【磁盘管理】里【附加】来挂载以外,也能用【脚本】来实现自动挂载。
打开开始菜单中的【启动】文件夹,将写好的 mount.bat 放入即可。Mount.bat 文件的内容为:
diskpart /s C:\mount.txt
mount.txt 文件的内容为:
select vdisk file=C:\xxx.vhdx
attach vdisk
exit
这种方式最简单,但是每次开机弹出的命令行以及用户帐户控制许可。
于是很自然地就想到了 Windows 计划任务。在上面的【批处理】的基础上,配置【计划任务】。重启后,恼人的命令行和用户账户控制提示没有了。
虽然以【计划任务】的方式来挂载 VHD 已经相当方便了,但是也许并不是那么快捷——因为计划任务是通过一个叫做 【Task Scheduler】 的【系统服务】来调度的,只有用户级别的执行优先级,而倘若能跨过【Task Scheduler】从计划任务升级为 【系统服务】 来执行,那么效率和优先级都会好很多!
可是自 Win7 以后,微软对能够作为【系统服务】运行的程序进行了更严格的规定,以致于用户不能再那么轻易地将自己定制的程序作为系统服务来运行。就算可以通过 SC 命令安装服务,一般也启动不了。会报错。
lsof(list open files)是linux下一个不常用的命令,可以列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以,lsof的功能很强大。一般root用户才能执行lsof命令,普通用户可以看见/usr/sbin/lsof命令,但是普通用户执行会显示“permission denied”。因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。
每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。lsof输出各列信息的意义如下:
COMMAND:进程的名称 PID:进程标识符 USER:进程所有者 FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等 DEVICE:指定磁盘的名称 SIZE:文件的大小 NODE:索引节点(文件在磁盘上的标识) NAME:打开文件的确切名称
当你需要在 shell 脚本中创建邮件时,就需要用到命令行发送邮件的知识。Linux 中有很多命令可以实现发送邮件。本教程中包含了最流行的 5 个命令行邮件客户端,你可以选择其中一个。这 5 个命令分别是:
mail
/ mailx
mutt
mpack
sendmail
ssmtp
我先从整体上来解释下 Linux 中邮件命令怎么把邮件传递给收件人的。邮件命令撰写邮件并发送给一个本地邮件传输代理(MTA,如 sendmail、Postfix)。邮件服务器和远程邮件服务器之间通信以实际发送和接收邮件。下面的流程可以看得更详细。
Windows系统下subst可以临时将目录分配一个盘符。将路径与驱动器号关联。
但是重启电脑后将失效。可以通过添加注册表项实现永久分配驱动器号。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"D:"="\\??\\C:\\DATA_FILES"
上面的项可以将C:\DATA_FILES挂载为D盘。
SCP(安全复制Secure Copy)是 Linux 和 Unix 之类的系统中的命令行工具,用于通过网络安全地跨系统传输文件和目录。当我们使用 scp
命令将文件和目录从本地系统复制到远程系统时,则在后端与远程系统建立了 ssh 连接。换句话说,我们可以说 scp
在后端使用了相同的 SSH 安全机制,它需要密码或密钥进行身份验证。
在本教程中,我们将讨论 14 个有用的 Linux scp
命令示例。
scp
命令语法:
# scp <选项> <文件或目录> 用户名@目标主机:/<文件夹>
# scp <选项> 用户名@目标主机:/文件 <本地文件夹>
可以使用以下 5 个命令来完成此操作。
dig
命令:它是一个用于查询 DNS 名称服务器的灵活命令行工具。host
命令:它是用于执行 DNS 查询的简单程序。nslookup
命令:它用于查询互联网域名服务器。fping
命令:它用于向网络主机发送 ICMP ECHO_REQUEST 数据包。ping
命令:它用于向网络主机发送 ICMP ECHO_REQUEST 数据包。为了测试,我们创建了一个名为 domains-list.txt
的文件,并添加了以下域。
# vi /opt/scripts/domains-list.txt
2daygeek.com
magesh.co.in
linuxtechnews.com
我们一想到Linux,肯定会想到黑白终端,真正的Linux用户总是偏爱从终端来进行工作,哪怕是用于下载。相比某种GUI工具,命令行下载工具可以帮助用户更迅速地从网上下载任何东西。有许多可满足一般用途、甚至用于torrent的下载工具,不过相比其它工具,只有像curl或者wget这少数几款工具更受欢迎。我们在本教程中将探讨用于在Linux环境中下载的十大命令行工具。不妨逐一探讨这些CLI工具。
这是最有名的工具,可用于通过CLI下载。这款工具功能很丰富,可以充当某种功能完备的GUI下载管理器,它拥有一款理想的下载管理器所需要的所有功能,比如它可以恢复下载,可以下载多个文件,出现某个连接问题后,可以重新尝试下载,你甚至可以管理最大的下载带宽。
例子
从网上下载某个示例文件:
# wget http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
--2016-05-11 16:56:23-- http://www.sample-
videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
Resolving www.sample-videos.com (www.sample-videos.com)...
166.62.28.98
Connecting to www.sample-videos.com (www.sample-
videos.com)|166.62.28.98|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1055736 (1.0M)
Saving to: ‘big_buck_bunny_720p_1mb.mp4’
100%[==========================================================================================================>] 10,55,736 52.1KB/s in 24s
2016-05-11 16:56:47 (43.4 KB/s) - ‘big_buck_bunny_720p_1mb.mp4’ saved [1055736/1055736]
示例输出:
后台下载文件:
# wget -b http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
如果互联网连接出现中断,恢复下载。
# wget -c http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
从某个密码保护的ftp软件库下载文件。
# wget --ftp-user=<user_name> --ftp-password=<Give_password> Download-url-address
awk
脚本有三个主要部分:BEGIN
和 END
函数(都可选),用户自己写的每次要执行的函数。某种程度上,awk
的主体部分就是一个循环,因为函数中的命令对每一条记录都会执行一次。然而,有时你希望对于一条记录执行多次命令,那么你就需要用到循环。
有多种类型的循环,分别适合不同的场景。
一个 while
循环检测一个表达式,如果表达式为 true
就执行命令。当表达式变为 false
时,循环中断。
#!/bin/awk -f
BEGIN {
# Loop through 1 to 10
i=1;
while (i <= 10) {
print i, " to the second power is ", i*i;
i = i+1;
}
exit;
}
在这个简单实例中,awk
打印了放在变量 i
中的整数值的平方。while (i <= 10)
语句告诉 awk
仅在 i
的值小于或等于 10 时才执行循环。在循环最后一次执行时(i
的值是 10),循环终止。
Awk 有好几个变种:最早的 awk
,是 1977 年 AT&T 贝尔实验室所创。它还有一些重构版本,例如 mawk
、nawk
。在大多数 Linux 发行版中能见到的,是 GNU awk,也叫 gawk
。在大多数 Linux 发行版中,awk
和 gawk
都是指向 GNU awk 的软链接。输入 awk
,调用的是同一个命令。GNU awk 用户手册中,能看到 awk
和 gawk
的全部历史。
这一系列的第一篇文章 介绍了 awk
命令的基本格式:
$ awk [选项] '模式 {动作}' 输入文件
awk
是一个命令,后面要接选项 (比如用 -F
来定义字段分隔符)。想让 awk
执行的部分需要写在两个单引号之间,至少在终端中需要这么做。在 awk
命令中,为了进一步强调你想要执行的部分,可以用 -e
选项来突出显示(但这不是必须的):
$ awk -F, -e '{print $2;}' colours.txt
yellow
blue
green
[...]