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

来源:互联网 发布:广电网络与电信网络 编辑:程序博客网 时间:2024/06/06 12:47

《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
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 黄瓜价格 黄瓜炒 生吃黄瓜 黄瓜片 孕妇吃黄瓜 淹黄瓜 黄瓜英文 黄瓜妹 拌黄瓜 黄瓜 英语 鸡蛋炒黄瓜 白黄瓜 黄瓜的热量 醋溜黄瓜 黄瓜条 切黄瓜条 糖醋黄瓜条 酸辣黄瓜条 熟黄瓜籽 东北黄瓜籽 腌制黄瓜条 凉拌黄瓜条 木耳黄瓜 心形黄瓜 黄瓜条羊肉 黄瓜面膜机 野黄瓜 黄瓜子功效 酸黄瓜 夹住黄瓜不准掉厨房 黄瓜的作用与功效 黄瓜功效与作用 经常吃黄瓜有什么好处 黄瓜条的做法 泡菜黄瓜的腌制方法 黄瓜馅饺子的做法 黄瓜吃多了有什么坏处 黄瓜英语怎么读 黄瓜汤的做法大全家常 黄瓜吃了有什么好处 黄瓜敷脸有什么好处