Linux运维小技巧

Linux运维小技巧

1、修改命令提示符

命令提示符:prompt
[root@localhost ~]#
#管理员
$ 普通用户

显示提示符格式
[root@lb-test3 ~]# echo $PS1
[\u@\h \W]$

修改提示符格式

PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
PS1="\[\e[1;32m\][\[\e[0m\]\t \[\e[1;33m\]\u\[\e[36m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"
       \e  控制符\033           \u  当前用户 
       \h  主机名简称            \H  主机名
       \w  当前工作目录          \W  当前工作目录基名
       \t  24小时时间格式        \T  12小时时间格式
       \!  命令历史数            \#  开机后命令历史数

保存设置

可在  /etc/profile.d  目录下创建以  .sh  为结尾的文件
[14:49:28 root@lb-test3 ~]#vim /etc/profile.d/env.sh
PS1="\[\e[1;34m\][\[\e[0m\]\t \[\e[1;34m\]\u\[\e[34m\]@\h\[\e[1;34m\] \W\[\e[1;34m\]]\[\e[0m\]\\$"
2、修改登录前和登陆后的消息设置
登录前的提示消息在 /etc/issue 文件里设置
    [14:13:06 op@lb-test3 ~]$cat /etc/issue
    \S
    Kernel \r on an \m
登录后的提示消息在 /etc/motd 文件里设置
    [14:41:04 op@lb-test3 ~]$ll /etc/motd
    -rw-r--r--. 1 root root 0 Jun  7  2013 /etc/motd
3、帮助的使用
whatis命令:显示手册页说明    #刚装好的系统,没有whatis库,需要执行命令生成。
    centos6:执行makewhatis
    centos7:执行mandb
    
    [14:27:03 op@lb-test3 ~]$type whatis
    whatis is /usr/bin/whatis
    [14:35:15 op@lb-test3 ~]$whatis rm
    rm (1)               - remove files or directories
    [14:35:30 op@lb-test3 ~]$whatis lshw
    lshw (1)             - list hardware

内部命令:COMMAND --help 或 man bash
外部命令:1、COMMEAND --help 或 COMMAND -h
        2、使用手册(manual)存放在/usr/share/man 关注命令的158章节
           1章节:用户命令
           5章节:配置文件格式
           8章节:管理类命令
           man COMMAND
        3、信息页
           info COMMAND
        4、程序自身的帮助文档
           REANME
           INSTALL
           ChangeLog
           /usr/share/doc/ 目录:多数安装了的软件包的子目录,包括了这些软件的相关原理说明
        5、程序的官方文档
           官方网站:Documentation
           http://httpd.apache.org
           http://www.nginx.org
           https://mariadb.com/kb/en
           https://dev.mysql.com/doc/
           http://tomcat.apache.org
           http://www.python.org
        6、发行版的官方文档
           http://kbase.redhat.com
           http://www.redhat.com/docs
           http://access.redhat.com
           https://help.ubuntu.com/lts/serverguide/index.html
        7Google等搜索引擎
           http://tldp.org              Linux文档项目
           http://www.slideshare.net    技术类幻灯片
           http://www.google.com        搜索技巧
           Openstack filetype:pdf
           rhca site:redhat.com/docs
           https://www.bing.com
           https://www.ibm.com/developerworks/cn/linux/

查看man手册页
    man [章节] keyword
列出所有帮助
    man -a keyword
搜索man手册
    man -k keyword 列出所有匹配的页面
    使用 whatis 数据库
相当于whatis
    man -f keyword
打印man帮助文件的路径
    man –w [章节] keyword

帮助手册中的段落说明:
     NAME 名称及简要说明
     SYNOPSIS 用法格式说明
        • [] 可选内容
        • <> 必选内容
        • a|b 二选一
        • { } 分组
        • ... 同一内容可出现多次
     DESCRIPTION 详细说明
     OPTIONS 选项说明
     EXAMPLES 示例
     FILES 相关文件
     AUTHOR 作者
     COPYRIGHT 版本信息
     REPORTING BUGS bug信息
     SEE ALSO 其它帮助参考

4、命令历史,bash的基础特性之一
history命令可以用来查看命令历史用来确认在什么时间使用了什么命令也可以用它来重复执行命令。

当我们登录shell时,会读取命令历史文件中记录下的命令,在家目录的.bash_history文件中,很多黑客在入侵你的服务器后,会清除此文件的内容让你不知道他到底做了什么操作。

