《Linux命令、编辑器与Shell编程》读书笔记1-linux系统入门命令(跟风到底,一探究竟)

《Linux命令、编辑器与Shell编程》读书笔记1-linux系统入门命令http://blog.csdn.net/victory_xing126/article/details/46287633


一、关闭、重启系统

1. 1小时后关机

shutdown -h 1

2. 立即关机

shutdown -h now

poweroff

3. 在指定时间点关机

shutdown -h 15:30

4. 2分钟后重启

shutdown -r 2

或者立即重启

reboot

shutdown -r now

5. 挂起(需要硬件支持,否则可能无法恢复)

halt

6. init命令

[plain]  view plain  copy
  1. 0:立即关机  
  2. 1:单用户模式(相当于win里面的安全模式),可以通过该模式修改root密码  
  3. 2:维护模式,网络相关的服务会停止  
  4. 3:完全多用户模式,正常工作下用到的模式  
  5. 4:未分配使用,开发模式  
  6. 5:图形模式  
  7. 6:重启  


二、帮助命令

1. 同时执行多个命令,用;分开

2. 分割长命令:\

3. 查看某个命令的详细功能:

help command

或者 command --help

4. man手册:是一个文档形式,操作同vi编辑器

(1)man command

(2)man number conmmand

[plain]  view plain  copy
  1. number代表的含义:  
  2. 1:用户命令,所有用户都可以查阅其中的内容  
  3. 2:系统调用,开发人员使用  
  4. 3:库函数  
  5. 4:设备文件  
  6. 5:文件格式描述,通常指配置文件的文档   
  7. 6:游戏  
  8. 7:其他杂项  
  9. 8:只能给root用户使用的管理命令和工具等  
  10. 9:其他  

(3)查找包含某个关键字的命令:

man -k keyword

5. info信息页

info command|filename

文档中的*号表示超链接,选中按回车可以跳转


三、Linux的人机交互程序——Shell

1. Shell的种类:

可以通过cat /etc/shells查看目前OS上安装了哪些Shell;通过shell_name --version查看该Shell的版本号

查看Shell程序相关的信息:(注意下面的命令里是反单引号)

ls -l `cat  /etc/shells`

2. 更改用户的默认shell

(1)临时修改:

显示当前用户使用的Shell:echo $SHELL

直接输入要使用的Shell名来临时更改当前Shell,如:ksh,bash,csh

此时,再查看当前正在使用 的shell名,仍然是之前的名字,但实际上变更后的shell是运行在原shell下的一个子shell,现在已经是更改后的shell了

(2)永久修改:

方法一:用su - username切换到要被更改shell的用户下,然后键入chsh命令,系统提示输入新Shell的路径,可以用上面说过的cat /etc/shells命令查看;

方法二:usermod -s shell_path user_name

当此用户重新登录后,就可以使用新的shell了 

方法三:创建用户时指定默认shell:

useradd -s shell_path user_name

关于useradd命令更详细的使用后面会讲,或者自己通过man手册学习

*除非特殊说明,本书后面都默认使用bash shell讲解


四、Bash命令基本操作:

1. 指定默认编辑器:set -o vi|emacs

2. bind命令

(1)查看默认绑定的快捷键:bind -P

(2)命令格式:

[plain]  view plain  copy
  1. bind [option] [ [function name] [keyseq:shell-command] [file name] [ keyseq:readline-function or readline-command ] ]  
  2. keyseq:readline-function:指一组快捷键,如\C表示ctrl键,\C-x表示同时按ctrl+x;readline-function表示要绑定的函数名称  
  3. option:  
  4.     l:列出所有可用的Read里呢函数名   
  5.     P:列出所有快捷键  
  6.     p:列出当前Readline库中的函数名称及绑定  
  7.     f filename:从文件filename中读取绑定  
  8.     r keyseq:取消由keyseq快捷键指定的所有绑定  
  9.     x keyseq:shell-command:为keyseq指定的快捷键绑定由shell-command指定的shell命令;还可以使用x参数绑定一个程序  
  10.     m keymap:使用参数keymap指定的键盘映射  
