嘿,我想知道我是否可以在 unix/linux 环境中从终端内打开一个 shell 或新的终端。特别是只有没有 GUI 的命令行。这是可行的吗?我该怎么做?
我在一个目录中有很多文件。他们每个人的名字都非常不同:
one.tar.gz
juk.tar.gz
cv.tar.gz
erf.tar.gz
vcx.tar.gz
cxcd.tar.gz
vc.tar.gz
jkjk.tar.gz
zxc.tar.gz
asd.tar.gz
ghj.tar.gz
kll.tar.gz
qwe.tar.gz
Run Code Online (Sandbox Code Playgroud)
一一提取非常耗时。所以我想使用一个命令提取所有这些文件。我试过tar -xzf *但没有用
如何在不包含行号的情况下打印 Linux 命令行历史记录?我想将其全部发送到这样的文本文件:
history >> history.txt
Run Code Online (Sandbox Code Playgroud) 我注意到有时我通过 SSH 访问的 shell 帐户会从我的主 shell 继承别名和文件类型颜色。
这个过程是如何发生的?这些 shell 通常是 BASH,但我想这是所有 TTY 模拟器的共同点。
我的 Mac 上有大量子文件夹,每个子文件夹中都有随机数量的 csv 文件。我想要做的是将这些文件合并到每个目录的单个文件中。
到目前为止,我知道我可以将这些文件与 合并cat * > mergedfile.csv,但是我在遍历所有文件夹时遇到了问题。到目前为止,我以某种方式设法合并了各种各样的东西,但我似乎无法完全按照我的意愿去做。
关于做到这一点的最佳方法的任何想法?
for DIR in ./subfolder/*
do
cat $dir/* > merged.csv
done
Run Code Online (Sandbox Code Playgroud) 我需要从源读取数据,并且必须使用 shell 脚本形成一个 XML 文件。但首先我不知道如何使用 shell 脚本在文件中编写多行
此命令中的 -.*$/ 是什么意思?请帮我破译这个。
echo -n full | sed -e "s/-.*$//"
Run Code Online (Sandbox Code Playgroud)
我知道 sed 的作用以及所有这些,我只想知道 -.*$ 部分是什么。
假设我的最后 3 个命令是:
% rm foo.out
% myprog > foo.out
% cat foo.out
我想用一次回车键调用最后 3 个,即执行一些调用的 shell 历史命令:
% rm foo.out && myprog > foo.out && cat foo.out
我怎样才能做到这一点?
我知道我们可以执行“历史”命令或使用 control+R 来查找特定 shell 会话中的命令历史记录。但是有没有办法找出我上次 ssh 会话的命令历史记录?
我也很想知道(在系统中)linux 在哪里保存命令行历史记录,即使它只是用于当前的 shell 会话。
谢谢!
我正在编写脚本以满足我自己的需要,以便在 bash 中对我的 mac 上的下载文件夹进行排序。我传递给函数参数:源目录、目标目录和要移动的文件扩展名数组。我的问题是,当函数在“查找”行中时,它只复制一个具有该扩展名的文件,但是当我删除所有变量并直接输入参数时,它可以正常工作。这是怎么回事 ?
function moveFaster(){
clear
src=$1
dst=$2
typ=$3
if [ ! -d $dst ]
then
mkdir $dst
fi
for i in "${typ[@]}"
do
find $src -name "${i}" -exec mv {} ${dst} \;
done
}
Run Code Online (Sandbox Code Playgroud)