标签: bash

如何更改在控制台登录 (Ubuntu) 时设置的默认 TERM 值?

对于控制台登录,Ubuntu 中的 $TERM shell 值默认为“xterm”。如何更改它使其默认为“xterm-color”?我问是因为看起来这是打开颜色提示的最简单方法。

我知道您可以在 .bashrc 或其他登录脚本中重置 TERM 值,但我宁愿将 TERM 值强制为更合理的默认值。

bash shell console xterm

7
推荐指数
1
解决办法
2万
查看次数

SQL 类似于 group by 和 sum 用于命令行中的文本文件?

我有两个字段的巨大文本文件,第一个是字符串,第二个是整数。文件按第一个字段排序。我想在输出中得到的是每个唯一字符串一行以及相同字符串的数字总和。一些字符串只出现一次,而另一些则出现多次。例如,鉴于下面的示例数据,对于字符串 glehnia,我希望在结果中得到 10+22=32。

任何建议如何使用 gnuwin32 命令行工具或在 linux shell 中执行此操作?

谢谢!

glehnia 10 glehnia
22
glehniae 343
glehnii 923 glei
1171 glei
2283 glei
3466
gleib 914
gleiber 652
gleiberg 495
gleiberg 709

linux bash awk sed command-line

7
推荐指数
1
解决办法
6607
查看次数

为什么可以 bash cd 到 //?

在 bash 中,如果你 cd 到 // 你的密码将是 //,但如果你 cd 到 / 或 ///+ 你的密码将是 /。这是有原因的还是只是一个奇怪的错误?

我已经在 osx 和 ubuntu 中尝试过这个。

bash shell

7
推荐指数
1
解决办法
366
查看次数

如何为文件的每一行添加前缀/后缀?

例如,file1 包含:

entry1:value1
entry2:value2
entry3:value3
Run Code Online (Sandbox Code Playgroud)

现在我想为每一行添加一个前缀“file1:”:

file1:entry1:value1
file1:entry2:value2
file1:entry3:value3
Run Code Online (Sandbox Code Playgroud)

我怎样才能在一个命令行中做到这一点?

我正在使用 Bash。

顺便说一句,必须保留前导空间,因此 Bash 内置读取行对我不起作用。

bash

7
推荐指数
1
解决办法
2万
查看次数

有没有办法对 bash 的输入进行预处理?

我希望能够对在 bash 看到它们之前发生的命令行进行任意修改,即在任何类型的扩展之前。这可能吗?

我不是要解决一个特定的问题,我真的只是很好奇是否有可能在不编写自己的 shell 的情况下获得这个功能。

bash

7
推荐指数
1
解决办法
1380
查看次数

bash:每个命令的历史记录。它是如何工作的?

好的。我家里有一台运行 Leopard 的旧 G5 和一台运行 Ubuntu 10.04 的戴尔,还有一台 MacPro 在工作时也运行 Leopard。

我经常使用 Terminal.app/bash。在我的家用 G5 上,它展示了一个很好的功能:使用?导航历史记录我得到最后一个命令,以我输入的几个字母开头。

这就是我的意思(|代表插入符号):

$ ssh user@server
$ vim /some/file/just/to/populate/history
$ ss|
Run Code Online (Sandbox Code Playgroud)

所以,我输入了“ssh”的两个首字母,?结果如下:

$ ssh user@server
Run Code Online (Sandbox Code Playgroud)

而不是这个,这是我在其他地方得到的行为:

$ vim /some/file/just/to/populate/history
Run Code Online (Sandbox Code Playgroud)

如果我继续点击??,我可以浏览这样的历史ssh

$ ssh otheruser@otherserver
$ ssh user@server
$ ssh yetanotheruser@yetanotherserver
Run Code Online (Sandbox Code Playgroud)

它适用于任何命令,例如catvim或其他任何命令。

这太酷了。除了我不知道如何在我的其他机器上模仿这种行为。

这是我的.profile

export PATH=/Developer/SDKs/flex_sdk_3.4/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/sw/bin:/sw/sbin:/bin:/sbin:/bin:/sbin:/usr/bin:/usr/sbin:$HOME/Applications/bin:/usr/X11R6/bin
export MANPATH=/usr/local/share/man:/usr/local/man:opt/local/man:sw/share/man
export INFO=/usr/local/share/info
export PERL5LIB=/opt/local/lib/perl5
export PYTHONPATH=/opt/local/bin/python2.7
export EDITOR=/opt/local/bin/vim
export VISUAL=/opt/local/bin/vim
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home

