shell:
1、$# 和 $*之类的特殊变量

特殊变量列表

变量 含义
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数就是$1
$# 传递给脚本或函数的参数个数
$* 传递给脚本或函数的所有参数
$@ 传递给脚本或函数的所有参数。被双引号(“”)包含时,与$*稍有不同
$? 上一个命令的退出状态,或函数的返回值
$$ 当前shell进程id。对于shell脚本,就是这些脚本所在的进程id

$*和$@的区别

不被双引号“”包含时,都以“$1” "$2" ... "$n" 输出所有参数

被双引号“”包含时,“$*" 会将所有的参数作为一个整体,以“$1 $2 ... $n” 的形式输出;“$@” 以“$1” "$2" ... "$n" 的形式输出所有参数。

$?

退出状态是一个数字,一般情况下,大部分命令执行成功返回0,失败返回-1.

2、用命令查看文本的第十行

查看开头n行:

head -n 10 filename  #查看开头10行

查看末尾n行:

tail -n 10 filename  #查看末尾10行

查看文本文件行数:

wc -l filename  #查看文件行数

查看特定(几)行:

sed -n '45,50p' filename  #显示第45行到50行

查看特定几列:

awk -F "[:]" 'print{ $3}' filename  #通过-F 指定分隔符

取出文本文件的第100行到200行:

sed -n '100,200p' inputfile

awk 'NR>=100&&NR<=200{print}' inputfile

head -200 inputfile | tail -100

3、搜索定位文件

查找文本内容所在文件位置:

grep "*m*" ./m* | less  #| less表示随意阅读

查找时不区分大小写:

grep -i "字符串" 文件名

查找匹配的行数:

grep -c "字符串" 文件名

查找不匹配的行:

grep -v "字符串" 文件名

从根目录开始查找所有扩展名为.log 的文本文件,并找出包含“ERROR” 的行:

find / -type f -name "*.log" | xargs grep "ERROR"

4、vi操作

vi命令模式:
光标定位:
0 行首
$ 行位
/字符串 查找字符串。n下一个,N上一个,查找样式变为?字符串
撤销和重复:
u 撤销上一个动作
. 重复上一个动作 如删除动作后,按. 重复删除动作
复制粘贴删除(命令模式不显示):
nyy 复制光标所在的向下n行内容
p 光标所在位置粘贴复制的内容
ndd 删除光标所在的向下n行
shift + g 到为本末尾
x 删除光标后一个位置字符
dd 删除光标所在整行
复制粘贴删除(命令模式显示):
:set number 显示行号
:set nonu 取消显示行号
:1,3y 复制第一行到第三行
:1,3d 删除第一行到第三行
:1,3s/str/str_new/g 将第一行到第三行的str替换为str_new,如果一行有多个str,都替换
:s/str/str_new/g 将当前行所有的str替换为str_new
:1,3s/str/str_new/ 将第一行到第三行的str替换为str_new,如果一行有多个str,只替换第一个
:1,3g/str/d 删除第一行到第三行包含str的行

5、命令执行脚本

./helloworld.sh  #切换到shell脚本所在目录执行脚本

/data/shell/hello.sh  #以绝对路径执行脚本

bash hello.sh  或  sh hello.sh  #切换到shell脚本目录,执行脚本【该方式,是bash调用sh脚本,故不用事先给予sh执行权限】

.hello.sh 或 source hello.sh  #在当前shell环境中执行shell脚本【前三种执行shell是在当前shell[称为父shell],开启一个子shell环境,shell脚本执行完,子shell环境随即关闭,回到父shell环境】这种执行,是在当前shell中执行。

补充

shell远程执行:

ssh user@remoteNode "cd /home ; ls"  #前提条件:配置ssh免密登录,命令间用分号隔开

执行sql脚本:

shell脚本调用sql脚本

#!/bin/csh

source /opt/info

dbaccess bpedb /opt/info/del.sql

6、指令将 ? 转为大写

tr 'a-z' 'A-Z' <filename  #将filename文件中所有的小写字母转换为大写字母【tr 命令对标准输入的字符进行替换,压缩和删除。如tr -d '0-9' 表示删除数字】

6、将标准输出和标准错误输出定向到log.txt

2>&1 log.out  【标准输入 standard input 0,正确输出 standard output 1,错误输出 error output 2】

find / home -name lost* >allresult 2>&1  #首先将标准错误输出定向到标准输出,再将标准输出定向到allresult文件。

或 find /home -name lost* >& allresuilt

分析:find /home -name lost* > allresult 1>&2

find /home -name lost* 2> allresult 1>&2

find /home -name lost* 2>&1 > allresult

补充:

重定向操作符 -

(cd /source/directory && tar cf - .) | (cd /dest/directory && tar xvfp -)  #把/source/directory目录下所有文件通过压缩解压缩,移动到/dest/directory这个目录下

n<&- 表示将n号输入关闭

<&- 表示关闭标准输入(键盘)

n>&- 表示将n号输出关闭

>&- 表示将标准输出关闭

7.cpu占用率过高问题排查

top 查看居高的进程,找到其pid

