标签: bash

在 .bashrc 中设置环境变量的最佳方法是什么?

在 中设置变量时.bashrc,我应该使用它吗?

export VAR=value
Run Code Online (Sandbox Code Playgroud)

或者这就足够了吗?

VAR=value
Run Code Online (Sandbox Code Playgroud)

到底有什么区别(如果有的话)?

linux shell bash environment-variables

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

如何更改 FreeBSD 中的默认 shell?

FreeBSD 中的默认 shell 是sh,我真的无法忍受:自动完成非常有限,rehash 命令会杀死我。感觉自己是个单臂单腿的人……

如何将 shell 全局更改为zshor bash- 对于 root 以及所有当前和未来用户?

freebsd shell bash zsh sh

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

方便解析带有单位后缀的数字?

假设您拥有人类可读格式的数量数据,例如 的输出du -h,并且想要进一步对这些数字进行操作。假设您想通过 grep 传输数据以对该数据的子集进行求和。您可以在许多以前从未见过的系统上临时执行此操作,并且只有最少的实用程序。您需要对所有标准 10^n 后缀进行后缀转换。

是否存在一个 gnu-linux 实用程序来将后缀数转换为管道内的实数?您是否编写了一个 bash 函数来执行此操作,或者一些可能容易记住的 perl,而不是一段正则表达式替换或几个 sed 步骤?

38M     /var/crazyface/courses/200909-90147
2.7M    /var/crazyface/courses/200909-90157
1.1M    /var/crazyface/courses/200909-90159
385M    /var/crazyface/courses/200909-90161
1.3M    /var/crazyface/courses/200909-90169
376M    /var/crazyface/courses/200907-90171
8.0K    /var/crazyface/courses/200907-90173
668K    /var/crazyface/courses/200907-90175
564M    /var/crazyface/courses/200907-90178
4.0K    /var/crazyface/courses/200907-90179
Run Code Online (Sandbox Code Playgroud)

| grep 200907 | <amazing suffix conversion> | awk '{s+=$1} END {print s}'


相关参考资料:

bash command-line-interface perl command utility

11
推荐指数
2
解决办法
5695
查看次数

在 unix 中,减少正在积极写入的大量日志文件大小的最佳方法是什么?

在 linux 服务器上,我想减小几个 GB 大的日志文件的大小。切断上半部分,或者前一百万行可能会起作用。

linux unix bash log-files

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

在 Linux 中记录“人员”活动

因此,我阅读了许多与此相关的帖子,并且比以前更加困惑。建议使用各种工具,包括 ttyrec、sno​​opy、acct、rootsh、sudosh、ttyrpld、unix 审计等。

就我而言,我希望能够记录系统上执行的所有命令(例如启用时间戳的历史记录),但我也想知道谁做了什么?但是,我们都通过 ssh 登录到同一个用户帐户的小子集(取决于我们在做什么)。如何获取命令日志,包括“谁”将给我的信息(关于连接),以便我可以将操作追踪到特定的人,作为对普通“用户”的摆姿势?

linux ssh bash logging

11
推荐指数
1
解决办法
5744
查看次数

如何删除所有空目录

(在 Linux 系统上)

我在文件系统上有大量嵌套的子目录。我想修剪所有不包含任何文件的目录路径。

换句话说,我想删除该目录或该目录的任何子目录中没有文件的每个目录递归。

linux unix bash

11
推荐指数
1
解决办法
614
查看次数

我如何编写 mkfs 脚本询问“是整个设备,而不仅仅是一个分区!仍然继续?”

我正在尝试创建一个格式化 Amazon EC2 EBS 卷的脚本,以便我可以挂载它。

从命令行看,它看起来像这样:

> mkfs -q -t ext4 /dev/sdf
/dev/sdf is entire device, not just one partition!
Proceed anyway? (y,n) 
Run Code Online (Sandbox Code Playgroud)

(命令是正确的;不需要为我的目的创建分区表)

我的问题:因为这个命令应该在一个自动化脚本中运行,所以我不能在终端上问这个问题;没有人会接听,脚本将挂起。我如何避免这种情况?

我试过:

> echo y | mkfs -q -t ext4 /dev/sdf
Run Code Online (Sandbox Code Playgroud)

但这并不能解决问题。-q 选项也没有区别。

linux bash amazon-ec2

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

第一次通过脚本运行 ssh-copy-id 时回答“是”?

第一次ssh-copy-id会问

# ssh-copy-id -i .ssh/id_dsa.pub backup@example.com
The authenticity of host 'example.com (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 39:fb:5e:70:30:33:2b:18:17:e9:4f:2f:91:b5:d2:21.
Are you sure you want to continue connecting (yes/no)? 
Run Code Online (Sandbox Code Playgroud)

是否可以编写此脚本,因此脚本只会回答是?

linux ubuntu bash centos

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

可以忽略“su”命令中的用户 shell?

如果我做

su - -c 'mkdir bin' user1
Run Code Online (Sandbox Code Playgroud)

然后我得到

su: /usr/bin/ksh: No such file or directory
Run Code Online (Sandbox Code Playgroud)

因为用户 shell 设置为kshin/etc/passwd并且ksh未安装。

在这种情况下,如何以用户身份执行命令?

linux ubuntu bash centos

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

符号链接和 sudo

我创建了一个符号链接:

ln -s /tmp/folder1 /tmp/folder2

然后我去 /tmp/folder2 并运行pwd

$ cd /tmp/folder2/
$ pwd
/tmp/folder2
$ sudo pwd
/tmp/folder1 # <-- This is the odd part
Run Code Online (Sandbox Code Playgroud)

为什么pwdwithsudo给了原目录?我正在编写一个 bash 脚本,需要当前目录的绝对路径。使用 sudo 我似乎无法获得原始目录。

shell bash sudo symbolic-link

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