export …
Run Code Online (Sandbox Code Playgroud)

terminal bash history macos

7
推荐指数
1
解决办法
912
查看次数

Linux shell utils:将十六进制列表转换为十进制列表

如何将包含大量十六进制数字的文件转换为十进制?

示例:文件 1

 0x59999
 0x5acdc
 0xffeff
Run Code Online (Sandbox Code Playgroud)

我想开始

$ cat file1 | util | cat >file2
Run Code Online (Sandbox Code Playgroud)

并使用以下内容获取 file2:

 1021489
 1249230
 3458080
Run Code Online (Sandbox Code Playgroud)

(示例输出中的数字是随机的,因为我无法将这么长的十六进制数字转换为十进制)

更新:我使用以下 Perl 命令解决了这个问题:

perl -pe '$_=hex;$_.="\n"'
Run Code Online (Sandbox Code Playgroud)

有更好的解决方案吗?真正的任务是需要能够对十六进制数字进行排序。

linux bash shell-script

7
推荐指数
1
解决办法
7816
查看次数

在 Cygwin 中使用 SQLite3

我正在尝试在 cygwin 中使用带有 mintty 终端的 sqlite3.exe 命令外壳。我从 Windows 命令提示符尝试了该程序,它可以工作。当我尝试从 cygwin mintty 终端使用它时,程序似乎挂起。我可以看到参数和版本。当我运行 shell 时,它就好像停止写入终端一样。

以前有没有其他人遇到过这个问题,如果有,你是如何解决的?TIA。

~>sqlite3 -help
Usage: C:\Windows\sqlite3.exe [OPTIONS] FILENAME [SQL]
FILENAME is the name of an SQLite database. A new database is created
if the file does not previously exist.
OPTIONS include:
   -init filename       read/process named file
   -echo                print commands before execution
   -[no]header          turn headers on or off
   -bail                stop after hitting an error
   -interactive         force interactive I/O
   -batch               force batch I/O
   -column              set output mode to 'column' …
Run Code Online (Sandbox Code Playgroud)

cygwin bash sqlite mintty

7
推荐指数
1
解决办法
1万
查看次数

BASH:查找重复文件(MAC/LINUX 兼容)

我正在寻找与 Mac 兼容的 bash 脚本,以在目录中查找重复文件。

linux mac bash

7
推荐指数
2
解决办法
9129
查看次数

我的 bash 脚本保留最后一个 x 文件并删除其余文件有什么问题?

我有这个 bash 脚本,它可以很好地按 cron 计划备份我的数据库:

#!/bin/sh

PT_MYSQLDUMPPATH=/usr/bin
PT_HOMEPATH=/home/philosop
PT_TOOLPATH=$PT_HOMEPATH/philosophy-tools
PT_MYSQLBACKUPPATH=$PT_TOOLPATH/mysql-backups
PT_MYSQLUSER=*********
PT_MYSQLPASSWORD="********"
PT_MYSQLDATABASE=*********
PT_BACKUPDATETIME=`date +%s`
PT_BACKUPFILENAME=mysqlbackup_$PT_BACKUPDATETIME.sql.gz
PT_FILESTOKEEP=14

$PT_MYSQLDUMPPATH/mysqldump -u$PT_MYSQLUSER -p$PT_MYSQLPASSWORD --opt $PT_MYSQLDATABASE | gzip -c > $PT_MYSQLBACKUPPATH/$PT_BACKUPFILENAME
Run Code Online (Sandbox Code Playgroud)

问题在于它会继续转储文件夹中的备份,而不是清理旧文件。这就是变量的PT_FILESTOKEEP用武之地。无论设置为多少,这就是我想要保留的备份数量。所有备份都带有时间戳,因此通过按名称 DESC 对其进行排序,您将首先获得最新的备份。

任何人都可以帮我完成 BASH 脚本的其余部分来添加文件清理吗?我缺乏 bash 的知识,我无法拼凑代码来完成其余的工作。

linux backup bash

7
推荐指数
2
解决办法
2万
查看次数

标签 统计

bash ×10

linux ×4

shell ×2

awk ×1

backup ×1

command-line ×1

console ×1

cygwin ×1

history ×1

mac ×1

macos ×1

mintty ×1

sed ×1

shell-script ×1

sqlite ×1

terminal ×1

xterm ×1