Unix & Linux

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

5
如何将NTFS分区(WinXP)从损坏的磁盘克隆到新磁盘?
我需要将NTFS分区从损坏的硬盘(SCSI,如果如此重要)克隆到一个新的硬盘(SATA)。 我已经在USB记忆棒上安装了Hiren的Boot CD实用程序的最新版本,并尝试了GParted,该软件告诉我无法复制/粘贴该分区,因为该分区已被Windows损坏并“标记”以运行CHKDSK。我遵循警告建议并尝试使用修复它CHKDSK /f(花费了9个小时,并且在“阶段3”之后退出并出现错误)和一个我现在无法回忆起的Linux程序,但没有成功。 我尝试使用Clonezilla进行克隆,但由于相同的原因,它也失败了。在HBCD中,有dd_rescue,但由于找不到“ ntfs.something”而再次失败。 最后,我想要的就是克隆该分区,并保留他的错误和所有内容。我可以在新驱动器上修复它。 所以我该怎么做?

3
如何在bash中内联扩展通配符?
我记得bash可以执行以下操作: 假设当我输入以下内容时,当前目录中有3个文件:a,b,c: $> somecommand * 然后按一个键或多个组合键或一个键序列,通配符*在线将展开为: $> somecommand a b c 但我不记得,也无法用谷歌搜索出密钥顺序!帮帮我!
10 bash 

2
dhcpcd无法在启动时启动
当我dhcpcd在启动后运行时,一切正常,但是当我尝试将其添加到自动启动时systemctl enable dhcpcd@eth0.service,每次启动后都处于非活动状态 dhcpcd@eth0.service loaded inactive dead start dhcpcd on eth0

4
IPTables-端口到另一个ip&端口(从内部)
我目前有一个运行在端口80下的NAS盒。要从外部访问NAS,我将端口8080映射到NAS上的端口80,如下所示: iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.32.25.2:80 这就像一种魅力。但是,仅当我从网络外部(在工作中,在其他房屋等)访问网站时,此方法才起作用。因此,当我键入时mywebsite.com:8080,IPTables可以正确完成工作,并且一切正常。 现在,我的问题是,如何从网络内部重定向此端口?我的域名mywebsite.com从内部指向我的路由器(Linux服务器)(10.32.25.1),但我想从内部将端口8080重定向到10.32.25.2上的端口80。 有什么线索吗? 编辑#1 为了帮助解决这个问题,我将这张图放在一起。如果您输入的内容有误或有误,请随时进行更新。 iptables | .---------------. .-,( ),-. v port 80 | .-( )-. port 8080________ | | ( internet )------------>[_...__...°]------------->| NAS | '-( ).-' 10.32.25.2 ^ 10.32.25.1 | | '-.( ).-' | | …

2
这些命令是做什么用的?
昨天,我必须安装带有Grub覆盖的Windows。 好吧,这不是我第一次修复Grub,所以我使用LiveCD,安装了根分区(我没有启动,只有/and home),然后运行了grub-install --root-directory=/mnt/ /dev/sda。但是,它没有用。 在谷歌搜索了一段时间之后,我发现了一个教程,其中不仅安装了Linux分区,而且还做了mount --bind /mnt/dev /dev和mount --bind /mnt/proc /proc/。在那之后chroot到/mnt再安装蛴螬,以及使用这种方法,它的工作。 这些mount --bind命令是做什么用的?我熟悉--bind used(手册页)的用法,但不知道为什么在此示例中使用了它。
10 linux  mount  grub2 

3
如何从第5行开始删除空白行
我有这个: sed -i '/^$/d' temp_spec.rb 这将删除空白行,并且效果很好。我如何才能仅对5-999行执行此操作(最好是在文件末尾添加5行)。 我试过了: sed -n5,999 -i '/^$/d' temp_spec.rb sed '5,999!d/^$/d' temp_spec.rb 但均无效(无错误)。
10 sed 

6
插入模式下的退格键不删除字符
我是vi的新手,实际上我从今天开始就开始学习vi,并且对退格键的行为有所了解。实际上,当我第一次在Ubuntu 12.04上启动vi时,我的退格键正常工作,但是此后它开始表现异常。每当我在插入模式下按退格键时,它只会向左移动一个位置,而不是擦除字符。如何找回默认的退格功能?请注意,我不想安装vim或设置不兼容。
10 vi 

