shell 小技巧汇总

 shell里输入回车

引用:
最初由 KanKer 发表
我这里echo不行。
[abc@abc abc]$ echo "/n"
/n
[abc@abc abc]$ printf "/n"

呵呵,用printf可以:)
bash:echo -e "/n"
如何在Linux 让Telnet root用户可以登入
 telnet 不是很安全,默认的情况之下不允许 root 以 telnet 进入 Linux 主机 。若要允许root用户登入,可用下列方法:

[root @wljs /root]# vi /etc/pam.d/login
#auth required pam_securetty.so #将这一行加上注释!

[root@wljs root]# mv /etc/securetty /etc/securetty.bak

这样, root 就可以直接进入 Linux 主机了。不过,建议不要这样做。也可以在普通用户进入后,切换到root用户,拥有root的权限
 
export PATH=/usr/X11R6/bin:/usr/local/texlive/2007/bin/i386-linux/:/folk/xfu/bin:/usr/local/bin:/usr/openwin/bin:/usr/X11R6/bin:/usr/local/texlive/2007/bin/i386-linux/:/folk/xfu/bin:/usr/local/bin:/usr/openwin/bin:/usr/bin::/bin:/sbin/:/xusr/bin:/usr/atria/bin:/folk/cm/bin:/folk/qms/tools:/folk/vlm/commandline:/usr/X11R6/bin
 

shell如何将标准错误输出重定向为标准输出
经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用
/tmp/test.sh > /tmp/test.log 2>&1
前半部分/tmp/test.sh > /tmp/test.log很容易理解,那么后面的2>&1是怎么回事呢?
要解释这个问题,还是得提到文件重定向。我们知道>和<是文件重定向符。那么1和2是什么?在shell中,每个进程都和三个系统文件相关联:标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件的文件描述符分别为0,1和2。所以这里2>&1的意思就是将标准错误也输出到标准输出当中。
下面通过一个例子来展示2>&1有什么作用:
$ cat test.sh
t
date
test.sh中包含两个命令,其中t是一个不存在的命令,执行会报错,默认情况下,错误会输出到stderr。date则能正确执行,并且输出时间信息,默认输出到stdout
#./test.sh > test1.log
#./test.sh: line 1: t: command not found
$ cat test1.log
可以看到,date的执行结果被重定向到log文件中了,而t无法执行的错误则只打印在屏幕上。
$ ./test.sh > test2.log 2>&1
$ cat test2.log
./test.sh: line 1: t: command not found
这次,stderr和stdout的内容都被重定向到log文件中了。
实际上, > 就相当于 1> 也就是重定向标准输出,不包括标准错误。通过2>&1,就将标准错误重定向到标准输出了,那么再使用>重定向就会将标准输出和标准错误信息一同重定向了。如果只想重定向标准错误到文件中,则可以使用2> file。
 
 
 umask
1. umask
需要参考的其他文件umask 用法:umask决定目录和文件被创建时得到的初始权限umask = 022时新建的目录权限是755 文件的权限是 644777-022=755666-022=644为了能够上传覆盖,umask=000777-000=777666-000=666
用umask命令查看或设置当前的umask
$ umask000
$ umask 022
你可以改变一下umask,建立目录和文件,观察一下还有,umask是unix操作系统的概念
chkconfig
Linux 中有多种运行级,常见的就是多用户的 2 3 4 5 ,很多人知道 5 是运行 X-Windows 的级别,而 0 就是关机了。运行级的改变可以通过 init 命令来切换。例如,假设你要维护系统进入单用户状态,那 么,可以使用 init1 来切换。在 Linux 的运行级的切换过程中,系统会自动寻找对应运行级的目录 /etc/rc[0-6].d 下的 K S 开头的文件, 按后面的数字顺序,执行这些脚本。对这些脚本的维护,是很繁琐的一件事情, Linux 提供了 chkconfig 命令用来更新和查询不同运行级上的系统服 务。

范例:

1.
查看在各种不同的执行等级中,各项服务的状况:
$chkconfig --list

2.
列出系统服务vsftpd在各个执行等级的启动情况:
$chkconfig --list vsftpd

3.
在执行等级3,5时,关闭vsftpd系统服务:
$chkconfig --level 35 vsftpd off

4.
在执行等级235时,开启 vsftpd系统服务:
$chkconfig --level 235 vsftpd on

5.
关闭一些自己不需要的服务 ->
如果没有打印机:
chkconfig --level 235 cups off 
如果没有局域网:
chkconfig --level 235 smb off
如果不需要远程用户登录的:
chkconfig --level 235 sshd off
如果不需要定时任务的:
chkconfig --level 235 crond off
如果不需要添加新硬件的:
chkconfig --level 235 kudzu off

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值