标签: shell

Bash:如何知道最后一个命令的输出是否以换行符结尾?

大多数情况下,命令的输出以换行符结尾。但有时不会,因此下一个 shell 提示与输出一起打印在同一行中。

例子:

root@hostname [~] # echo -n hello
helloroot@hostname [~] #

我一直觉得这很烦人。
现在,我可以在 PS1 变量的开头添加一个“\n”,但大多数情况下会打印我不需要的额外行。

是否有可能知道最后一个命令的输出是否以换行符结尾?


解决方案:(
感谢丹尼斯)

PS1='$(printf "%$((`tput cols`-1))s\r")\u@\h [\w]\$ '
Run Code Online (Sandbox Code Playgroud)

linux shell bash prompt

10
推荐指数
1
解决办法
2998
查看次数

为什么在运行 ls 时隐藏此文件?

编辑:我完全忘记了这个线程。原来我的硬盘坏了。我们不得不重新部署这台服务器以满足其他需求,所以我终于有时间更换一个坏磁盘,我们重新开始营业。

几个星期以来,我不明白为什么我无法删除这个特定的文件。作为 root 我可以,但我的 shell 脚本以不同的用户身份运行。所以我去运行 ls -la 并且它不在那里。但是,如果我将其作为参数调用,它就会显示出来!果然,所有者是root,因此我无法删除。

请注意,缺少 6535 ...

[root@server]# ls -la 653*
-rw-rw-r--  1 svn svn  24002 Mar 26 01:00 653
-rw-rw-r--  1 svn svn   7114 Mar 26 01:01 6530
-rw-rw-r--  1 svn svn   8653 Mar 26 01:01 6531
-rw-rw-r--  1 svn svn   6836 Mar 26 01:01 6532
-rw-rw-r--  1 svn svn   3308 Mar 26 01:01 6533
-rw-rw-r--  1 svn svn   3918 Mar 26 01:01 6534
-rw-rw-r--  1 svn svn   3237 Mar 26 01:01 6536
-rw-rw-r-- …
Run Code Online (Sandbox Code Playgroud)

linux shell command-line-interface

10
推荐指数
3
解决办法
585
查看次数

从 PATH 变量中删除重复条目

我经常修改我的 .bashrc 然后获取它。但是,当export PATH="~/bin:~/perl5/bin:$PATH"我的文件中有类似内容 时,PATH每次获取文件时环境变量都会增加。

例如,第一次获取 .bashrc 时,PATH变量由.bashrc组成~/bin:~/perl5/bin:/usr/bin:/bin

第二次它由~/bin:~/perl5/bin:~/bin:~/perl5/bin:/usr/bin:/bin.

第三次它由~/bin:~/perl5/bin:~/bin:~/perl5/bin:~/bin:~/perl5/bin:/usr/bin:/bin.

有没有一种简单的方法可以让它只添加任何不在 PATH 中的东西?

shell bash bashrc path

10
推荐指数
1
解决办法
5291
查看次数

如何在 RedHat Enterprise Linux 6 中关闭 GUI 并进入纯 shell 模式?

我是 linux 新手。如何在 RedHat Enterprise Linux 6 中关闭 GUI 并进入纯 shell 模式?我不想要 GUI。我只是想学习一些shell脚本。

谢谢。

linux shell

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

将文件从子文件夹移动到当前文件夹

假设我在 Ubuntu 服务器上的文件是这样的: /folder1/folder2/

folder1目前在,我想将所有文件/文件夹(递归)从folder2当前文件夹中移动。

我怎样才能做到这一点?

shell bash

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

覆盖 LDAP 外壳

我有一个 LDAP 服务器和一个预定义的 shell (bash)。但是在某些机器上,我希望在用户登录时使用不同的 shell,而不是存储在 LDAP 中的 shell。

我怎样才能做到这一点??有人可以给我一些指导吗?

谢谢

login shell ldap

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

在 Unix shell 中提取子字符串的最简单方法?

在 Unix shell(使用正则表达式)上提取子字符串的最简单方法是什么?

简单的意思:

  • 功能较少
  • 更少的选择
  • 少学习

更新

我意识到正则表达式本身与简单性相冲突,因此我选择了最简单的一种cut作为所选答案。我很抱歉含糊不清的问题。我更改了标题以更准确地表示此 QA 的当前状态。

unix shell regex

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

SFTP:将许多文件从一个文件夹移动(重命名)到另一个文件夹(不是一个一个)

我需要将所有文件从current_path移动到current_path/DestinationFolder

我使用的SFTP 版本是:SFTP 协议版本 2

可用的命令有:

sftp> help
Available commands:
cd path                       Change remote directory to 'path'
lcd path                      Change local directory to 'path'
chgrp grp path                Change group of file 'path' to 'grp'
chmod mode path               Change permissions of file 'path' to 'mode' 
chown own path                Change owner of file 'path' to 'own'
help                          Display this help text
get remote-path [local-path]  Download file
lls [ls-options [path]]       Display local directory listing
ln oldpath …
Run Code Online (Sandbox Code Playgroud)

solaris unix shell sftp

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

scp 仅具有定义扩展名的文件

我只想在一个 scp 命令 (Debian Linux) 中传输具有特殊扩展名的文件(例如只有 *.tar.gz、*.war)。这可能吗,如果是的话,语法如何?

应该是这样的:

scp 192.168.1.2:/srv/myfiles/'*.tar.gz *.war' .
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

shell scp

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

使用 bash 脚本意外删除了数据库

编辑:一个后续问题: 通过 --repair 和 WiredTiger 恢复 mongoDB

我的开发人员犯了一个巨大的错误,我们在服务器的任何地方都找不到我们的 Mongo 数据库。

他登录到服务器,并将以下 shell 保存在~/crontab/mongod_back.sh

mongod_back.sh

#!/bin/sh
DUMP=mongodump
OUT_DIR=/data/backup/mongod/tmp  // ????????
TAR_DIR=/data/backup/mongod      // ????????
DATE=`date +%Y_%m_%d_%H_%M_%S`   // ????????????
DB_USER=Guitang                  // ?????
DB_PASS=qq?????????????????????  // ????????
DAYS=14                          // ????14???
TARBAK="mongod_bak_$DATE.tar.gz" // ????????
cd $OUT_DIR                      // ?????
rm -rf $OUT_DIR/*                // ??????
mkdir -p $OUT_DIR/$DATE          // ?????????
$DUMP -d wecard -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE  // ??????
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE       // ??????????
find $TAR_DIR/ -mtime +$DAYS -delete             // ?14?????
Run Code Online (Sandbox Code Playgroud)

然后他运行它并输出permission …

disaster-recovery filesystems shell data-recovery ubuntu-14.04

9
推荐指数
2
解决办法
2965
查看次数