Unix & Linux

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


3
使用awk,sed提取具有特定图案的部分线
我对awk / sed运算符有疑问。我有一个大文件,重复了以下几行 Expression loweWallrhoPhi : sum=-6.97168e-09 Expression leftWallrhoPhi : sum=6.97168e-09 Expression lowerWallPhi : sum=-5.12623e-12 Expression leftWallPhi : sum=5.12623e-12 Expression loweWallrhoUSf : sum=-6.936e-09 Expression leftWallrhoUSf : sum=6.97169e-09 Expression lowerWallUSf : sum=-5.1e-12 Expression leftWallUSf : sum=5.12624e-12 我想在每种情况下将总和后的值提取到单独的文件中。可以一次这样做吗?

2
为什么变量在子Shell中可见?
《学习狂书》提到子shell将仅继承环境变量和文件描述符等,并且不会继承未导出的变量: $ var=15 $ (echo $var) 15 $ ./file # this file include the same command echo $var $ 据我所知,shell将为for ()和for 创建两个子shell ./file,但是为什么在()子shell中var虽然没有导出变量却标识了变量,而在./file没有标识的情况下为什么呢? # Strace for () clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f24558b1a10) = 25617 # Strace for ./file clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f24558b1a10) = 25631 我试图用来strace弄清楚这种情况是如何发生的,令人惊讶的是,我发现bash将对克隆系统调用使用相同的参数,因此这意味着分叉的进程()和./file应该具有与父进程相同的进程地址空间,所以为什么在这种()情况下,子外壳可见该变量,而在相同./file情况下基于克隆系统调用,则不会发生这种情况?
18 bash  shell  subshell 

2
为什么`kill -l`不列出信号号32和33?
kill -l在linux上执行可以得到: 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU …
18 linux  kill  signals 


