我最近刚刚从 bash 切换到 Fish shell,但在获取 dircolors 模板文件以获得为某些文件扩展名显示的自定义颜色时遇到了麻烦。
在 bash 中,我从~/.dircolors/dircolors.256dark
. dircolors.256dark模板将不同的文件类型映射到不同的颜色。例如,当我使用 时ls
,所有.wav
文件都会显示为橙色。这是我的来源~/.bash_profile
:
# uses dircolors template
eval $(gdircolors ~/.dircolors/dircolors.256dark)
# Aliases
alias ls='gls --color=auto'
Run Code Online (Sandbox Code Playgroud)
然而,fish 并不真正使用 rc 文件,而是从config.fish
, 文件获取源,但某些操作的语法在fish中是不同的。
我正在尝试弄清楚如何在鱼中实现这一目标。我喜欢能够通过颜色在视觉上区分不同的文件类型,因此如果在鱼中无法做到这一点,这对我来说可能会成为一个问题。
聚苯乙烯
为了清楚起见,我并不是试图简单地更改目录或可执行文件的颜色,而是更改具有不同文件扩展名的文件的颜色。例如,如果我ls
在目录中执行此操作,我会得到以下结果:
my_file.py # this file would be green for example
my_file.js # this file would be yellow
my_file.wav # this file would be orange
Run Code Online (Sandbox Code Playgroud)
编辑:我在 macOS 上使用 homebrew 来获取 dircolors。
我在 *nix 服务器上编写脚本有足够的经验,但我首先喜欢 Windows 上的 busybox。我使用安装了busybox scoop
。当我跑步时:
ash
echo $HOME
Run Code Online (Sandbox Code Playgroud)
我得到了->
C:/Users/RO # OK, this is dir of my windows profile
Run Code Online (Sandbox Code Playgroud)
我想我可以把它放在那个目录中,比如.profile
或.bashrc
。我尝试过,但重新启动 ash 后,这些文件的内容(例如 PATH、别名...)均未设置。是否可以在这些文件中为 busybox 设置一些环境?
内有条件可以/etc/rc.local
吗?我检查了很多问答,大多数人都建议chmod +x
在上面运行,但我的问题不同。它实际上在没有条件的情况下对我有用,但没有其他条件。
#!/bin/sh
if [[ -e /usr/src/an-existing-file ]]
then
echo "seen" >> /etc/rclocalmadethis
fi
Run Code Online (Sandbox Code Playgroud)
这是我运行时看到的奇怪错误systemctl status rc-local.service
:
rc.local[481]: /etc/rc.local: 3: /etc/rc.local: [[: not found
Run Code Online (Sandbox Code Playgroud)
这是我rc.local
在完全相同的位置ls -lah /etc/
:
-rwxr-xr-x 1 root root 292 Sep 19 09:13 rc.local
Run Code Online (Sandbox Code Playgroud)
我使用的是 Debian 10 标准版。
我很好奇:
将模块静态链接到内核而不是通过 rc.conf 等加载到底有什么好处?
例如:
要添加 Linux 模拟,我可以添加linux_enable="YES"
到,或者我可以通过添加到我的内核配置/etc/rc.conf
将其链接到内核。options COMPAT_LINUX
这实际上有好处吗?如果是这样,那又怎样?
我使用嵌入式 Linux,我在没有 initramfs 的情况下编译了内核,内核启动正常。但它显示我rcS
没有找到文件我已经把它放进去/etc/init.d/rcS
,我的rcS
文件看起来像
#!/bin/sh
echo "Hello world"
Run Code Online (Sandbox Code Playgroud)
内核挂载文件系统后,它会打印Hello world
.
任何人都可以告诉/解释为什么需要这个文件以及我如何按特定顺序启动这些启动脚本?
我正在使用带有 busybox 的 Raspberry Pi,它工作正常,但我在启动时卡住了。
我试图在启动时显示当前运行级别的启动脚本列表。我写了以下代码。
rl=`runlevel | cut -d " " -f2`
ls /etc/rc.d/rc$rl.d/S* | cut -d "/" -f5
sleep 10
Run Code Online (Sandbox Code Playgroud)
如果我将此代码放入rc.local
文件中,它会起作用。
但是,如果我将它放在rc
文件或单独的脚本文件abc
中/etc/init.d
并通过在运行级别目录中创建软链接,它就不起作用。
但是像下面这样的简单命令能够在所有方法中运行。
ls /etc/init.d
Run Code Online (Sandbox Code Playgroud)
除非某些脚本已启动,否则某些命令(如运行级别或管道)是否无法工作?或者还有别的什么吗?
如果我把我的代码放在rc
文件中,我的代码会在重启前后运行。
rc
,rc.local
和rc.sysinit
files之间有什么区别?我也可以在 2、3、4 和 5 个运行级别中找到S99local
-> 软链接rc.local
。
这是否意味着rc.local
不会在运行级别 1 上运行?
我试图创建一个程序运行在启动时,需要一个画面每10秒(在一个无限循环)在我的树莓派,但我发现我犯了一个错误,但不能Ctrl+C出来。有没有办法逃脱?
(我确实尝试转到其他工作区,但未显示登录提示。)
许多 apt-get 安装失败,因为系统无法确定当前的运行级别
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
$ uname -a
Linux systemName 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
我尝试在 WSL 上安装 virtualbox,但出现以下错误:
$ VBoxManage --version
WARNING: The character device /dev/vboxdrv does not exist.
Please install the virtualbox-dkms package and the appropriate
headers, most likely linux-headers-Microsoft.
Run Code Online (Sandbox Code Playgroud)
我按照以下步骤解决了这个问题。到dpkg-reconfigure virtualbox-dkms
。
但后来我得到了以下信息:
dpkg: warning: version '*-*' …
Run Code Online (Sandbox Code Playgroud) 我在 debian 9 上安装了rescuetime。它需要在终端中运行命令rescuetime,这只是保持运行而不是运行和关闭(它在屏幕左下角的托盘中添加了一个图标)。我在启动时遇到了一些困难。
我已经尝试过 crontab 并添加了 @reboot rescuetime
我也试过添加一个 rc.local 文件
#!/bin/sh -e
sh 'rescuetime.sh'
exit 0
Run Code Online (Sandbox Code Playgroud)
救援时间.sh
#!/bin/sh<CR>
rescuetime
Run Code Online (Sandbox Code Playgroud)
这些选项都不起作用。
如何让救援时间在启动时运行。
我(Linux 新手)正在尝试向将执行应用程序的启动添加命令。该应用程序接受参数并具有它正在执行的操作的简单输出。要对其进行故障排除,我如何查看尝试启动(或根本不启动)时的输出?当我运行命令时,它起作用了。当我将它添加到 rc.local 时,我不知道为什么它不起作用。
我有一个使用 SSH 密钥进行身份验证的 Git 存储库 - 密钥不是标准的id_rsa
。
我可以跑:
eval $(ssh-agent -s)
ssh-add /home/forge/.ssh/otherkey
Run Code Online (Sandbox Code Playgroud)
然后
git pull origin master
Run Code Online (Sandbox Code Playgroud)
这是有效的。
服务器需要在启动时执行 git pull。
所以我有代码rc.local
可以拉出repo,它仅在密钥为默认值时才起作用,而在密钥id_rsa
不同时则不起作用。
如果我将它添加到 bashrc 中,那么它会在我登录时添加密钥并工作,但不会立即从启动中添加。
如何为 git 添加一个替代 id_rsa 的 SSH 密钥,它可以在我的 git pull 命令之前实例化rc.local
?
谢谢
我已经使用 GNU/Linux 一年多了。Linux 大师们,我需要你回答这个问题:
什么语言(S)都配置文件,如.bashrc
,.vimrc
,.i3status.conf
,.conkyrc
,.xinitrc
,等用?