linux
约 2049 字大约 7 分钟
1. linux概述
- 基于Unix的开源免费的操作系统,系统的稳定性和安全性成为程序代码运行的最佳系统环境
- Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的
- Linux系统的应用非常广泛,Android程序最底层就是运行在linux系统上的
![linux.png](https://290ff162.telegraph-image-eg9.pages.dev/file/4e7826159216b69203d4a.png)
2. linux目录结构
3. linux文件类型
- 普通文件(-)
- 套接字(s)
- 目录文件(d)
- 符号链接(l)(可以认为是window中的快捷方式)
- 设备文件(b、c)
- FIFO(p)
4. 目录操作
- 查看目录
- ls 看到该目录下的所有的目录和文件 -a 看到该目录下的所有文件和目录,包括隐藏的(一般为.开头) -l(缩写为ll)看到该目录下的所有目录和文件的详细信息
- pwd:查看当前工作目录的完整路径
- 查找目录/文件:
- find 目录 参数 查找该目录及子目录下所有名字相同的文件(可以用*)查找/root下的与test相关的目录(文件) find /root -name 'test*'
- 目录切换命令
- cd usr切换到该目录下usr目录
- cd ../切换到上一层目录
- cd /切换到系统根目录
- cd ~切换到用户主目录
- cd -切换到上一个所在目录(相当于撤销)
- cd 绝对路径
- 增加目录操作
- mkdir 目录名称 -p 父目录不存在的情况下生成父目录(parents) -v 显示命令执行过程中的详细信息
- mkdir -pv ./abc/123,在目录的目录下面建文件
- mkdir 目录/目录名称
- 修改目录\文件\压缩包的名称
- mv 目录名称 新目录名称 (目录、文件、压缩包)
- 移动目录\文件\压缩包的位置---剪切
- mv 目录名称 目录的新位置 (目录、文件、压缩包)
- mv -f 目录名称 目录的新位置 (目录、文件、压缩包)(覆盖)
- 拷贝目录、文件、压缩包
- cp -r 目录名称 目录拷贝的目标位置 -----r代表递归拷贝(将该文件下面所有的文件都拷贝了、因为目录下面可能还有其他的文件,所以要递归)拷贝文件和压缩包时不用写-r递归
- 删除目录、其他文件或压缩包(删)
- 删除空目录:rmdir
- 询问删除 rm -r 目录名、文件名
- 强制删除 rm -rf 目录名,文件名
5. 文件的操作命令
- 文件的创建:在linux中后缀没意义:touch 文件名称 ----- 空文件
- 文件内容的查看
- cat 文件名 只能显示最后一屏内容
- more 文件名 显示百分比,回车向下一行,空格向下一页,b上一页,q退出查看
- less 文件名 PgUp和PgDn向上和向下翻页,q结束查看
- tail -n 文件名 查看文件的后n行,Ctrl+C结束.对某个文件进行动态监控 tail -f 文件名 例如tomcat的日志文件,会随着程序的运行,日志会变化,可以使用tail -f catalina-2016-11-11.log 监控文件的变化
- 查找文件:find / -name httpd.conf
- 查找文件内容grep "被查找的字符串" *.log
- 修改文件的内容
- vim 文件名 进入命令模式,
- 点击键盘i/a/o进入编辑模式编辑文件
- 编辑完成后,按下Esc,退回命令模式
- 输入冒号:进入底行模式,
- 在底行模式下输入wq代表写入内容并退出(保存);输入q!代表强制退出不保存
- vim 文件→进入文件→命令模式→按i进入编辑模式→编辑文件→
- 按Esc进入底行模式→输入:wq/q!
- vim 文件名 进入命令模式,
- 删除文件:rm -rf 文件名
6. 压缩文件的操作
- 打包并压缩文件:Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。
- tar -zcvf 打包压缩后的文件名 要打包压缩的文件
- z:调用gzip压缩命令进行压缩
- c:打包文件
- v:显示运行过程
- f:指定文件名
- 示例:打包并压缩/test下的所有文件 压缩后的压缩包指定名称为xxx.tar.gz
- tar -zcvf xxx.tar.gz aaa.txt bbb.txt ccc.txt或:tar -zcvf xxx.tar.gz /test/*
- tar -zcvf 打包压缩后的文件名 要打包压缩的文件
- 解压压缩包(重点)
- tar -xvf 压缩文件 -C /解压路径 x:代表解压
- gzip / gunzip:压缩或解压.gz文件。
- zip / unzip:压缩或解压.zip文件。
7. 系统管理的命令
- 查看进程:ps -ef
- 管道命令(用来查找tomcat进程、解决端口占用)
- 命令:| 将前一个命令的输出作为本次目录的输入(对结果进一步查询)
- 查看当前系统中所有的进程中包括system字符串的进程 ps -ef | grep system
- 查看java进程 ps -ef|grep java
- top:实时显示进程动态。
- 杀死进程:kill -9 进程的pid
- df:显示磁盘空间使用情况。df -h以易读格式显示。
- du:显示目录或文件的磁盘使用情况。
- free:显示内存和交换空间的使用情况。
8. 其他命令
- 搜索命令(文档内部的字符串)
- grep 要搜索的字符串 要搜索的文件
- grep 要搜索的字符串 要搜索的文件 --color 高亮显示
- v 字符串。排除某些字符串
- 查看linux的内核版本uname -a
- 下载指定文件wget + 空格 + 参数 + 要下载文件的url路径
- 重启:reboot
- 关机:halt立刻关机
- & 表示任务在后台执行,如要在后台运行redis-server,则有 redis-server &
- && 表示前一条命令执行成功时,才执行后一条命令 ,如 echo '1‘ && echo '2'
- | 表示管道,上一条命令的输出,作为下一条命令参数,如 echo 'yes' | wc -l
- || 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo "fail"
- awk '{print $2}' 输出结果的第二个
- xargs -i filed command 将标准输入转为命令行参数,
9. 网络通信命令
- 查看当前系统的网卡信息:ifconfig
- 查看与某台机器的连接情况:ping
- 查看当前系统的端口使用:netstat -an
- 查看linux 的ip地址:ip addr
10. 权限命令chmod
- 通过ls -l命令查看某个目录下的文件或目录的权限(第一列)
- chmod 命令在 Linux 中用来改变文件或目录的访问权限。这个命令的使用可以基于符号表示法(也称为文本方法)或者八进制数表示法。
![linuxauthority.png)(https://290ff162.telegraph-image-eg9.pages.dev/file/28c5c8ac3138b1ce87f46.png) - 后面的9位分为3组,每3位置一组:属主(创建的人)的权限,与当前用户同组的用户的权限,其他用户的权限,没有就用-表示
- 符号模式:使用字母来表示权限,读(r)、写(w)、执行(x)
所有(a)- chmod u+w file:给文件所有者添加写权限。
- chmod g-r file:移除组用户的读权限。
- chmod o+x file:给其他用户添加执行权限。
- chmod u=rwx,g=rx,o=r file:设置文件所有者具有读写执行权限,组用户具有读执行权限,其他用户具有读权限。
- 数字模式:使用三位八进制数来表示权限,每位数字代表不同的用户类别(所有者、组、其他用户),数字是其各自权限值的总和:读(r)= 4、写(w)= 2、执行(x)= 1。可以是从 0(无权限)到 7(读写执行权限)的任何值
- chmod 755 file:使得文件所有者有读写执行(7)权限,组用户和其他用户有读和执行(5)权限。
- chmod 644 file:使得文件所有者有读写(6)权限,而组用户和其他用户只有读(4)权限。
11. 启动jar包
ps -ef |grep java |grep -w testbanzhu.jar|grep -v 'grep'|awk '{print $2}'| xargs -i{} kill -9 {}
sleep 1 && nohup java -server -jar testbanzhu.jar --server.port=8888 &