Unix & Linux

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

3
如何扩展bash别名
如何创建一个别名,该别名实际上在Bash中扩展了另一个同名别名? 为什么: 我以前也GREP_OPTIONS设定.bashrc到这样的事情: GREP_OPTIONS="-I --exclude=\*~" 我也有一个脚本(让我们说setup-java.sh),在进行某些Java项目之前,我会先调用它。它包含以下行: GREP_OPTIONS="$GREP_OPTIONS --exclude-dir=classes" 如果我也使用Sass,那么我将调用setup-sass.sh包含以下内容的行: GREP_OPTIONS="$GREP_OPTIONS --exclude-dir=\*/.sass-cache" 但是GREP_OPTIONS不推荐使用,显然标准解决方案是创建别名或一些脚本...
11 bash  grep  alias 

1
控制台中的256色(tty)
假设我有一个没有的系统X server。我只能从控制台登录。看来,默认情况下,Linux控制台仅支持8种颜色: # tput colors 8 是否可以在控制台中使用256种颜色,与在终端仿真器(即终结器)中使用的颜色相同? 在进行谷歌搜索时,我发现了许多类似的问题(其中许多已经超过10年了),但没有一个明确的答案。有人建议使用帧缓冲区,另一些人则建议在内核启动选项后附加TERM参数。 目前,我只传递了一个额外的选项作为内核启动参数: append="video=1280x720" 我相信通过视频分辨率只能在kernel mode setting支持的现代内核中使用,但是我不确定。 是否可以在现代linux控制台(tty)中使用256色 怎么样? 我在内核4.1中使用Debian Wheezy 更新: 根据@muru的建议,我尝试了fbterm。尽管它可以处理256色,但其字体非常难看/乱码。此外,左下角有一个不断闪烁的光标,让我分心。 我可以在没有fbterm / framebuffer的控制台中使用256色吗? 控制台中的8种颜色限制从何而来?

1
连接到MariaDB时的MySQL Workbench警告
在Kubuntu 15.10和MariaDB Server版本上使用MySQL Workbench 6.3时:10.0.22-MariaDB-0ubuntu0.15.10.1(Ubuntu),我收到以下警告。 这是预期的吗? 检测到不兼容/非标准服务器版本或连接协议(10.0.22)。 可以建立与此数据库的连接,但是某些MySQL Workbench功能可能无法正常运行,因为该数据库与受支持的MySQL版本不完全兼容。 MySQL Workbench是针对MySQL Server版本5.1、5.5、5.6和5.7开发和测试的 成功建立mysql连接 与该连接有关的信息: 主机:localhost端口:0用户:serg SSL:未启用 使用为此连接定义的参数,成功建立了MySQL连接。

2
在Jessie上从SID安装PHP7.0
我想在Debian Jessie上尝试PHP7.0,并尝试从sid安装它。但是,php7.0取决于sid中的while 是17。取决于php7.0-common这是否意味着目前无法从此发行版进行安装?这是为什么?php-common > 18php-commonphp7.0 我知道可以从源代码进行安装,例如在这里说明,我只是在询问官方软件包。 注意:sid中的软件包已修复,现在(2016年1月6日)可以从那里安装。

1
Bash别名,命令中包含空格
我正在尝试创建一个bash别名,别名本身中有一个空格。 这个想法是别名(即con)代表sudo openvpn --config /path/to/my/openvpn/configs/。con使用别名时,这将导致可读命令。 即: `con uk.conf` == `sudo openvpn --config /path/to/my/openvpn/configs/uk.conf` 我知道我不能这样声明别名: con ="sudo openvpn --config /path/to/my/openvpn/configs/"。bash函数在这种情况下会起作用吗?我从未听说过,但是在研究此小问题的解决方案时。

11
如何获取/ bin / sh函数的最后一个参数
有什么更好的实施方法print_last_arg? #!/bin/sh print_last_arg () { eval "echo \${$#}" # this hurts } print_last_arg foo bar baz # baz (如果#!/usr/bin/zsh不是这样,那么#!/bin/sh我不知道该怎么办。我的问题是找到一种合理的方法来实现#!/bin/sh。) 编辑:上面只是一个愚蠢的例子。我的目标不是打印最后一个参数,而是要有一种方法来引用Shell函数中的最后一个参数。 EDIT2:对于这样一个措辞不清楚的问题,我深表歉意。 我希望这次能做对。 如果/bin/zsh不是/bin/sh,我可以写这样的东西 #!/bin/zsh print_last_arg () { local last_arg=$argv[$#] echo $last_arg } 该表达式$argv[$#]是我在第一次EDIT中描述的一个示例,该引用是引用Shell函数中最后一个参数的方式。 因此,我真的应该像这样写我的原始示例: print_last_arg () { local last_arg=$(eval "echo \${$#}") # but this hurts even more echo $last_arg } …

1
为什么回声两次匹配某些文件?
$ touch file{1..12} $ echo *e{1..12} file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 file11 file12 $ echo *{1..12} file1 file11 file12 file2 file3 file4 file5 file6 file7 file8 file9 file10 file11 file12 我不明白为什么会这样。请有人可以解释吗?