登录shell后,新执行的命令是记录在缓存中的,命令会在用户退出时追加到命令历史文件中。

我们可以通过配置用户家目录下的.bashrc或者/etc/profile文件以及/etc/profile.d/NAME.sh,来设置history命令的变量及显示特性。推荐写到/etc/profile.d/NAME.sh里面,对于.bashrc和/etc/profile文件,我们会在以后的系统启动过程中学习。

定制命令历史相关环境变量:
    HISTSIZE:shell进程可保留命令历史记录的条数
    HISTFILE:持久保存命令历史的文件,默认为~/.bash_history
    HISTFILESIZE:命令历史文件记录历史的条数
    HISTTIMEFORMAT=“%F %T “ 显示时间
    HISTIGNORE=“str1:str2*:… “ 忽略str1命令,str2开头的历史

控制命令历史的记录方式:
环境变量:HISTCONTROL
    ignoredups 默认,忽略重复的命令,连续且相同为“重复”
    ignorespace 忽略所有以空白开头的命令
    ignoreboth 相当于ignoredups, ignorespace的组合
    erasedups 删除重复命令

export 变量名="值“ 
    存放在 /etc/profile 或 ~/.bash_profile

重复前一个命令,有4种方法
    重复前一个命令使用上方向键,并回车执行
    按 !! 并回车执行
    输入 !-1 并回车执行
    按 Ctrl+p 并回车执行

!:0 执行前一条命令(去除参数)

Ctrl + n 显示当前历史中的下一条命令,但不执行

Ctrl + j 执行当前命令

!n 执行history命令输出对应序号n的命令

!-n 执行history历史中倒数第n个命令

!string 重复前一个以“string”开头的命令

!?string 重复前一个包含string的命令

!string:p 仅打印命令历史,而不执行

!$:p 打印输出 !$ (上一条命令的最后一个参数)的内容

!*:p 打印输出 !*(上一条命令的所有参数)的内容

^string 删除上一条命令中的第一个string

^string1^string2 将上一条命令中的第一个string1替换为string2

!:gs/string1/string2 将上一条命令中所有的string1都替换为 string2