5
如何使`cd dir / filename`带我到dir /?
我发现能够cd与file参数一起使用非常方便。 cd myDirectory/anyname.anyExtension 相当于 cd myDirectory/ 实现此行为的最佳别名或函数是什么? 编辑:对不起,我没有在第一名提到它:我用zsh
10 shell  cd-command 

2
每个进程都有一个当前目录是什么意思?
我正在阅读“ Unix编程环境”,但我不理解当前的进程目录。 每个进程都有一个当前目录,除非所有文件名都直接以斜杠开头,否则所有文件名都隐式假定以该目录的名称开头。 这是否意味着每个进程都有一个在其创建目录中的标志?例如,如果/bin/sed从中调用了program /home/rene,则通过调用sed创建的进程具有当前目录/home/rene?
10 process 

4
如何限制程序在Linux中运行的时间?
我有几个模拟要做,每个模拟都用调用python simulate.py <parameter list>。这些模拟的问题在于其中一些模拟挂起而没有退出,这阻止了我使用简单的脚本批量运行它们。 我需要的是某种形式的“运行时约束”命令,该命令将在指定时间后自动终止进程(最好通过虚拟按下Ctrl + C,但我认为简单的终止也可以)。该过程本身并没有优雅地结束。 当然,我可以写这样的剧本,不过我怀疑有人已经做到了我面前,所以我不必重新发明轮子花小时ps,time和bash手册。

4
Shell脚本中的混合代码。共享变量
该答案讨论了如何从终端中的命令行运行多行Python代码段。我注意到,即使在嵌套缩进的情况下,答案在shell脚本中也非常有效,例如, #!/bin/bash some_text="Hello world" echo $some_text cat <<EOF | python - import sys; for r in range(3): print r for a in range(2): print "hello" EOF 印刷品: 0 hello hello 1 hello hello 2 hello hello 但是,我很难在Shell脚本和Python代码段之间共享变量。 如何在bash脚本中收集python下标的输出?(例如,在变量中$output)。 如何将bash变量(例如$some_text)传递给Python脚本?
10 bash  scripting  zsh  python 

3
经过研究,仍然对监视RAM使用情况感到困惑
我仔细阅读了这篇文章,其中介绍了各种检查RAM使用率的方法。但是,我无法调和不同的方法,也不知道哪种方法正确。 首次登录时,会看到如下屏幕: System information as of Sun Apr 28 21:46:58 UTC 2013 System load: 0.0 Processes: 76 Usage of /: 15.6% of 7.87GB Users logged in: 1 Memory usage: 41% IP address for eth0: Swap usage: 0% 这向我表明我正在使用我的RAM的41%,这似乎很高,因为服务器工作不多。还是那个数字是指RAM以外的东西? 接下来,我尝试该free -m方法: ubuntu@ip-:~$ free -m total used free shared buffers cached Mem: …
10 linux  memory 

4
从命名管道获取标准输入
我想做的是在终端窗口中运行python,并从命名管道重定向它的stdin。然后,我在另一个终端中写入命名管道,并在python上执行该命令。 1号航站楼: mkfifo p1 python < p1 2号航站楼: echo -n "print \"Hello World\"" > p1 发生的是-python打印Hello World并退出。我想做的是保持python运行以接受下一条命令。如何在外壳中执行此操作?


1
ELF可执行文件的哪些部分被加载到内存中,在哪里?
我已经知道的: ELF可执行文件包含许多节,显然.text和.data节已加载到内存中,因为这些是程序的主要部分。但是要使程序正常工作,它需要更多信息,尤其是在动态链接时。 我感兴趣的是.plt,.got,.dynamic,.dynsym,.dynstr等部分。ELF中负责将功能链接到地址的部分。 到目前为止,据我所知,诸如.symtab和.strtab之类的内容不会加载(或不保留)在内存中。但是链接器是否使用.dynsym和.dynstr?他们留在记忆中吗?我可以从程序代码访问它们吗? 可执行文件的任何部分都驻留在内核内存中吗? 我对此的兴趣主要是法医,但是有关此主题的任何信息都将有所帮助。我所阅读的有关这些表和动态链接的资源比较高级,它们仅说明工作原理,而与内存中的内容无关。 让我知道我的问题是否有任何不清楚之处。

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.