对于控制台登录,Ubuntu 中的 $TERM shell 值默认为“xterm”。如何更改它使其默认为“xterm-color”?我问是因为看起来这是打开颜色提示的最简单方法。
我知道您可以在 .bashrc 或其他登录脚本中重置 TERM 值,但我宁愿将 TERM 值强制为更合理的默认值。
我有两个字段的巨大文本文件,第一个是字符串,第二个是整数。文件按第一个字段排序。我想在输出中得到的是每个唯一字符串一行以及相同字符串的数字总和。一些字符串只出现一次,而另一些则出现多次。例如,鉴于下面的示例数据,对于字符串 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
在 bash 中,如果你 cd 到 // 你的密码将是 //,但如果你 cd 到 / 或 ///+ 你的密码将是 /。这是有原因的还是只是一个奇怪的错误?
我已经在 osx 和 ubuntu 中尝试过这个。
例如,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 看到它们之前发生的命令行进行任意修改,即在任何类型的扩展之前。这可能吗?
我不是要解决一个特定的问题,我真的只是很好奇是否有可能在不编写自己的 shell 的情况下获得这个功能。
好的。我家里有一台运行 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)
它适用于任何命令,例如cat,vim或其他任何命令。
这太酷了。除了我不知道如何在我的其他机器上模仿这种行为。
这是我的.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) 如何将包含大量十六进制数字的文件转换为十进制?
示例:文件 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)
有更好的解决方案吗?真正的任务是需要能够对十六进制数字进行排序。
我正在尝试在 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) 我有这个 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 的知识,我无法拼凑代码来完成其余的工作。