4
替换变量中字符的最短方法
有很多方法可以替换变量中的字符。 tr到目前为止,我发现的最短方法是: OUTPUT=a\'b\"c\`d_123and_a_lot_more OUTPUT=$(echo "$OUTPUT"|tr -d "'\`\"") echo $OUTPUT 有没有更快的方法?而且这是引用安全像引号',"和'本身?
18 bash  string  variable 

1
重新启动计算机后如何继续执行脚本?
我正在用bash写一个shell脚本。在脚本中的某个时刻,它检测到机器需要重新启动才能继续。它发出: sudo reboot 当计算机重新启动时,此脚本需要做更多的工作。如何配置某些内容以继续执行此脚本中的工作? 我假设有一些地方可以写一个shell脚本,以便它将在下次重新启动时执行。这样的地方在哪里?我看到cron有一个@reboot指令。我也知道Apache之类的服务是由upstart在启动时启动的。这两个都是合适的机制吗?如果是这样,它将如何被触发? 该脚本仅需要运行一次,而无需每次重新启动。因此,它必须移至仅在下次重新启动时运行的某个位置,或者一旦运行即可将其自身删除。 该问题询问有关重新启动后如何保存应用程序状态的信息。我的脚本没有太多状态,因此我可以进行管理。我只需要知道如何让此脚本在下次重新启动后触发某些程序即可运行。 我的特定版本是Ubuntu Linux 14.04。原始脚本由系统管理员在命令行中启动(与从cron运行相反)。

2
第一次匹配时停止ssh配置
我在.ssh配置中为所有主机添加了本地代理,但是我想在不使用proxy命令的情况下安装到本地vm中。我的ssh尝试的输出: debug1: /Users/bbarbour/.ssh/config line 1: Applying options for local.dev debug1: /Users/bbarbour/.ssh/config line 65: Applying options for * 给定以下ssh config,如何防止将ProxyCommand应用于local.dev条目? Host local.dev HostName dev.myserver.com User developer ... Host * ProxyCommand /usr/local/bin/corkscrew 127.0.0.1 8840 %h %p
18 ssh 


3
Git传呼机较少,但是是什么导致输出着色?
less根据此线程,它本身无法进行语法突出显示。 但是,可以git diff用较少的默认分页器很好地显示彩色输出。当我将的输出重定向git diff到文件中时,看不到颜色转义序列。 是否git diff知道它的发送位置,并相应地格式化输出?一个人怎么做? 我只是注意到git为diff输出(例如git diff)着色,但是,它通常不知道如何突出显示语法。例如 git show 415fec6:log.tex 没有启用任何类似TeX的语法。 阅读git源代码,我发现了以下提示 在diff.h: int use_color; 我以前指的是语法突出显示,但这是不正确的。我的意思是输出着色,请参见例如
18 colors  git  diff  pager  colordiff 


1
无法使用resize2fs调整分区大小
我最近在VMWare ESXi中将VM的硬盘驱动器的大小从150 GB调整为500 GB。完成此操作后,我使用了Gparted来有效地调整此图像的分区大小。现在,我要做的就是调整文件系统的大小,因为它仍然显示旧值(如的输出所示df -h): Filesystem Size Used Avail Use% Mounted on /dev/mapper/owncloud--vg-root 157G 37G 112G 25% / udev 488M 4.0K 488M 1% /dev tmpfs 100M 240K 100M 1% /run none 5.0M 0 5.0M 0% /run/lock none 497M 0 497M 0% /run/shm /dev/sda1 236M 32M 192M 14% /boot 但是,运行sudo resize2fs …

2
如何保持Debian内部时钟同步(与NTP服务器)?
我有一个家庭服务器,该服务器运行最新的Debian 7.5(轻巧)安装。 我刚刚发现服务器的内部时钟将来会设置为±3分钟。 我知道我可以使用NTP将Debian(和主板内部时钟)与NTP同步,因此我按照法语Debian Wiki中描述的步骤安装了NTP (英语页面不太详细)。 我使用以下命令来同步内部时钟: ntpdate -B -q 192.168.0.254 时钟已成功调整。但这是一个临时解决方案,因此我安装了NTP守护程序并在/etc/ntp.conf文件中添加了本地服务器: # pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will # pick a different set every time it starts up. Please consider joining the # pool: <http://www.pool.ntp.org/join.html> # added server 192.168.0.254 server 0.debian.pool.ntp.org iburst server 1.debian.pool.ntp.org …
18 debian  ntp  ntpd 

2
是否有类似“时间”的东西也记录了I / O和CPU?
我可以使用以下命令快速监视进程的运行时间time: x@y ~ $ time foo real 0m14.299s user 0m4.770s sys 0m0.440s 有没有一种方法可以获取记录在STDOUT上的参数的I / O和CPU使用率相同的数据?像time这样的简单命令或实用程序将是理想的选择,在这里我只是传递要运行的事物的参数: x@y ~ $ stats foo wallclock runtime 0m14.299s I/O reads 290,420 KB I/O writes 239,429 KB peak CPU usage 18.62% mean CPU usage 1.44% # etc.

2
chown(1)POSIX规范的说明
该chown实用程序的POSIX规范在其理论部分中提到了chown user:group语法(以前称为chown user.group)(强调我的语法): POSIX.1-2008的此卷中包含了同时指定所有者和组的4.3 BSD方法,因为: 在某些情况下,使用chgrp和chown(仅更改用户ID)实用程序无法达到所需的最终条件。(如果当前所有者不是所需组的成员,并且所需所有者不是当前组的成员,则除非所有者和组同时更改,否则chown()函数可能会失败。) 我认为user:group语法很方便。现在,上述暗示有事情可以做chown user:group,你不能用chgrp group; chown user 现在,这段文字对我来说毫无意义。在4.3BSD中,只有root才能更改所有者的文件,因此无论如何他都没有限制。 SysV和其他一些系统允许(或用来允许)文件所有者将文件的用户和组更改为任何内容,但是即使在那些系统中,上面的文字对我来说也没有意义。好的,如果有人这样做了chown someone-else the-file,则不能再做chgrp something-else the-file,因为一个人不再是文件的所有者,但是并没有阻止他(她)做第chgrp一个文件(保持文件的所有者)和chown之后的事情,而那不是上面的文字准确地说。 我不了解和所希望的所有者不是当前组的成员与该问题有什么关系。 那么,除非所有者和组都同时更改,否则chown()函数可能会在哪些情况下失败?在什么系统上?
18 posix  chown 

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.