Unix & Linux

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

2
命令行的键盘快捷键是什么?
我说的是您在命令行/终端中使用的键盘快捷键。 例如:Ctrl+ c杀死进程,Ctrl+ d注销,Ctrl+ z将进程发送到后台...等等。 我测试了一些,发现他们既不是终端(即gnome-terminal,xterm,konsole)具体也不壳(即bash,zsh)具体的,他们甚至在工作tty秒。 所以,我想知道: 谁提供这些快捷方式? 如何列出和修改/定义它们?

3
由于未安装任何明智的终端模拟器,因此无法退出i3
我正在尝试安装Arch Linux,并在安装了最基本的内容后安装并运行i3: pacman -S i3 dmenu xorg xorg-xinit startx 终于开始了,但是我不能退出。按$ mod + shift + E并确认后,它给我错误: i3-sensible-terminal could not find a terminal emulator. Please install one. 我也从$ mod + Enter得到这个错误。我很困惑,因为我无法退出到实际的终端以安装终端仿真器。为什么退出i3尝试运行终端仿真器,而不是关闭dmenu / xorg并返回到real(?)终端?谁能提供一些见识?

1
什么使用4GB内存?(不是缓存,不是进程,不是平板,不是shm)
我们有些EC2服务器会在几天或几周内发生内存泄漏。最终,将使用许多GB的内存(根据诸如free和的工具htop),如果不重新启动服务器,我们的进程将开始被OOM杀死。 一台这样的服务器具有15GB的内存。这是的输出free -m: total used free shared buffers cached Mem: 15039 3921 11118 0 0 7 -/+ buffers/cache: 3913 11126 Swap: 0 0 0 该服务器处于空闲状态;我杀死了大多数用户区进程。htop中没有进程显示> 100k VIRT。我最近跑步了echo 3 > /proc/sys/vm/drop_caches,没有任何效果(这就是为什么buffers,它cached是如此之小)。另外: 随便看看/proc/slabinfo,slabtop并没有显示出任何希望 / run / shm中没有任何内容 这是的输出cat /proc/meminfo: MemTotal: 15400880 kB MemFree: 11385688 kB Buffers: 564 kB Cached: 7792 kB SwapCached: …
10 memory  meminfo 