ctrl-r来在命令历史中搜索命令
    (reverse-i-search)`’: 
Ctrl+g:从历史搜索模式退出

要重新调用前一个命令中最后一个参数
    !$ 表示
    Esc, .(点击Esc键后松开,然后点击 . 键)
    Alt+ .(按住Alt键的同时点击 . 键)


调用历史参数
    command !^ 利用上一个命令的第一个参数做cmd的参数
    command !$ 利用上一个命令的最后一个参数做cmd的参数
    command !* 利用上一个命令的全部参数做cmd的参数
    command !:n 利用上一个命令的第n个参数做cmd的参数
    command !n:^ 调用第n条命令的第一个参数
    command !n:$ 调用第n条命令的最后一个参数
    command !n:m 调用第n条命令的第m个参数
    command !n:* 调用第n条命令的所有参数
    command !string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一 个参数
    command !string:$ 从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
    command !string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n 个参数
    command !string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数
5、命令别名
显示当前shell进程所有可用的命令别名
      ~]# alias

定义别名NAME,其相当于执行命令VALUE
      ~]# alias NAME='VALUE'

在命令行中定义的别名,仅对当前shell进程有效
如果想永久有效,要定义在配置文件中
      仅对当前用户:~/.bashrc
      对所有用户有效:/etc/bashrc

编辑配置给出的新配置不会立即生效
bash进程重新读取配置文件
      source /path/to/config_file
      . /path/to/config_file

撤消别名:unalias
      unalias [-a] name [name ...]
      -a 取消所有别名

如果别名同原命令同名,如果要执行原命令,可使用
      \ALIASNAME
      “ALIASNAME”
      ‘ALIASNAME’
      command ALIASNAME
      /path/commmand
6、screen命令使用,需要先安装工具
1、在一个终端虚拟多个屏幕窗口,预防误操作关闭窗口
创建新screen窗口:
    screen
输入screen,打开一个窗口,并执行ping命令,并直接关闭窗口。
再次打开一个终端,显示所有已经打开的screen会话
    screen -ls
    [15:32:47 op@lb-test3 ~]$screen -ls
    There is a screen on:
	    22452.pts-0.lb-test3	(Detached)
    1 Socket in /var/run/screen/S-op.
恢复某screen会话
    screen -r [SESSION]
    [15:32:59 op@lb-test3 ~]$screen -r
    64 bytes from 104.193.88.123 (104.193.88.123): icmp_seq=188 ttl=47 time=155 ms
    64 bytes from 104.193.88.123 (104.193.88.123): icmp_seq=189 ttl=47 time=155 ms

2、实现互相协助,连接到同一台电脑的同一用户
A用户跟创建新screen会话
    screen –S [SESSION]
B用户加入screen会话
    screen –x [SESSION]
剥离当前screen会话
    Ctrl+a,d
退出并关闭screen会话
    exit
7、bash的快捷键
Ctrl + l    清屏,相当于clear命令
Ctrl + o    执行当前命令,并重新显示本命令
Ctrl + s    阻止屏幕输出,锁定
Ctrl + q    允许屏幕输出
Ctrl + c    终止命令
Ctrl + z    挂起命令
Ctrl + a    光标移到命令行首,相当于Home
Ctrl + e    光标移到命令行尾,相当于End
Ctrl + f    光标向右移动一个字符
Ctrl + b    光标向左移动一个字符
Alt + f     光标向右移动一个单词尾
Alt + b     光标向左移动一个单词首
Ctrl + xx   光标在命令行首和光标之间移动
Ctrl + u    从光标处删除至命令行首
Ctrl + k    从光标处删除至命令行尾
Alt + r     删除当前整行
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Ctrl + d 删除光标处的一个字符
Ctrl + h 删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + N 提示输入指定字符后,重复显示该字符N次 注意:Alt组合快捷键经常和其它软件冲突
8、不重启系统识别新添加的硬盘
lsblk命令能显示出当前系统块设备列表
    [15:01:53 op@lb-test3 ~]$lsblk
    NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sda      8:0    0  50G  0 disk 
    └─sda1   8:1    0  50G  0 part /

在我们给服务器增加了新硬盘之后,不重新启动系统,无法识别新添加的硬盘。使用以下步骤可以识别新添加的硬盘。
在/sys下可以找到如下文件:
    [15:13:59 root@lb-test3 ~]#ll /sys/class/scsi_host/host0/scan 
    --w-------. 1 root root 4096 Mar 16 15:13 /sys/class/scsi_host/host0/scan

此文件即使是root也无权限查看,但是我们可以直接操作:(如果host0不行,请查看目录下是否有其他目录)
    [15:14:32 root@lb-test3 ~]#echo '- - -' > /sys/class/scsi_host/host0/scan

然后再次使用lsblk命令查看就能看到新添加的硬盘或块设备了。
9、释放磁盘空间,删除文件的正确姿势
当生产中遇到磁盘使用快要满的时候,我们经常的操作是查找出比较大的文件,去分析是否有用,没用的就删除,通常是日志文件。
但是,有时候你会发现,删除了日志文件后,磁盘空间并没有释放,这是为什么呢?
原因是删除的文件正在被其他进程占用。停止进程后,会发现从盘空间就会释放。
但是,停止进程也不是最好的处理方法,最好的操作方法如下:
    > FILE  直接覆盖清空文件,然后删除文件即可  rm -f FILE
10、定制vim的工作特性
配置文件:永久有效
    全局:/etc/vimrc
    个人:~/.vimrc
扩展命令模式:当前vim进程有效
(1) 行号
    显示:set number,简写 set nu
    取消显示:set nonumber, 简写 set nonu
(2) 忽略字符的大小写
    启用:set ignorecase,简写 set ic
    不忽略:set noic
(3) 自动缩进
    启用:set autoindent,简写 set ai
    禁用:set noai
(4) 复制保留格式
    启用:set paste
    禁用:set nopaste
(5) 显示Tab和换行符 ^I 和$显示
    启用:set list
    禁用:set nolist
(6) 高亮搜索
    启用:set hlsearch
    禁用:set nohlsearch
(7) 语法高亮
    启用:syntax on
    禁用:syntax off
(8) 文件格式
    启用windows格式:set fileformat=dos
    启用unix格式:set fileformat=unix
    简写 set ff=dos|unix
(9) 设置文本宽度
    set textwidth=65 (vim only)
    set wrapmargin=15
(10) 设置光标所在行的标识线
    启用:set cursorline,简写 set cul
    禁用:set nocursorline
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值