linux基础
pwd 查看当前目录
mkdir -pv /a/b/c/d 子递归创建目录
find / -name *.exe 查找在 / 目录下, exe为后缀的所有文件
rm -rf /a/b/c 递归强制删除 [危险]
mv a.exe b.exe 更替文件名
mv a.exe /usr 将a.exe文件移动到 /usr 目录下
which tree 查询tree安装的位置(其他指令一样,将tree换成你希望查询的应用指令即可)
VIM
- i 开始编辑模式
- esc 退回到普通模式
- 以下是普通模式的快捷操作
-
dd会删除一整行的代码 , 清除单行注释时很有效 -
/张三->查找全局所有出现张三的地方;n跳转到下一个匹配处;N跳转到上一个匹配处 -
u撤销修改 :% s/8080/8090/g把全文8080的字符替换成8090:q退出 |:q!强制退出:wq保存退出 |:wq!强制保存退出 - 用于只读文件的
** 常用文本工具 **
- echo 屏幕打印输出 或直接 重写/追加 字符到文件
- cat 合并文件或查看文件内容
- tail 显示文件内容尾部 -- 查看日志会非常方便
- grep 文本过滤工具
echo指令
`echo "good"` 会在屏幕上打印 good 字符
`echo "good" > echo.txt` 若echo.txt不存在, 则直接创建echo.txt 并将good作为内容写入;
若文件存在, 那么会将内容替换为echo.txt
`echo "good" >> echo.txt` 对文件内容追加
cat指令
`cat echo.txt` 打印输出echo.txt的内容
`cat -n echo.txt` 打印输出文件 并在行首显示行
`cat -nE echo.txt` 打印输出文件, 行尾显示空行标记(以$替代), 行首显示行号
`cat a.txt b.txt c.txt >> d.txt` 将a,b,c文件的所有内容追加到d, 若d不存在, 则自动创建
`cat > new.txt << EOF` 表示可以手动在下方中端输入内容 直到遇到EOF则停止输入 (EOF是自定义的, 可以换成ABC等任意字符, 下方案例使用的为STOP )
tail指令 - s
`tail new.txt` 打印new.txt的最后几行
`tail -n 2 new.txt` 只打印输出new.txt的最后2行
`tail -f new.txt` 对new.txt 进行实时监控(文件有任何追加变化都会打印输出) [貌似开启两个终端后,一个用于监听, 一个用于修改; 修改的终端如果使用vim在普通模式下 ,利用dd进行删除时, tail -f 不会触发监听; 并且后续的追加动作也不会被记录...]
grep 指令 - 使用正则匹配对文件中出现的字符进行查找
`grep 希望被查找的字符串 进行查找的文件名` 将结果输出在控制台
`grep -v imooc new.txt` 将不包含imooc字符串的行 输出在控制台上 -v是取反
`grep 希望被查找的字符串 进行查找的文件 > 希望被写入的文件` 将结果渲染在被写入的文件里
重要扩展
ll | grep new.txt 如果我们只使用ll ,则会出现一堆文件, 这不利于我们查找指定的文件.我们可以追加通道 '|', 将ll查询出的内容作为数据源, 给到grep ,并以 后续的设定 作为筛选条件进行查询,则会非常明朗.
ll | grep -E "log[0-9]{1,5}.txt" 表示使用正则进行匹配, 文件名以log开头 后面追加数字09,长度为15的txt文件
打包与压缩
tar zcvf tomcat.rar.gz /usr/local/tomcat 将/usr/local下的tomcat目录进行压缩, 压缩的文件名为tomcat.rar.gz
tar zxvf tomcat.rar.gz -C /usr/local/newDictory 将tomcat.rar.gz文件进行解压 , 如果不指定 -C与之后的文件路径 则解压到当前目录;反之则解压到指定目录
yum 与rpm 的关系
- rpm安装过程中 需要用户自行下载依赖
- yum通过引入软件仓库,连网线俺在rpm包以及依赖, 并依次自动安装
- yum为rpm的前端程序, 意在简化rpm安装过程
yum常用命令
- yum search 应用名 # 在仓库中查找是否存在指定应用
- yum install -y 应用名 # 自动安装应用并其所有依赖
- yum info 应用名 # 查看应用相关详细信息
- yum list # 查看所有可以安装的包
- yum list installed # 查看所有已经安装的包 (yum list installed *tree* 也可以结合通配符模糊查找)
- rpm -ql 应用名 #查看安装后输出的文件清单
- yum remove -y 应用名 # 卸载指定 应用
编译方式安装应用程序
- 若yum未提供rpm, 那么通常会需要采用编译安装的方式
- 编译安装是指从官网上下载源码后 对源码进行编译后使用
- 编译命令: make #使用对应编译器对源码编译生成可执行文件
进阶
linux系统管理命令
netStat查看网络端口号
netstat -tulpn 可以配合grep 查找 : netstat -tulpn | grep redis
注意: 上述的PID显示只是需要使用网络端口的进程, 也就意味着, 一些本地操作, 比如vim编辑文件的pid就不会显示. 此时我们就需要使用
ps -ef 进行监听
查看进程 与 杀死进程
ps -ef 查看所有进程服务 可以配合grep 查找 ps -ef | grep name/端口号
用户与用户组常用指令
一切分组由超级管理员设定
adduser dever1 创建账户dever1 - 程序员
adduser testor1 创建账户testor1 - 测试
passwd dever1 为账户dever1 设置密码
groupadd developer 新增developer分组
groupadd unitor 新增unitor分组
usermod -g dever1 developer 将 dever1 设置到developer分组
usermod -g dever1 unitor 将 unitor 设置到unitor分组
groups 查看当前账号的分组
使用chown来更改目录的所属 linux4-7课程
在新创建 dev-document 目录之后:
chown dever1:developer dev-document 将文件夹所属给予developer足
chmod 750 dev-document 使用chmod指令进行权限控制
上述设置完毕后, 其他用户便不能再访问该文件夹了.
750的含义: 4+2+1 4+1 0
防火墙
在虚拟机开启tomcat后, 虚拟机内部访问localhost:8080是成功的; 但外部windows/mac却无法通过ip+端口号的方式访问8080端口, 这是由于请求被防火墙阻挡; 以下是解决方式:
firewall-cmd --state 查看当前防火墙状态 是否开启; 若开启则为running
firewall-cmd --list-ports 查看当前防火墙运行的端口号有哪些;
firewall-cmd --zone=public --permanent --add-port=8080/tcp
--permanet 为永久更改 若不加则为临时更改
--add-port=8080/tcp 表示采用tcp协议通讯时 放行8080端口
firewall-cmd --reload 在执行完永久更改设置之后, 要重启服务
设置完毕之后, 外部就能通过ip访问虚拟机的8080端口了