Articles of shell

shell脚本遍历文本文件并删除一个string

我有一个与用户列表一个目录中的几百个文本文件: &usera &userb userc &userd 请注意,有些不带领& 。 此外,在某些文件中,最后一行不会以换行符结尾。 在shell脚本中,通过所有这些文件并删除(比如说userb ,确保每个现有用户保持独立的路线的最简单方法是什么? 谢谢!

在shell中输出奇怪的字符

在过去的几年中,有一些Linux系统在运行各种命令时会输出奇怪的字符。 以下是其中一台机器上sensors命令的输出示例: acpitz-virtual-0 Adapter: Virtual device temp1: +45.5°C (crit = +126.0°C) coretemp-isa-0000 Adapter: ISA adapter Core 0: +44.0°C (high = +100.0°C, crit = +100.0°C) Core 1: +45.0°C (high = +100.0°C, crit = +100.0°C) nouveau-pci-0100 Adapter: PCI adapter temp1: -62.0°C (high = +95.0°C, crit = +99.0°C) 注意到所有地方的字符。 为什么在一些环境中发生这种情况而不是其他情况 我能做些什么来纠正这个问题?

为什么这个bash脚本不工作?

我做了一个bash脚本,它检查磁盘上的可用空间: if [ check_space -gt "85" ]; then echo "removing" else echo "not removing" fi check_space返回一个数字,如52 , check_space函数是: check_space() { df /dev/sda1 | tail -1 | awk '{print $5}' | sed 's/%//'; } 它返回./backup.sh: line 63: [: check_space: a full expression was expected (我从西class牙语翻译,所以也许不是精确的翻译)。 什么可能是错的?

如何在不创build文件的情况下执行shell脚本

如何在不创build文件的情况下执行shell脚本? 例如,假设我有以下脚本( testscript ): #!/bin/bash function run_free() { free -m } run_free 那么我当然可以执行这个: sh testscript 我想创build一个文件,但卵形。 我试过了: sh echo '#!/bin/bash function run_free() { free -m } run_free' 哪个没用 有任何想法吗?

全局redirect端口80到443

我想设置我的Linux机箱,以便任何打到端口80的东西只要告诉443。我希望它是无论域,IP或任何具体的细节可能存在。 如果可以要求80港口,应该告诉不要。 我们在443年这样做。 我将在443上使用Apache,因此可以将它绑定到80,但是没有看到解决scheme必须在端口80上包含Apache。 要清楚,我正在寻找一个解决scheme,不需要更改虚拟主机。 我理解可以通过inheritance传递下去的全局redirect。 这需要虚拟主机的变化。 我正在寻找更全面的东西,更不容易“哎呀,我忘了那条线,现在端口80是暴露我的数据未encryption。 你将如何去解决这个问题? iptables,Apache,用netcat自定义shell脚本和一些神奇的东西,使其去SSL?

在ssh中使用类似bash的命令replace或者如何从ssh * client *请求数据

在bash(和其他shell)中,可以使用类似$()和“(反引号)的命令将命令的结果插入到命令行中。 现在,如果你有类似的东西,但对于SSH会话,这将是很好的。 因此,您正在进行ssh会话,并需要从您的计算机获取一些信息,并希望将其放入所连接的计算机的内部命令行。 比如说你想直接访问一个mysql控制台。 你可以使用这样的命令: ssh [email protected] "mysql -u blub -pmypass" 这工作,但问题是,你可以在SSH shell进程的命令行中看到密码。 为了解决这个安全问题,我想有这样的事情: ssh [email protected] "mysql -u blub -p\$(ssh-on-client 'cat pass-file')" 这将执行在SSH客户端上,而不是在服务器上的cat passfile 。 有什么知道吗? 你有什么其他的技巧怎么做? 更新:我感谢我的例子的答案,但我不会接受他们,除非他们回答真正的问题。 也就是说,可以从ssh会话中与ssh客户端计算机通信。 (我知道这可能构成一个可能的安全问题) 可能的解决scheme: 有一个SSH客户端连接回服务器。 (sweimann)问题是如何获取连接回服务器的证书。 使用ssh创build隧道并使用一些netcat脚本/ telnet在服务器上执行命令并将结果发送回去。 使用expect来编写shell脚本。 (Zac Thompson) 在客户端的ssh上使用一个自定义的包装,看着控制台并采取相应的行动。 (札幌) 修补SSH来支持这个。 邮件列表上有相似的补丁。 有一个选项“SendEnv” ssh在远程计算机上设置环境variables。 不过,这个必须在远程sshd上启用。

shell脚本$$值

当我使用这些shell命令时: [root@linux /tmp]# a=$$ [root@linux /tmp]# echo $a 3985 价值3985从哪里来? 为什么?

如何通过shell脚本运行mysql命令?

mysql -u root -pmysql; SELECT TABLE_NAME AS "Table Name", table_rows AS "Quant of Rows", ROUND((data_length + index_length)/1024/1024,2) AS "Total Size Mb" FROM information_schema.TABLES WHERE information_schema.TABLES.table_schema='database_name'; 我想创build一个shell脚本来执行这些命令并返回结果。 我怎样才能通过shell脚本运行这个命令?

挂起时使用ssh重启电脑

我有一台电脑正在运行testing,有时在testing过程中会冻结。 我正在考虑编写一个shell脚本来pingtesting机器,如果挂起,重启它。 我ssh进入testing机器,并能够重新启动,但在一个挂起我没有运气! 我怎么能在通过SSH挂起期间重新启动它? 谢谢 规格:mac osx

教过以前只使用过Windows的初学者吗?

我应该介绍一下使用shell(即bash)给初学者的介绍。 哪一个是最基本/有用的东西,我可以在一个半小时内教给别人没有太多的要求? 以下是我想到的一点: 我在哪里(pwd) 更改目录(cd,cd ..,cd – ) 创build目录(mkdir,mkdir -p) 重命名文件/目录(mv) 复制文件/目录(cp,cp -r) 列出目录条目(ls,ls -l,ls -a) 编辑 总的来说,初学者是指一般的Unix / Linux初学者:-)。