*上面说的readline函数库是指readline/readline.h中定义的函数,可以通过bind -l查看;这个函数库完成了linux中的相当一部分操作,比如中断(ctrl+c)、回删、上翻/下翻命令等,绝大多数快捷键定义都是针对这个函数库中的函数进行。

(3)修改或定义新的快捷操作,比如将回删功能重新定义成ctrl+x:

bind "\C-x":backward-delete-char

绑定应用程序,比如把vi绑定给ctrl+alt+v:

bind -x '"\C-\M-v":vi'

绑定一个shell命令,如ctrl+a=ls -l:

bind -x '"\C-a":ls -l'

(4)保存修改的快捷键,否则重登陆或系统重启,这些设置会丢失

按键映射默认保存在两个文件中:/etc/inputrc和~/.inputrc,前者对所有登录的用户都生效,后者则只对家目录对应的用户生效

方法一:bind -P >~/.inputrc

方法二:echo 'export $INPUTRC=/etc/inputrc' >>~/.bash_profile

方法三:向.bash_profile或.bashrc文件中追加以下内容:

if [ -f ~/.inputrc ] then

bind -f ~/.inputrc

fi

方法四:上面三种方法只能保存readline库的快捷键,自定义的程序和shell命令不会被保存

在用户家目录下新建.custom_bind文件,内容为绑定命令 :

bind -x '"\C-\M-x":ls -l'

bind -x '"\C-\M-v":vi'

然后编辑用户家目录下的shell脚本文件(文件名根据用户shell种类不同而不同),bash的为.bash_profile(或.bashrc),在文件末尾 追加:

if [ -f ~/.custom_bind ] ; then

. ~/.custom_bind &>/dev/null

fi

*注:linux在新建用户的时候,会将/etc/skel目录里的东西整体拷贝一份到新用户的家目录下(前提是建用户时使用了-d参数、指定了用户的家目录);因此,如果想让今后新建的用户都绑定指定的快捷键,只需要通过root用户在这个目录下重做一次上面的操作即可。

3. 历史命令

某用户的操作命令会被记录在家目录的.bash_history文件中

(1)修改环境变量中关于记录历史命令的设置

set | grep HIST

HISTFILE=/root/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000

可以通过修改这三个值:

·临时修改:export 变量名=变量值

·永久修改(对所有用户生效):在/etc/profile文件中添加(或者修改)

export HISTFILESIZE=900

·永久修改(针对某个用户):在对应用户家目录下的.bash_profilez中添加(或修改)上述命令记录

*注:后两种修改若想立即生效,需要对相应的profile文件运行source命令

(2)清空历史命令:history -c

4. 命令别名功能:可以把常用的命令定义成某个缩写,提高工作效率

直接打开用户家目录下的.bash_profile文件(如.bashrc)追加如下格式的命令:

alias 自定义命令 = ’命令行

比如:alias zidingyi = 'tdx tailf /home/users/logs/debug.log > user.log'

保存退出后使用source命令。

也可以:

echo "alias vi = 'vim' ">>~/.bash_profile

*注:>表示将前面命令的执行结果覆盖到后面的文件中;>>表示追加到后面的文件中。在操作系统文件时、注意尽量用>>,以免覆盖系统配置。关于这两种符号下面会详细讲

取消某个别名:unalias 自定义别名


五、管道线和输入/输出

1. 常用的管道线组合命令:

(1)搜索文件名相似的文本中的指定字符串:

find ./ -name "file_name" | xargs grep -i "strings"

-i 表示不区分大小写

(2)搜索包含指定字符串的进程:

ps -ef | grep strings

(3)自定义本地网卡使用情况输出:

netstat -i | sed '1d' | awk '{OFS="\t" } {print $1,$4,$8}'

sed ‘1d'  会屏蔽前面命令输出的第一行;awd...表示先按照空格或制表符来分割每一行,然后输出第1,4,8个字段、并用制表符(OFS="\t")对其进行分割

*注:使用管道符的命令,只能包含一条对文件进行读写的子命令

2. 重定向(< << > >>)

