Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

3
创建数组时出现语法错误:“(”意外)
我有两个(Debian)Linux服务器。我正在创建一个shell脚本。 在第一个数组上,我这样创建了一个数组: #!/bin/bash target_array=( "/home/user/direct/filename -p123 -r" ) 很好 但是,当我在另一台服务器上运行时,我得到: Syntax error: "(" unexpected 据我所知,两台服务器是相同的。谁能阐明为什么这行不通? 如果我直接将其输入终端,那很好吗? 看起来当我以 sh scriptname.sh 我得到了错误,但是如果我以 ./scriptname.sh 看来还可以。有什么不同?

4
$ @除了第一个参数
我需要编写一个以这种方式运行的shell脚本: ./myscript arg1 arg2_1 arg2_2 arg2_3 ....... arg2_# 脚本中有一个for循环 for i in $@ 但是,据我所知,$ @包含$ 1到$($#-1)。但是对于我的程序,$ 1与$ 2 $ 3 $ 4等有明显的不同。我想从$ 2循环到结尾...我如何实现这一点?谢谢:)
36 bash  shell  scripting 

2
Ext4的data = journal是否更安全,而不是有序的data = journal?
Ext4的默认日记模式是data=ordered,根据文档,这意味着 “在将元数据提交到日志之前,所有数据都被直接强制发送到主文件系统。” 但是,还有data=journal选项,这意味着 “所有数据在写入主文件系统之前都已提交到日志中。启用此模式将禁用延迟分配和O_DIRECT支持。” 我对此的理解是,该data=journal模式将记录所有数据以及元数据,从表面上看,这似乎意味着就数据完整性和可靠性而言,这是最安全的选择,尽管对于性能而言可能并不那么重要。 如果可靠性是最重要的问题,但性能却要差得多,我应该选择该选项吗?使用此选项是否有任何警告? 对于后台,相关系统在UPS上,并且驱动器上的写缓存被禁用。
36 ext4 


6
如何对USB驱动器进行分区,使其可启动并具有Windows兼容的数据存储分区?
从这里分裂 我有一个16GB的闪存驱动器,我想通过它来启动实时ISO(通过unetbootin或类似的东西)。我可以在任何需要的计算机上插入并启动,这将是一些32位发行版。由于它将是一个实时ISO,因此我需要在某个地方保存数据。我希望USB驱动器的发行版大约有1GB,其他的15GB则用于数据存储。 我做了两个FAT分区,第一个称为“可引导”分区,第二个称为“存储”分区。该存储在Linux中可以正常工作,但Windows仅看到可引导分区。无法访问存储。 如何使数据在Windows上可访问并且仍然具有可启动分发?如果答案是如何划分分区,请提供每个分区的顺序和类型。我是否需要交换空间,或者处理方式不同?

3
如何在Debian上单独安装最新版本的Python或进行升级?
我对Linux还是很陌生,所以我仍在尝试了解可执行文件及其库在哪里以及如何安装软件包,因此我有Debian Wheezy 7.3,其中包含以下Python版本: Python 2.7.3(预设) 的Python 2.6.8 因此,在目录/usr/bin/中,可以从终端调用以下文件: python(这是python2.7的链接) python2(也是python2.7的链接) python2.6(Python 2.6.8可执行文件) python2.7(Python 2.7.3可执行文件) 在中/usr/lib/,主要文件夹: python2.6 python2.7 当前要安装的Python最新版本是2.7.6,但是我不知道如何,我尝试使用apt-get: apt-get install python 它输出python is already the newest version.。 那么,如何安装最新版本的Python?在上Python的下载页面有源码包,我怎么可以用它来单独安装它就像另一个文件夹中的/usr/lib/一样python2.7.6,使python在链接/usr/bin/指向新的可执行文件,也许升级最新版本,如果它不会破坏任何东西。

5
在GNU Linux中要求功能的正确方法是什么?
我正在尝试发送有关应用文件/ usr / bin / file的错误报告 但是咨询这个人并发送电子邮件 错误请报告错误,并将修补程序发送到错误跟踪器,网址为http://bugs.gw.com/ 或listfile@mx.gw.com⟩的邮件列表(请访问 http://mx.gw.com/mailman/ listinfo / file首先订阅)。 让我发现邮件地址不存在。 有没有其他与社区沟通的方式?希望这里的问题已经成为问题的一部分:) 所以这是我的电子邮件: 可能的功能故障:该--extension选项似乎未输出任何内容 $ file --extension "ab.gif" ab.gif: ??? 轻松使用此输出将文件重命名为其正确扩展名将很有用。 诸如文件之类的内容--likely_extension只会输出可能检测到的扩展名,或者如果检测到的检测值太低则显示错误 像这样: $ file --likely_extension "ab.gif" gif 更好的--correct_extension选择是: $ file --correct_extension "ab.jpg" $ ls ab.gif 该应用的Tyvm :)