3
如何实现$ RANDOM之类的“生成器”?
$RANDOM每次访问时,特殊变量都有一个新值。在这方面,它使人联想到某些语言中的“生成器”对象。 有没有办法实现这样的事情zsh? 我尝试使用命名管道执行此操作,但是我没有找到一种在不终止“ generator”进程的情况下以受控方式从fifo提取项目的方法。例如: % mkfifo /tmp/ints % (index=0 while ( true ) do echo $index index=$(( index + 1 )) done) > /tmp/ints & [1] 16309 % head -1 /tmp/ints 0 [1] + broken pipe ( index=0 ; while ( true; ); do; echo $index; index=$(( ... 还有其他方法可以在zsh中实现这种生成器类型的对象吗? 编辑:这不起作用: …
10 zsh  fifo  ipc 

3
PS1提示以显示经过的时间
我目前使用它在bash提示中显示当前时间: PS1=\[\e[0;32m\]\t \W>\[\e[1;37m\] 20:42:23 ~> 是否可以显示自上一个提示以来经过的时间?如: 00:00:00 ~> sleep 10 00:00:10 ~> sleep 20 00:00:20 ~> 这与是否有可能通过后台脚本定期更改PS1?
10 bash  prompt 

1
systemctl保持服务重启超时
我正在运行CentOS 7.2;见下文: # systemctl stop firewalld Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: Timeout was reached (g-io-error-quark, 24) Failed to stop firewalld.service: Connection timed out Failed to get load state of firewalld.service: Connection timed out journalctl 只是报告以下错误: [system] Failed to activate service 'org.freedesktop.PolicyKit1': timed out 我发现此错误适用于Ubuntu,可能与RHEL …

3
是否可以对进程的内存消耗施加某种软限制?
我认为这并不是一个不常见的问题:一个进程分配大量的内存(这是由于内存泄漏错误所致,因为您尝试处理不可行的大输入文件,或其他原因)。RAM已满,并且在某些时候Linux必须切换到交换。好吧,有时候这只是最后的选择:如果我要进行昂贵的计算,如果快要用完RAM了,我不想丢失数据。 但是(以我的经验)更常见的是,内存消耗不受无赖(可能是错误的)过程的限制。就是说,我不仅要交换一些不那么急需的数据,而且操作系统不得不紧急交换数据负载。不幸的是,这不仅严重破坏了令人讨厌的过程,而且可能使整个系统陷入停顿(在装有SSD的计算机上,情况已经不再那么糟糕了,但是OTOH让我担心是否要写入数千兆字节的垃圾数据)。长期损害闪存)。直到我发现问题并手动终止进程(实际上甚至要花几分钟才能让我自己登录到虚拟终端!),我一半的运行会话仍处于交换状态,我需要等待相当长的一段时间,直到系统运行平稳再次。 解决这个问题的方法很简单:强制执行硬内存限制。但是在整个系统范围内进行操作有时会杀死我本来仍然需要的进程,如果ulimit在启动有问题的进程之前必须手动进行操作……那么,我常常会忘记直到为时已晚。 我可能更喜欢的解决方案: 如果有任何进程超出了一定的内存使用量,则会人为地限制它,以便系统的其余部分保持响应。 如果有任何进程超出了一定的内存使用量,那么它将被SIGSTOPping,因此我有时间弄清楚下一步该怎么做。 如果进程接近RAM限制,那么在进行大容量交换之前,我会收到警告。 有什么办法可以得到这样的行为,或者类似的?
10 linux  memory  swap 

2
为什么while循环在被暂停后会停止?
为什么使用bash并暂停while循环,然后在恢复循环后停止循环?下面的简短示例。 $ while true; do echo .; sleep 1; done . . ^Z [1]+ Stopped sleep 1 $ fg sleep 1 $ 我熟悉信号,我猜这可能是bash的自然行为,但我想更好地理解为什么它会以这种特定方式运行。

1
GNU Stow可以使用作为符号链接的stow目录吗?
考虑这个脚本。 #! /usr/bin/env bash mkdir -p target mkdir -p mydir/package/ touch mydir/package/file ln --symbolic mydir mylink file mylink stow --verbose --dir=./mylink --target=./target package file target/file 输出是 mylink: symbolic link to mydir LINK: file => ../mydir/package/file target/file: symbolic link to ../mydir/package/file 在运行之前stow,它看起来像这样: . ├── mydir │ └── package │ └── file …
10 symlink  stow 

4
为什么我的程序“ set”没有执行?
我创建了一个简单的C程序,如下所示: int main(int argc, char *argv[]) { if (argc != 5) { fputs("Not enough arguments!\n", stderr); exit(EXIT_FAILURE); } 我在etc / bash.bashrc中修改了我的PATH,如下所示: PATH=.:$PATH 我已经将该程序保存为set.c,并使用 gcc -o set set.c 在文件夹中 ~/Programming/so 但是,当我打电话 set 2 3 什么都没发生。没有文字出现。 呼唤 ./set 2 3 给出预期的结果 我以前从未遇到过PATH问题 which set 返回./set。因此,似乎PATH是正确的路径。发生什么事了?

1
如何解决“通过本地选择取消身份验证”?
我使用Buildroot构建了嵌入式Linux ,但在保持连接到AP方面遇到一些麻烦。无法多次获取IP地址。 我使用wpa_supplicant通过WPA2-PSK连接到我的AP。它可以在AP模式下与其他AP(例如我的智能手机)一起使用。 使用时,iwconfig wlan0我发现我与我的AP相关联 wlan0 IEEE 802.11bgn ESSID:"ZyXEL_B3B5" Mode:Managed Frequency:2.462 GHz Access Point: 90:EF:68:D3:B3:B5 Bit Rate=58.5 Mb/s Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:on Link Quality=53/70 Signal level=-57 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:1 …
10 wifi  dhcp  busybox  wlan  buildroot 

2
用其协同进程/子进程替换当前进程
我有一个程序P,期望接收“你好”并输出“为什么?” 在提供功能之前。其他不知道通常与“ Hello”开始对话的程序使用此功能。因此,我想为此编写一个包装器P(zsh语法): coproc P print -p Hello # Send Hello to P read -pr line # Read what P has to say [[ "$line" = "Why?" ]] && Replace current process with the coprocess. echo Could not get P's attention. 在部分中使用cat或会导致不必要的缓冲。我有什么选择?ddReplace...cat <&p &; exec cat >&p
10 shell  scripting  process  zsh 

2
什么是最可靠的wifi命令行工具?iw vs wpa_cli vs nmcli
我正在探索一些用于连接无线网络的底层工具,并且发现了以下工具(带有有用的文档/教程链接): w wpa_cli 南极 我似乎找不到对这些工具或类似工具的全面评估。也许有人可以在可靠性和用户友好性方面比较这些工具?哪一个最适合Linux桌面?欢迎访问现有文章的链接,因为我无法通过网络搜索找到很多内容。 抱歉,这个问题太开放了,但是我找不到很好的比较,而且我收到了一些关于哪种工具最可靠的个人评论。 这是我的经验: 我一直在使用wpa_cli,对此我感到非常满意。它在许多Linux系统上都是开箱即用的,但是在安装NetworkManager时似乎不起作用。我的主要问题是我的配置中现在有100多个wifi网络,而且似乎没有一种简单的方法可以通过SSID添加/删除网络。我必须使用wpa_supplicant分配的网络号,重新编号或重新排列网络似乎不合理。我还必须手动输入新网络的SSID-也许像Tab补全或基于文本的选择菜单之类的东西会很好。例如,当ssid包含一些尾随空白时,这花费了我很多时间。 另外,我遇​​到了一些问题,需要手动设置特定的配置,例如scan_ssid=1用于隐藏网络和key_mgmt=NONE未加密网络。我担心在连接到新的wifi网络时可能会弹出一些其他特殊情况,并且我可能没有时间仔细wpa_supplicant.conf研究解决方案。因此,用户友好性对于wpa_cli来说是个挑战,但是也许我不知道该工具的某些功能。 我被告知nmcli是最用户友好的,即使它依赖NetworkManager作为依赖项,也不会牺牲任何可靠性。我收到另一个建议,因为iw是所有Linux发行版内置的,因此iw最适合Linux桌面,但是我的印象是,当配置了许多连接时,iw不利于管理和自动化配置。ArchWiki还说iw仅支持nl80211,但这可能不是现实的问题。 由于我似乎无法在这些工具之间找到太多的比较,因此不胜感激或参考。
10 wifi  wpa  nmcli  iwlwifi  wpa-cli 

4
如何在启动时停止文件系统检查(fsck)?
偶尔(每次30次引导)我的linux系统决定检查文件系统是否有错误。我对此很满意-需要完成的工作需要完成。 但是有时候我需要我的笔记本电脑才能快速启动。我需要做一些紧急的工作,而我没有时间等待fsck完成(可能需要大约10分钟)。在这种情况下如何停止支票? 我到目前为止提出的唯一解决方案(很好,解决方法)是关闭auto fsck并偶尔手动运行它。我不喜欢这种方法,因为我必须记住它是上次运行它的时间。 我想要的是能够按Ctrl+ C终止文件系统检查。让文件系统在下次启动时检查运行! 但是实际上,如果我按Ctrl+ C fsck只是重新启动。
10 fsck 

1
分配给平板的不可回收内存是否被视为已使用或可用的缓存?
在评估/ proc / meminfo之后,我看到以下信息: $cat /proc/meminfo MemTotal: 197852592 kB MemFree: 64755992 kB MemAvailable: 65655112 kB Buffers: 4388 kB Cached: 759952 kB SwapCached: 0 kB Active: 649472 kB Inactive: 308340 kB Active(anon): 193840 kB Inactive(anon): 25316 kB Active(file): 455632 kB Inactive(file): 283024 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 4095932 …

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.