linux常用命令:
1.tab 接在第一个字后面,为补全命令;接在第二个字以后,为补齐文件
2.ls -al /usr 列出该目录下的所有文件和属性(包括隐藏文件)
ll 列出详细信息
3.* 通配符
4.man bash bash说明文件 man: Manual
help命令用于显示shell内部的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。
5.查询指令是否为内建命令:type
6.跳脱 enter 仅跳脱紧跟着的下一个字符
7.快捷键删除
8.变量的取用:echo $PATH 或者$PATH 使用man echo可以查看echo的其他用处
PATH为变量
9.查看是否安装jdk:rpm -qa|grep -i java
rpm管理命令,查询所有安装的软件 red package manager 红帽软件包管理工具
-qa 查找全部rpm包
| 管道符号,前一个命令的输出(即结果)作为下个命令的输入
grep查找字符串
-i表示忽略大小写
Rpm和yum区别:rpm只能安装已经下载本机上的rpm包,而yum可以在线安装rpm
rpm redhat package manager 红帽子打包管理器
10. 通过yum –y list java* 在线查找java相关列表
yum的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package ...]是操作的对象。
11. 退出编辑 :q 或者 :wq 或者 :q! :wq表示先保存后退出 :q!表示不保存直接退出
12.在多个编辑文件之间切换 ctrl+w
12. rpm i -> 安装
v -> 确认
h -> 进度条
e -> 卸载
q -> 查询
a -> 所有
l -> 显示rpm中的文件.
13.查看tomcat是否启动 #ps –ef|grep tomcat
ps查看与进程相关的pid号
-e显示当前运行的每一个进程的信息
-f显示一个完整的列表
14.中止进程 kill -9 pid -9表示强行中止
15.设置开机自启动 systemctl enable XX
停止开机自启动 systemctl disable XX
服务启停/查看状态 systemctl [status|restart|start|stop] XX
查看是否加入到开机自启动里面systemctl --list-units type=service
16.从指定的url下载文件,支持断点续传 wget (选项)(参数)
wget默认会以最后一个符合/的后面的字符来命令,可以使用wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080来指定下载文件名
17.tar 利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
tar
-zxvf zookeeper-3.3.6.tar.gz -C /home/
x : 从 tar 包中把文件提取出来
z : 表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压
v : 显示详细信息
f xxx.tar.gz : 指定被处理的文件是
xxx.tar.gz
18.mkdir –p /xx 表示在没有上层目录的情况下会一并创建上层目录
19.chmod 用来变更文件或目录的权限
Change mode
chmod +x ./test.sh
20. ls -l
21.pwd 查看”当前工作目录“的完整路径
Print Working Directory
22. nohup 命令 nohup = No HangUP
用途:不挂断地运行命令。
23.tail –f log 实时查看刷新日志 f:fresh
tail 2 log 查看最后两条日志记录
Ctrl +c 退出查看日志等
Vim查看某个文件
:q! 强制退出
:wq保存并退出
esc退出编辑
i进入编辑模式
Tab键按一次可以补全文件名而不用手敲
ps -f |grep fee 查看是否某程序是否在运行及pid号 process status进程状态
24.chown
change owner
rmdir:Remove Directory(删除目录) mv move移动
cat: concatenate连锁 cat file1
file2>>file3把文件1和文件2的内容联合起来放到file3中
cp: Copy file
25.脚本 jenkinsdeploy.sh
#!/bin/sh #解释此脚本的shell的路径,如果没有声明,则脚本将在默认的shell中执行
pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'` # |表示管道; print $2:打印每行分割出来的第二个字段; awk一行一行的读取指定的文件,以空格作为分隔符
if [ -n "$pid" ];then #-n表示不为null
kill -9 $pid
fi
cd /home/apache-tomcat-8.0.44/webapps
if [ -f $1.war ];then #-f如果 $1.war为文件,则为真
rm -rf $1.war #-r删除当前目录下的所有文件 -f忽略不存在的文件
fi
mv /home/jenkinstemp/$2.war $1.war
service tomcatd start
26.
/ 表示根目
cd .. 回到上一级目录
cd / 回到根目录
cd . 回到当前目录
27.find
mv
cp
shell脚本
- 简单脚本
- 第一行#!/bin/bash 程序语言解释器,声明语言类型
- I/O重定向
- ;用来分隔同一行里的多条命令,shell回一次执行这些命令。
菜鸟教程
- 引用变量时加{}会更加清晰,变量和赋值之间只有=没有空格
- 创建文件并编辑 vi test.sh
- 执行shell脚本
====》首先cd到相应目录,然后chmod +x test.sh使脚本具有执行权限,再运行./test.sh
====》直接运行/bin/sh test.sh
- 字符串 建议用双引号,双引号里面可以有变量/转义字符/双引号
- Shell传递参数 $0为执行的文件名 $1为第一个参数
- 只支持一维数组,引用时为${array_name[index]}
- 基本运算符 expr和awk,注意表达式要用单引号引起来。表达式和运算符之间要有空格,如2 + 2.
条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]。
乘号(*)前边必须加反斜杠()才能实现乘法运算,如val=`expr $a * $b`
- 文件测试运算符:
if [ -w $file ]
then
echo "文件可写"
else
echo "文件不可写"
fi
- 转义字符 ” 对”进行转义 换行 c不换行 -e开启换行
echo ""It is a test""
输出结果
"It is a test"
15.read 命令表示从标准输入中读取一行,并将接收到的标准输入存入变量name中
read name
$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数
- 输出重定向: command > file 如果要将新内容添加在文件末尾,请使用>>操作符
输入重定向: command < file
需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)
- 16. 如何给linux设置ssh远程控制 http://www.linuxidc.com/Linux/2016-03/129204.htm
- 输入 rpm -qa |grep ssh 查找当前系统是否已经安装ssh
- 反单引号`的作用,反单引号``之内的内容会被先执行 如cd `uname -r`会进入内核目录
- $ 关于本shell的pid echo $$ 即可查询该shell的pid
- ? 关于上个执行指令的回传值 当我们执行完一个指令后,这个指令会回传一个执行后的代码。一般来说,如果成功的执行,则会回传0。如果执行出错,则会回传错误代码,一般以非0值表示。 echo $?
- 使用read参数[-p]后,允许在[-p]后面跟一字符串,在字符串后面跟n个shell变量。n个shell变量用来接收从shell界面输入的字符串
[-p]用法:read –p “string” var1 var2…varn echo ${ var1} ${ var2} - echo -e加上后起到转义作用,比如 代表回车
- date –help可以获取某个命令的帮助文档(注意是两个连着的短横线 - -)
- 查看虚拟机连接的网络ip: 输入ifconfig即可。
- Touch主要用来修改文件时间戳,创建一个不存在的文件
- /etc/init.d目录包含linux系统中各种服务的启停脚本。服务启动:service **(脚本) start
- chmod 777 -R BBB/ AAA/ 这个命令把其下的目录及子目录下所有文件都改了。
- netstat –nlp|grep 8080 查看端口是否被占用(同时可看到占用该端口的pid号)
- rm –rf xxx 删除其下的目录及子目录下所有文件
- nohup ./gas.sh & 后台启动gas.sh文件(其输出记录在nohup.out文件中)
- cat nohup.out 查看log记录
- ps -ef 查询所有在运行的进程
- ps -ef|grep java* 查询含有java的所有进程
- systemctl status firewalld 查看防火墙状态
- 一步杀死进程的方式:
<1>$ pgrep firefox | xargs kill -s 9 pgrep专门用于查询进程pid, xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。
<2>$ ps -ef | grep firefox | awk '{print $2}' | xargs kill -9 其中awk '{print $2}' 的作用就是打印(print)出第二列的内容,第二列正好为pid号
<3>$kill -s 9 `pgrep firefox`
<4>$pkill -9 firefox pkill=pgrep+kill
36.iptable
37.cat 可以查看文件,会将一整个文件完整的显示出来;
more 文件名:系统在显示满一个屏幕时暂停,使用空格可以翻页,使用Q键可以退出。
Less 文件名:系统同样在显示满一个屏幕时暂停,但是可以使用上下键卷屏,当结束时只需在:后输入Q即可。
38.
grep –n :显示匹配的行和行号
39.cut在一行信息中取出部分想要的,grep则是从很多行中取出某一行或几行分析
二、shell script脚本
1.系统服务services启动的接口在/etc/init.d/*目录下。(centos6.x)
2.启动mysql的脚本会自动以空密码进行登录。
3.运行脚本:常用方法为==进入脚本所在的目录,运行./XXX.sh(.表示当前目录)
4.exit可以让程序进行中断,并回传一个数值给系统
5.$?会显示上一个命令的执行情况,系统默认0表示执行成功,非0表示失败
6.read –p “please input:” var1 var2 (记得提示信息和变量之间一定要有空格)
read表示从标准输入中读取一行,-p表示“提示语句,present”,var1 var2表示变量
【read后面的变量var可以只有一个,也可以有多个,这时如果输入多个数据,则第一个数据给第一个变量,第二个数据给第二个变量,如果输入数据个数过多,则最后所有的值都给最后一个变量】
7.${} 可以用来取变量值
8. filename=${fileuser:-"filename"}
一般前面会有一个read -p "请输入一个参数:" fileuser(变量参数)
即:当提示你输入参数,但是你直接Enter,这时候fileuser是为空的。
上面那句意:fileuser 变量未设定或者为空,filename取"-"后面的值;否则filename=$fileuser
9.$(date +%Y%m%d)是执行里面的代码得到的结果,${}是参数
date=${date –d”1 days ago” +%Y%m%d}可以获取前一天的日期
10. var=$((运算内容)) 运算内容可以为加减乘除取余等
11.echo –e 后面的起到转义作用
【注:使用sh或./执行脚本时,系统会给予一支新的bash子程序来执行指令,而当子程序执行完成后,子程序中的变量不会回传到父程序中】
12. test -f aaa.sh && echo "exist" ||echo "not exist" 测试文件是否存在,结果会输出存在还是不存在
13.判断符号:[] ,注意中括号的每个组件都需要空格符来间隔 [ ${HOME} ]
(比较常用在if……then……中)
14.shell默认变数(内建变量):${0}或$0表示脚本名称;${1}或$1表示脚本的第一个参数(共支持0-9共10个参数)
Shift可以移动参数,后面也可以接数字。代表拿掉最前面的几个参数的意思
Sh aaa.sh a b c d e f:表示运行aaa.sh时同时给予aaa.sh这几个参数(a b c d e f)
15.条件判断式
Declare 可以用来定义一个参数
16.function:函数的设定要在程序的前面,这样才能调用
function printIt(){
程序段
}
调用时:使用 printit; 即可
Function也有内建变量,只是它的内建变量是从调用时函数名后面紧跟的参数来获取的
17. while do done, until do done(不定循环)
18.for do done(固定循环)
19. $( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的。
$(date -d "last sunday" +%Y-%m-%d)
$(( )) 是用来作整数运算的。
$(( $a + $b * $c))
20.
三、正则表达式