8
sed在整个文件系统上就地删除行?
由于尚无法诊断的应用程序错误,我有数百台服务器装有完整的磁盘。有一个文件被重复的行填充了-不是日志文件,而是带有变量定义的用户环境文件(因此,我不能只是删除该文件)。 我编写了一个简单的sed命令来检查错误添加的行并删除它们,然后在文件的本地副本上对其进行测试。它按预期工作。 但是,当我在具有完整磁盘的服务器上尝试使用它时,大约收到以下错误(来自内存,而不是复制和粘贴): sed: couldn't flush /path/to/file/sed8923ABC: No space left on deviceServerHostname 当然,我知道这里没有空间了。这就是为什么我要删除内容!(sed我正在使用的命令会将4000+行文件减少到大约90行。) 我的sed命令就是sed -i '/myregex/d' /path/to/file/filename 尽管磁盘已满,有没有办法应用此命令? (它必须是自动化的,因为我需要将它作为快速修复程序应用于几百台服务器。) (显然,需要诊断应用程序错误,但是在此期间,服务器无法正常工作...。) 更新:通过删除我发现可以删除的其他内容解决了我所面临的情况,但是我仍然希望得到此问题的答案,这将对将来和其他人有所帮助。 /tmp不行 它在同一文件系统上。 在释放磁盘空间之前,我进行了测试,发现可以vi打开文件并运行以删除行:g/myregex/d,然后使用保存成功:wq。似乎应该可以自动执行此操作,而无需借助单独的文件系统来保存临时文件....(?)

2
wget手册页提到的用于阻止“自动检索程序”的“ 2001年文章”是什么?
该wget手册页指出这一点,下的部分--random-wait参数: Some web sites may perform log analysis to identify retrieval programs such as Wget by looking for statistically significant similarities in the time between requests. [...] A 2001 article in a publication devoted to development on a popular consumer platform provided code to perform this analysis on the fly. …

1
如何创建交换文件?
我知道如何创建和使用交换分区,但是我也可以使用文件代替吗? 如何在Linux系统上创建交换文件?
11 linux  swap 

1
如何理解modinfo的输出?
我只是想了解modinfo描述内核模块的输出。例如,对于module i915,输出如下所示: $ modinfo i915 filename: /lib/modules/4.2.0-1-amd64/kernel/drivers/gpu/drm/i915/i915.ko license: GPL and additional rights description: Intel Graphics author: Intel Corporation [...] firmware: i915/skl_dmc_ver1.bin alias: pci:v00008086d00005A84sv*sd*bc03sc*i* [...] depends: drm_kms_helper,drm,video,button,i2c-algo-bit intree: Y vermagic: 4.2.0-1-amd64 SMP mod_unload modversions parm: modeset:Use kernel modesetting [KMS] (0=DRM_I915_KMS from .config, 1=on, -1=force vga console preference [default]) (int) [...] 我能够理解某些领域,但我不知道以下含义: …

3
如何在dmesg中禁用无用的“审核成功”日志条目
简短版本:如何在Fedora系统上禁用审核消息(dmesg)? Fedora系统一直在dmesg中记录“审核:成功”消息-这种极端的方式使得dmesg变得不可用,因为它已被这些消息填满(dmesg | grep -v audit为空)。这些消息是完全无用的,因为它们显然想通知用户某些日常内部过程已成功(调试某些内容时可能会感兴趣,但在这种情况下只是噪音)。 甚至命令行界面(使用Ctrl+ Alt+ 切换到非X tty时F2)也变得不可用,因为它总是被这些审计消息所困扰,无法读取用户实际运行的命令的输出。例如,输入用户名(登录)后,会弹出一条审核消息(显然告诉用户已成功格式化/打印了某些内容): 审核:类型= 1131审核(1446913801.945:10129):pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg ='unit = fprintd comm =“ systemd” exe =“ / usr / lib / systemd / systemd”主机名=?addr =?终端=?res =成功” 看来这些消息中的大多数都指示“成功”,但是也有许多审计消息不包含此关键字。运行Chromium会触发数百种此类事件: 审核:类型= 1326审核(1446932349.568:10307):auid = 500 uid = 500 …

4
什么显示管理器/窗口管理器可以支持具有不同dpi的多个显示器?
我还没有找到窗口管理器/显示管理器的排列,可以正确缩放带有两个不同DPI的两个不同监视器上的窗口和应用程序。 我有一台运行约110 dpi的40英寸4k显示器,并以约240 dpi的速率插入了hidpi戴尔笔记本电脑。我必须在hidpi上接受太小的资产,或者在大显示器上接受太大的资产。看起来不好。是的,有一些“中途之路”可以正常工作,并且Unity确实允许通过监视器在一定程度上分别扩展资产,但是我仍然在应用程序本身中遇到问题。 我尝试了Unity / Gnome 3 / KDE / I3甚至e17的不同组合。大多数时候,显示管理器(我认为)是lightdm,因为发行版通常是Ubuntu,但是我也尝试过Fedora 22和Kubuntu,我认为它们使用不同的显示管理器。每次全新安装/全新安装。 我一直都在看到缩放效果不好。我不介意运行Beta版软件。我不介意一些不稳定因素。我在想的是视觉上的不一致。我应该去哪儿?现在,哪个发行版做得好? 理想情况下,我希望所有窗口管理器组件和应用程序都能保持一致。 我应该等待韦兰吗?我现在可以得到吗?这样可以解决问题吗? 米尔?

5
测试文件名称是否在日期之后修改
我有一个文件名为YYYYMMDD的文件,例如 file-name-20151002.txt 我想确定此文件在2015-10-02之后是否已修改。 笔记: 我可以通过查看的输出来完成此操作ls,但是我知道解析输出ls是一个坏主意。 我不需要查找在特定日期之后标出日期的所有文件,只需要一次测试一个特定文件。 创建文件后,我不担心文件在同一日期被修改。也就是说,我只想知道20151002名称中带有此文件的是否在2015年10月3日或更晚时间被修改。 我使用的是MacOs 10.9.5。
11 bash  files  osx  timestamps 

4
程序输出重定向
当尝试使用“大于”的语法(例如foo 2> myfile)重定向程序输出时,此处可能出现的数字是什么,它们代表什么? 我相信1是/dev/stdout,2是/dev/stderr。5和6呢?有3、4或大于6的数字吗?

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.