5
是否可以通过创建大量空文件来耗尽磁盘空间?
众所周知,空文本文件的字节数为零: 但是,它们每个都包含元数据,根据我的研究,该元数据存储在inode中,并且确实使用space。 鉴于此,在我看来,可以通过纯粹创建空的文本文件来填充磁盘。它是否正确?如果是这样,我需要多少个空白文本文件来填充1GB的磁盘? 为了进行一些检查,我运行了,df -i但这显然显示了正在使用的inode的百分比(?),而不是它们的重量。 Filesystem Inodes IUsed IFree IUse% Mounted on udev 947470 556 946914 1% /dev tmpfs 952593 805 951788 1% /run /dev/sda2 28786688 667980 28118708 3% / tmpfs 952593 25 952568 1% /dev/shm tmpfs 952593 5 952588 1% /run/lock tmpfs 952593 16 952577 1% /sys/fs/cgroup /dev/sda1 0 …

3
为什么x86和x86_64中的Linux系统呼叫号码不同?
我知道系统调用接口是在较低级别上实现的,因此依赖于体系结构/平台,而不是“通用”代码。 但是,我不清楚为什么在32位x86内核的Linux中系统调用的编号在相似的体系结构Linux 64位x86_64中不保持相同的原因?做出此决定的动机/原因是什么? 我的第一个猜测是,后台原因是使32位应用程序在x86_64系统上可运行,因此通过合理地偏移系统调用号,系统将知道用户空间是32位还是64位分别。但是事实并非如此。至少在我看来,read()是x86_64中的系统调用号0,无法与这种想法保持一致。 另一个猜测是,更改系统电话号码可能具有安全性/强化背景,而我无法确定自己的身份。 由于对实现与体系结构相关的代码部分所面临的挑战一无所知,我仍然想知道如何在似乎没有必要的情况下更改系统调用号(因为即使一个16位寄存器也将存储比当前约346个数字大得多的数字,以代表全部)调用),将有助于实现除破坏兼容性以外的任何功能(尽管通过库libc使用系统调用可以缓解这种情况)。

4
我可以防止“ service foo status”通过“ less”分页输出吗?
如何停止在其输出上service <name> status使用该命令less? 我有一个脚本可以自动执行一些sysadmin操作,并且在将服务器升级到Ubuntu 16.04之后,由于检查服务状态的操作被阻止(因为它使用的是less显示输出的内容,特别是supervisor服务),该脚本正在中断。 我有几个配置为运行的守护程序,运行时sudo service supervisor status,我得到: * supervisor.service - Supervisor process control system for UNIX Loaded: loaded (/lib/systemd/system/supervisor.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2017-02-06 20:35:34 EST; 12h ago Docs: http://supervisord.org Process: 18476 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown (code=exited, status=0/SUCCESS) Main PID: 20228 (supervisord) CGroup: /system.slice/supervisor.service …
35 systemd  services 

4
如何降低rsync的速度?
我正在尝试复制出现故障的USB拇指驱动器的内容。如果我读取数据的速度过快,则驱动器的控制器芯片会过热,并且驱动器会从系统中消失。发生这种情况时,我需要拔下驱动器,等待一分钟左右以使其冷却,然后重新插入,然后重新启动副本。 我已经对驱动器的内容进行了旧的备份,因此获取其余数据的明显方法是使用rsync最新的备份,但这会导致整个过程“读取速度太快,驱动器消失了,我需要重新开始”问题。有没有办法告诉rsync每分钟仅读取X兆字节的数据?或者,是否可以告诉它在驱动器消失时暂停操作,并在重新插入驱动器时恢复运行?
35 rsync 

1
错误消息“日期:无效的日期'2016-10-16'”
今天,我的时钟已自动调整为夏令时,而crontab中的脚本开始失败。我看了一下发生了什么,并显示了以下错误LC_ALL=C: 日期:无效日期“ 2016-10-16” 我虽然最好只重启系统,但是现在我已经重启了,错误仍然出现: $ date -d '2016-10-15' Sat Oct 15 00:00:00 BRT 2016 $ date -d '2016-10-16' date: data inválida “2016-10-16” $ date -d '2016-10-17' Mon Oct 17 00:00:00 BRST 2016 是什么原因造成的?
35 date  timezone 

5
如何在执行之前读取整个shell脚本?
通常,如果您编辑脚本,则脚本的所有运行用法都容易出错。 据我了解,bash(也有其他shell吗?)以增量方式读取脚本,因此,如果从外部修改脚本文件,它将开始读取错误的内容。有什么办法可以防止呢? 例: sleep 20 echo test 如果执行此脚本,bash将读取第一行(例如10个字节)并进入睡眠状态。恢复时,脚本中可能有不同的内容(从第10个字节开始)。我可能在新脚本的一行中间。因此,正在运行的脚本将被破坏。
35 shell 

9
实际终端所连接的大型计算机是什么样的?
我正在研究计算机的历史,以更好地理解Linux终端为何以这种方式工作。我已经读到,在1970年代中期至1980年代中期,大多数人使用真实的终端(而不是终端仿真器)与大型计算机进行通信,这是一个真实的终端的示例: 但是我无法找到有关实际终端所连接的这些大型计算机的信息。有人可以提供这种大型计算机的名称/图片吗?
35 terminal  history 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.