我正在阅读Linux Command Line 和 Shell Scripting Bible 中有关基本 shell 脚本的信息。
它说该/etc/profile文件在 Bash shell 启动时设置了环境变量。该/etc/profile.d目录包含其他包含特定于应用程序的启动文件的脚本,这些脚本也在启动时由 shell 执行。
如果这些文件/etc/profile对 Bash 启动也很重要,为什么它们不是其中的一部分?
如果这些文件是特定于应用程序的启动文件,对 Bash 启动并不重要,那么它们为什么会成为启动过程的一部分?为什么它们只在包含设置的特定应用程序被执行时才运行?
首先我使用的是 CentOS
[root@a etc]# cat system-release
CentOS release 6.5 (Final)
[root@a cron.daily]# ps -ef | grep cron
root 982 1 0 Jun14 ? 00:01:15 crond
root 5692 5441 0 00:49 pts/0 00:00:00 grep cron
[root@a cron.daily]#
Run Code Online (Sandbox Code Playgroud)
我的资源用完了,所以我想删除旧的日志文件。在这种情况下,我想删除大小几乎超过 100MB 的旧安全日志,所以我为root用户提供了以下 crontab 条目.
[root@a etc]# crontab -l
0 1 * * * find /var/log -name "secure-*" -mtime +5 -exec rm {} \;
[root@a etc]#
Run Code Online (Sandbox Code Playgroud)
几天后我才知道这个 crontab 条目不起作用,但我仍然看到旧文件。
[root@a log]# find /var/log -name "secure-*"
/var/log/secure-20141214
/var/log/secure-20141107
/var/log/secure-20141130
/var/log/secure-20141221
[root@a log]#
Run Code Online (Sandbox Code Playgroud)
后来我尝试在 …
我怎样才能让/etc/hosts文件引用另一个配置文件的主机列表?
示例/etc/hosts:
## My Hosts
127.0.0.1 localhost
255.255.255.255 broadcasthost
#Other Configurations
<Link to /myPath/to/MyConfig/ConfigFile.txt>
#Other Addresses
3.3.3.3 MyAwesomeDomain.com
4.4.4.4 SomeplaceIWantToGoTo.com
Run Code Online (Sandbox Code Playgroud)
配置文件.txt
##My additional Hosts
1.1.1.1 SomeLocation.com
2.2.2.2 AnotherLocation.com
Run Code Online (Sandbox Code Playgroud)
如何向/etc/hosts文件添加链接/参考以便加载 ConfigFile.txt?
在我可以访问的任何 Linux 系统(几个 Archlinux、一个 Ubuntu、一个 Debian Sid 和一个 Gentoo)中/etc/,.
/etc/group-
/etc/gshadow-
/etc/passwd-
/etc/shadow-
Run Code Online (Sandbox Code Playgroud)
在互联网上,他们说这些只是备份文件,更新到上次更改的下一个。
现在我想知道:谁在创建这些文件?是我的编辑吗?是应用程序编辑这些文件(gpasswd、useradd、groupadd 等)吗?它是否处于较低级别(甚至可能是内核模块)?
我想跟踪 /etc/ 中的变化
基本上,我想知道文件是否被yum update用户或由用户更改,如果我不喜欢更改,请将其回滚。我想过为此使用像 git、LVM 或 btrfs 快照这样的 VCS 或备份程序。
你会推荐什么?
我知道有/etc/profile,并/etc/bashrc设置全局环境变量,也许我只是误解他们的目的文件,但...
有全局bash_profile文件吗?
我使用的是 Mac OS X
据我所知,该hosts文件是帮助在计算机网络中寻址网络节点的几种系统工具之一。但里面应该有什么?当我默认安装 Ubuntu 时
127.0.0.1 localhost
Run Code Online (Sandbox Code Playgroud)
将在那里。为什么?
/etc/hosts在 Cassandra 等 JVM 系统的情况下如何工作?我的问题源于我在启动 ffmpeg 时遇到的问题。我已经安装了 ffmpeg,它显示为已安装:
whereis ffmpeg
ffmpeg: /usr/bin/ffmpeg /usr/bin/X11/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz
Run Code Online (Sandbox Code Playgroud)
后来,我发现,有些程序依赖于安装本身没有的库,所以我用 ldd 命令检查了缺少什么:
# ldd /usr/bin/ffmpeg
linux-vdso.so.1 => (0x00007fff71fe9000)
libavfilter.so.0 => not found
libpostproc.so.51 => not found
libswscale.so.0 => not found
libavdevice.so.52 => not found
libavformat.so.52 => not found
libavcodec.so.52 => not found
libavutil.so.49 => not found
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5f20bdf000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5f209c0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5f205fb000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5f20f09000)
Run Code Online (Sandbox Code Playgroud)
事实证明,我的 ffmpeg 也被 7 个库切断了。我首先认为必须安装这些库中的每一个,但比我想象的要安装一些或全部,但 ffmpeg 不知道它们的位置。我读到 /etc/ld.so.conf 和 /etc/ld.so.cache 包含库的路径,但我很困惑,因为只有一行
/etc/ld.so.conf
cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
Run Code Online (Sandbox Code Playgroud)
但是很长/etc/ld.so.cache …
Arch wiki建议创建一个文件/etc/udev/rules.d/来修复我的 Steam 控制器问题。这有效!但是,我注意到这个文件夹中除了我刚刚创建的规则之外没有其他规则。此外,我见过的所有其他来源都说要将 udev 规则放在 中/lib/udev/rules.d/,并且该文件夹中还有很多其他 udev 规则。为什么看似相同的东西有两个文件夹,我应该使用哪个?
背景
Trevor 作为开发人员之一在 ssh://foobar.university.edu 上登录他的帐户,他收到以下消息:
id: cannot find name for group ID 131
Run Code Online (Sandbox Code Playgroud)
Trevor 然后使用
vim /etc/group
Run Code Online (Sandbox Code Playgroud)
问题
Trevor 发现/etc/group 文件中的任何地方都没有 131。
特雷弗然后运行 id ...
> id trevor
uid=4460(trevor) gid=131 groups=48(foobar),51(doobar),131
Run Code Online (Sandbox Code Playgroud)
发现他的主要群体显然没有附加名称。
问题