目前是一步一步记录用到了的Linux指令
基本运算符
| 管道,将符号前的指令输出作为符号后的指令输入
> 将正常输出重定向(比如指令打印内容输出到文件)
>> 将正常输出追加重定向(区别与上面的覆盖,这个指令对于已经存在的文件会追加内容)
& 后台执行
&& 前面的指令执行完毕才执行后面的指令
|| 前面的指令执行出错才执行后面的指令
基本指令集
ls 显示目录下的文件目录或者列出文件信息
ll 属于ls,列出目录下的所有文件信息
cd 进入目录
pwd 显示当前目录的绝对路径
mkdir 创建目录
rm 删除目录(慎)
mv 移动目录
打包安装一个文件
使用apt进行包管理
即文件的打包安装,对于不同的Linux系统使用的工具有所不同,此处使用ubuntu系统,利用apt工具进行打包。
Linux ubuntu系统的包后缀名为.deb。
Linux有一个远程包数据库,可以很方便地进行包管理,相关指令如下(sudo语句省略):
apt-get update 更新包列表
apt search [name] 搜索某个包
apt show [name] 查看某包信息
dpkg -s [name] 查看包的安装状态
apt-get install [name] 安装包
apt remove [name] 删除包
apt-get upgrade [name] 更新包
vm文本编辑器
vm是Linux系统上常见的文本编辑,常用指令和操作如下:
vi [file] 启用编辑器编辑/预览文件(确保有写权限)
按键i 切换到输入模式
按键: 切换到底线命令模式
按键Esc 切换到命令模式
在输入模式下,可以进行正常的文本编辑
在底线命令中,w键为保存,q键为退出
文件查看
tail [options] [file] 查看文件尾部,默认查看10行
-f[num] num代表行数,能实时监控文件 ctrl+c退出监控
-n[num] 显示后面n行
cat 输出文件内容
cat dev/null > etc/test.txt 将test文件清空
tac 反向输出文件内容
more 同样是输出文件内容,但是分了页,分别用空格和b进行前后翻页,
Enter 向下n行(默认1)
+[num] 从第num行开始显示
-[num] 每页显示num个
+[pattern] 从匹配pattern字符开始显示
less 不同于more,more和cat都是先加载整个文件,less是逐页加载,并且可以随意移动(向前),不像more只能翻页和向后移动
命令行:利用上下移动行 ctrl+f/b翻页
/pattern 向后查找关键字 ?pattern 向前查找关键字
n 下一处关键字 shift+n 上一处关键字
示例
1.利用grep查找行并且分页查看
grep "ERROR" demo.log | more
2. 将文件清空
cat dev/null > etc/test.txt
在Linux上使用ftp
1.在系统上安装依赖包
sudo apt-get update
sudo apt-get install vsftpd
2.修改配置文件
进入/etc目录后,使用编辑器修改vsftpd.conf文件:
sudo vi vsftpd.conf
修改#write_enable=YES行,将注释‘#’去掉(此为全局设定读写权限,想要加以限制需要详细设定配置),编辑并保存。
3.添加ftp目录和用户
此处选择/home/uftp作为目录
创建目录并为其添加权限
sudo chmod 777 -R /home/uftp 777为最高的权限 可按需调整,详细操作在下面
sudo useradd -d /home/uftp -s /bin/bash [username] 当然 可以使用默认用户
4.重启服务
sudo service vsftpd restart
权限处理
基本权限说明
文件权限一共有三种:r、w、x,分别代表可读、可写、可执行,使用ll后能查看出目录下的文件对应的信息,其中包含文件的权限,如图:
第一列中就包含了文件的权限信息,d代表是目录,然后依次是所有者(root)、所属组用户的权限和其他人的权限,三个字母为一个单位,无权限会用-占位,分别是rwx(最高权限)、r-x(读和可执行)、r-x,权限对于目录和文件意义是不同的,在此不予详述。
修改文件/目录权限
rwx分别可用421来表示,这样任意的权限就可以使用0-7的数字表示,对应三种用户的权限就是三个数字,因此可用利用下面的数字修改文件/目录权限
chmod [权限数字组] [参数] [文件/目录]
比较重要的参数为-R,表示递归修改权限,例如递归目录下的usr文件为最高权限即为:
chmod 777 -R usr
也可以单独为文件和用户组加减权限:
chmod [用户组][+/-][权限组] [参数] [文件/目录]
其中,用户组为u(root)、g(group)、o(others)、a(all),也可以组合,+/-表示加减权限,权限组为r、w、x和其组合,例如为组成员和其他用户添加写权限,指令为:
chmod go+w usr
nohup与&语句
nohup指不挂断的运行命令,当关闭SSH连接或者命令行窗口时,如果不使用该命令,当下操作会被挂断。
而&指后台运行某命令,将输出内容写入指定的文件中,但是退出时命令一样会被挂断,与nohup并非同个意思,但二者经常一起使用。
使用范例:
sudo nohup java -jar xxx.jar >/home/uftp/log.out 2>/home/uftp/error.out &
其中>/home/uftp/log.out为命令结果标准输出路径,2>/home/uftp/error.out为错误输出路径,二者可输出到一个文件中,即2>&1。
监测和释放端口占用
使用如下指令监测端口:
lsof -i:80
上为查看80端口的占用,显示如下:
通过kill指令强制结束指定pid为12500的进程:
kill -9 12500
文本处理工具
grep
用于匹配文本的工具,默认情况下会输出匹配的文本行,基本指令:
grep [options] '待匹配字符串' [file]
一些常见的参数:
-c 字符串的匹配次数,不再显示匹配内容
-n 输出行号
-v 显示不包含匹配文本的所有行
匹配文本是支持正则的,可以直接用正则匹配。
使用范例:
grep -c "java" ./restart.sh
为查找当前目录下restart.sh中所含"java"字符串的个数。
grep -nv "java" ./r*
为查找当前目录下r开头文件中不含"java"字符串的行并打印行号
awk
awk更倾向于“分割”,以行为单位截取我们想要的字符串,基本指令:
awk [options] 'script' [file]
注意这里的指令中只能使用单引号,awk会分别读取每一行的内容并按规则进行截取。、
一些常见的参数:
-F x 按指定的字符串或是正则分割(x为所指定的字符串)x为[xx,xx]时将按先后顺序整体分割
-v expression 设定变量,expression为表达式 ,例如v=1
内建变量(print后筛选待打印内容):
$x 打印第x段字符序列,x=0时输出完整字符串
FS 指定输出内容的分隔符(默认空格)
NF 分割后行内的字符串数目
NR 行号
使用范例:
awk '{print $1,$4,NF}' restart.sh
这行脚本输出了文件中每一行分割后的第1和第4串字符串和分割后的总段数,按照默认规则(空格或者TAB)进行分割,注意如果$1,$4之间没有","分割(空格没用),两者将会连续输出无分隔符
awk -F: -va=2 -vb=q '{print $1,$2+a,$2b}' restart.sh
这行脚本输出了文件中每一行以“:”符号分割后的第一段,第二段+2和第二段拼装"q"字符,例如,原文为:
x:2:hello:Thk 分割后为:
x 4 2q
在script中也不只是print的使用,我们还可以使用一些运算符过滤行,例如:
awk -F: '$1=="x" && $2>1 {print $1}' restart.sh
表示只会打印出结果中符合$1=="x" && $2>1条件的行的内容,(其中的数字运算若是涉及字符串默认true)
一些示例语句
安装和配置Tomcat
将官网上的安装包移动到目录
解压包 :
tar -xf apache-tomcat-8.5.35.tar.gz
迁移目录:
sudo mv apache-tomcat-8.5.35 /opt/tomcat8
进入bin目录中:
cd /opt/tomcat8/bin && ls
查看java的安装目录:
whereis java
编辑startup.sh:
sudo vi startup.sh
在最后添加:
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JRE_HOME=${JAVA_HOME}/jre
export PATH=${JAVA_HOME}/bin:${JRE_HOME}:$PATH
export CLASSPATH=.:${JRE_HOME}/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export TOMCAT_HOME=/opt/tomcat8
同样地,编辑shutdown.sh:
sudo vi startup.sh
这样一来,就可以在目录下启动tomcat,并通过默认接口8080访问tomcat
sudo ./startup.sh
性能监控相关
ps 显示前台应用
ps aux 单独使用显示前后台所有应用并能显示较全的信息
-A 显示所有进程 -l显示进程的详细信息