(1)将命令结果输入到某个文件中:

netstat -tunlp >netstat.log

(2)将某个文件中的内容读入到命令中(<):

mail -s 'Network status' user1 < netstat.txt

(3)错误重定向:比如要删除一个不存在的文件

rm -rf asdf.fdsa > error

错误提示会存在error文件中,而不是显示在屏幕上;这个功能可以避免使你编写的脚本在工作时产生的输出、错误信息干扰用户正在进行的操作。

*注:对于不需要显示、也不需要保存的输出,可以直接输出到linux垃圾池中:/dev/null

具体用法请参考:http://blog.csdn.net/kaiwii/article/details/7308729


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
推荐理由 它是Pearson、Amazon、Bames&Noble 计算机畅销书!   知名Linux专家Mark Sobell 编写的这本书,为系统管理员、开发人员和高级用户提供了最需要的全面的深入指导,同时还是一本卓越的日常参考手册。   一本值得每一位Linux管理人员、开发人员和高级用户拥有的指南!   本书特点:   1.它是Pearson、Amazon、Bames&Noble 计算机畅销书!   2.知名Linux专家Mark Sobell 编写的这本书,为系统管理员、开发人员和高级用户提供了最需要的全面的深入指导,同时还是一本卓越的日常参考手册。   3.一本值得每一位Linux管理人员、开发人员和高级用户拥有的指南!   4.本书并不针对特定的Linux版本或者某个发行版本,而是适用于所有近期发布的Linux版本;   5.最实用的Linux指南和参考手册,数百个高质量的实例覆盖了每种Linux发行版!   6.本书覆盖超过80个核心工具、shell编程编辑器编程工具,能使您成为真正的Linux高手,它是掌握强大的Linux命令行的捷径。   本书是目前所能找到的最实用、最全面的Linux指南和参考手册,也是唯一一本提供以下全部内容的书籍:   更好更实用的示例覆盖了实际工作中需要执行的任务;   基于作者对Linux的渊博知识,本书提供了更加深入的理解;   为从aspell到xargs等80多个工具提供了更加实用的讲解;   使用ssh和scp的安全通信实现技术,以及多处让系统更加安全的提示;   很好地介绍了Linux编程环境,包括make、gcc、gdb、CVS等;   关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;   定制shell以及在命令行上交互使用shell的提示和技巧;   提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;   大量练习将有助于提高读者的动手能力并获得自信心;   介绍了如何使用Apt、yum和BitTorrent自动更新系统;   还介绍了gawk、sed、find、sort、bzip2和正则表达式等内容。 内容简介要想真正高效地使用Linux,就必须全面掌握shell命令行。通常必须购买两本书才能达到精通的目的:一本关于Linux基本概念和技术的指南,再加上一个单独的参考手册。更糟糕的是,大多数Linux参考手册只是对man手册页的稍加整理。而现在有了一个好得多的解决方案。知名Linux专家Mark Sobell编写的这本书,为系统管理员、开发人员和高级用户提供了最需要的全面的深入指导,同时还是一个卓越的日常参考手册。   本书与具体版本无关,可以在任何Linux系统上使用。更重要的是,书中包含数百个高质量的示例,这些示例要比其他任何一本Linux手册中的示例要实用得多。本书全面介绍了Linux:为从文件系统shell、从编辑器到工具以及从编程工具到正则表达式等方面提供了最清晰的讲解和最有用的知识。并且,当需要立即得到答案时,可以翻到本书的命令参考部分,这部分内容经过精心组织和标注,非常易于快速查找! 作者简介 Mark G.Sobell是Sobell Associates 公司的主席,该公司是一个专于UNLX/Linux 培训、技术支持和用户软件开发的咨询公司。Sobell是多本UNIX和Linux畅销书的作者,著有Prentice Hall PTR出版社出版的A Prac-tical Guide to Red Hat Linux,Second Edition一书,以及Addison-Wesley出版社出版的A Practical Guide to UNIX System,Hands-on UNIX和A Practical Guide to Solaris。Sobell具有超过25年使用UNIX和Linux的经验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值