我有一个操作cut,我想将结果分配给一个变量
var4=echo ztemp.xml |cut -f1 -d '.'
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ztemp.xml 不是命令
var4never的值被赋值;我正在尝试为其分配以下输出:
echo ztemp.xml | cut -f1 -d '.'
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在从一本名为“ Linux 命令行和 Shell 脚本圣经,第二版”的书中学习命令行。这本书是这么说的:
一些 Linux 实现包含一个在启动时自动启动的进程表。在 Linux 系统上,该表通常位于特殊文件 /etc/inittabs 中。
其他系统(例如流行的 Ubuntu Linux 发行版)使用 /etc/init.d 文件夹,其中包含用于在启动时启动和停止单个应用程序的脚本。脚本通过 /etc/rcX.d 文件夹下的条目启动,其中 X 是运行级别。
可能因为我是 linux 新手,我不明白引用的第二段是什么意思。有人可以用更简单的语言解释相同的内容吗?
我是 bash 的新手,希望我的提示显示在 tcsh 中的一些微不足道的东西,但经过良好的谷歌搜索后,我仍然无法做到。
我希望我的提示只包含当前和父目录,如下所示:
/parent/currentdir $
Run Code Online (Sandbox Code Playgroud)
在 tcsh 中,这是通过以下方式实现的:
set prompt = "%C2 %"
Run Code Online (Sandbox Code Playgroud)
然而,到目前为止,在 bash 中,我只发现我必须解析 pwd 才能获得相同的输出。
有没有更简单的方法,比如:
export PS1="$(some_command) $"
Run Code Online (Sandbox Code Playgroud) 有没有什么办法可以在linux中借助一些库函数或系统调用在/var/log/中创建一个日志文件来维护/var/log/中的一些数据。我也想知道我们应该遵循什么标准来编写和处理日志。谢谢
我正在尝试在 Ubuntu 11.10 Linux 发行版中编写 bash shell 脚本,它将在登录系统时自动执行。但我无法弄清楚在脚本中写什么,它会在登录时自动执行。
在我申请chmod -R一个目录后,里面的所有东西(文件和目录)的权限都会改变。如何x在不修改文件的情况下向目录添加执行/搜索 ( ) 权限?
我有为某些键绑定创建的 ~/.inputrc 文件。
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C":forward-word
"\e[1;5D":backward-word
"\e[5C":forward-word
"\e[5D":backward-word
"\e\e[C":forward-word
"\e\e[D":backward-word
Run Code Online (Sandbox Code Playgroud)
每当我尝试运行时source ~/.inputrc,它都会给我以下错误:
\e[1;5C:forward-word: 命令未找到。\e[1;5D:backward-word: 命令未找到。\e[5C:forward-word: 命令未找到。\e[5D:backward-word: 命令未找到。\e\e[C:forward-word: 命令未找到。\e\e[D:backward-word: 命令未找到。
当我打开一个新终端时它也不起作用,我没有收到错误但是我的 ctrl 组合键在新终端中也不起作用。我自己创建了这个文件,因为我没有 root 访问权限来更改 /etc/inputrc.conf 。有人可以帮我吗?谢谢。
编辑:我也尝试过在冒号 (:) 符号后带有空格的文件。它不起作用。我也试过让它可执行(chmod +x ~/.inputrc),没有用。
编辑:我意识到这个程序仅适用于“bash”,而我正在运行“tcsh”。对于“csh”,使用.bindings文件而不是.inputrc文件并使用bindkey语法。
根据CentOS 网站,他们使用来自 Red Hat 的源代码,但我不清楚使用什么版本的 Red Hat 源代码来构建每个版本的 CentOS。
有等价的数字吗?例如,CentOS 6.5 是否等同于/基于 Red Hat Enterprise Linux 6.5?
当我阅读 C 源代码文件时,我发现了这个声明。(此源码是为linux系统程序编写的,这是很重要的信息)
#include <time.h>
#include <stdio.h>
static timer_t* _interval_timer;
...
Run Code Online (Sandbox Code Playgroud)
起初,我想更多地了解“timer_t”。所以我用谷歌搜索“time.h”来获取标题信息。但是,没有任何关于'timer_t'的词,只提到了'time_t'。
出于好奇,我在我的 'mac' 计算机中搜索并打开了 'time.h' c 标准库文件(如您所知,/usr/include 文件夹存储 c 标准库文件。)但该文件与之前在 google 上搜索到的文件相同。
最后,我使用虚拟机打开我的linux os(ubuntu)并打开linux c标准库文件夹中的'time.h'(文件夹路径与OSX相同)。正如我所料,Linux 中的“time.h”文件声明了 timer_t。
我在下面添加了声明“timer_t”类型的代码行。
#if !defined __timer_t_defined && \
((defined _TIME_H && defined __USE_POSIX199309) || defined __need_timer_t)
# define __timer_t_defined 1
# include <bits/types.h>
/* Timer ID returned by `timer_create'. */
typedef __timer_t timer_t;
Run Code Online (Sandbox Code Playgroud)
我的问题是这个。
为什么 'timer_t' 只在 linux c 标准库中定义?
这种情况经常发生吗?我的意思是,不同操作系统之间是否有任何不同定义的功能或属性?
我可以compgen -a用来列出所有别名:
$ compgen -a
egrep
fgrep
grep
l
la
ll
ls
Run Code Online (Sandbox Code Playgroud)
l,la并ll在 my 中定义~/.bashrc:
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
Run Code Online (Sandbox Code Playgroud)
我可以运行什么命令来查看别名扩展为什么?我找到了whatis,whereis和which,但他们没有做我想要的。