ps -mp pid -o THREAD,tid,time 查看居高pid进程下的线程情况,找到cpu居高的线程 tid

printf “%x\n” tid  转换tid为16进制

jstack pid |grep tid -A 30 查看堆栈信息,定位错误

linux面试集的更多相关文章

  1. linux面试题目--1

    Linux面试题目 填空题1. 在Linux系统中,以 (文件)方式访问设备 .2. Linux内核引导时,从文件/etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用i节 ...

  2. Linux企业集群用商用硬件和免费软件构建高可用集群PDF

    Linux企业集群:用商用硬件和免费软件构建高可用集群 目录: 译者序致谢前言绪论第一部分 集群资源 第1章 启动服务 第2章 处理数据包 第3章 编译内容 第二部分 高可用性 第4章 使用rsync ...

  3. Linux面试基础题-2

    继续我们这面试系列,在这篇文章里我们给出了10个问题.这些问题或者是在以后的文章中出现的问题不一定在面试中会被问到.然而通过这些文章我们呈现出的是一个交互的学习平台,这必将会对你有很大的帮助. 自本系 ...

  4. Linux服务器集群系统(一)--转

    引用地址:http://www.linuxvirtualserver.org/zh/lvs1.html LVS项目介绍 章文嵩 (wensong@linux-vs.org)2002 年 3 月 本文介 ...

  5. Linux服务器集群系统(一)(转)

    add by zhj:虽然是2002年的文章,但读来还是收益良多.在 章文嵩:谈LVS及阿里开源背后的精彩故事 中LVS发起人及主要贡献者谈了LVS的开发过程及阿里开源的一些故事 原文:http:// ...

  6. 【原创】Linux服务器集群通过SSH无密码登录

    SSH 无密码授权访问slave集群机器 1. 安装SSH,所有集群机器,都要安装SSH环境介绍:  Master : CNT06BIG01 192.168.3.61 SLAVE 1: CNT06BI ...

  7. Linux服务器集群系统(LVS)

    from:http://www.linuxvirtualserver.org/zh/lvs1.html#5 本文介绍了Linux服务器集群系统--LVS(Linux Virtual Server)项目 ...

  8. 浅析Linux服务器集群系统技术

    浅析Linux服务器集群系统技术 目录 前言 常用的服务器集群 集群系统的优势 LVS集群的通用体系结构 为什么使用层次的体系结构 为什么是共享存储 可伸缩Web服务 前言 总结两篇技术文章,努力学习 ...

  9. Gravitational Teleport 开源的通过ssh && kubernetes api 管理linux 服务器集群的网关

    Gravitational Teleport 是一个开源的通过ssh && kubernetes api 管理linux 服务器集群的网关 支持以下功能: 基于证书的身份认证 ssh ...

随机推荐

  1. Java类的初始化顺序 (静态变量、静态初始化块、变量、初始...

    很有意思的一篇文章 1.没有继承 静态变量->静态初始化块->变量->变量初始化块->构造方法 2.有继承的情况 父类静态变量->父类静态初始化块->子类静态变量- ...

  2. Mysql慢查询 [第二篇]

    一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdu ...

  3. BOM DOM区别 来源

    DOM 是为了操作文档出现的 API,document 是其的一个对象:BOM 是为了操作浏览器出现的 API,window 是其的一个对象. BOM是浏览器对象模型,DOM是文档对象模型,前者是对浏 ...

  4. 零基础逆向工程33_Win32_07_创建线程

    1 什么是线程(Threads)? 什么是多线程? 怎么在windows中观察多线程? 线程可以简单理解为主程序为解决一个问题而选择的其中一条路线. 同理,多线程就是同时选择不同的路线来解决此问题. ...

  5. SharePoint 2010 技术参数(整理)

    今天整理一些 SharePoint 2010 的技术参数,其内容都来自 SharePoint-Sandbox 网站. 有些参数值是硬性的,比如列表单条记录的尺寸:而有些是为了使用和性能考虑的推荐值. ...

  6. Springboot中SpringMvc拦截器配置与应用(实战)

    一.什么是拦截器,及其作用 拦截器(Interceptor): 用于在某个方法被访问之前进行拦截,然后在方法执行之前或之后加入某些操作,其实就是AOP的一种实现策略.它通过动态拦截Action调用的对 ...

  7. java:Java环境配置

    1.安装JDK开发环境 下载网站:http://www.oracle.com/ 2.配置环境变量: 对于Java程序开发而言,主要会使用JDK的两个命令:javac.exe.java.exe.路径:C ...

  8. Properties的使用以及配置文件值的获取

    一.项目的部署如下,现在要获取SystemGlobals.properties中的值 二.代码如下: package com.util; import java.io.IOException; imp ...

  9. vim复制粘贴到系统剪贴板

    一般来讲,如果你没有在.vimrc中配置过相关的信息的话,可以考虑下面的方法.系统环境 Ubuntu 14.04 LTS. 安装与使用 首先需要安装一个vim-gtk 命令$sudo apt-get ...

  10. 出现Permission denied的解决办法

    出处 https://blog.csdn.net/qq_16525279/article/details/80245350 提示 Permission denied 解决的办法: $ sudo chm ...