Linux学习笔记

linux的文件系统

  • /bin bin是Binary的缩写。这个目录存放着最经常使用的命令,例如cp、mv、ls等
  • /boot 这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。
  • /dev dev是Device(设备)的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
  • /etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录
  • /home 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  • /lib 这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  • /opt opt 是 optional(可选) 的缩写,这是给主机额外软件安装目录 eg: cd /opt/lampp
  • /proc proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息,这个目录的内容不在硬盘上而是在内存里. eg: 查看cpu信息 则可以使用 less /proc/cpuinfo
  • /root 该目录为系统管理员,也称作超级权限者的用家目录
  • /sbin s 就是 Super User 的意思,是 Superuser Binaries (超级用户root的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
  • /tmp tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的
  • /usr usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录
    • /usr/local 这是提供给一般用户的/usr目录,在这里安装一般的应用软件
    • /usr/lib 存放一些常用的动态链接共享库和静态档案库
    • /usr/include 用来存放Linux下开发和编译应用程序所需要的头文件
    • /usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序,/sbin, /usr/sbin 则是给 root 使用的指令
    • /usr/bin 系统用户使用的应用程序(指令), /bin, /usr/bin 是给系统用户使用的指令(除root外的通用户)
    • /usr/src 内核源代码默认的放置目录
  • /var var 是 variable(变量) 的缩写,存放经常改动的数据文件,包括各种日志文件

vi/vim 文本编辑器(重要)

vi是Linux/Unix下最常用的文本编辑器,vim是vi的升级版本,安装可以使用yum install vim -y,用法 vim xxx.txt ,如果没有这个文件,则先创建一个。如打开已有文件,则可以通过方向键上下左右移动光标查看内容。

默认为命令模式,可以对文件进行修改操作,常见操作为

  • 显示文本行号 :set nu, 不显示行号 :set nonu
  • 光标定位
    • 方向键
    • 方向左 h 或者 backspace
    • 方向右 l 或者 space
    • 方向上 k
    • 方向下 j
    • 上一行行首 -
    • 本行行首 0
    • 本行行末 $
    • 指定行 nG 【n为行数】
    • 向上移动几行 n-
    • 向下移动几行 n+
    • 向后半屏 ctrl + d
    • 向后全屏 ctrl + f
    • 向前半屏 ctrl + u
    • 向前全屏 ctrl + b
    • 文件末尾 G
    • 文件首 gg
  • 搜索
    • /+关键字 从光标开始向下搜索关键字,n 从上向下看结果,N 从下向上看结果
    • ?+关键字 从光标开始向上搜索关键字,n 从下向上看结果,N 从上向下看结果
  • 替换 [old 表示原来数据 new 表示修改后的数据]
    • :s/old/new 替换当前行首次出现
    • :s/old/new/g 替换当前行全部
    • :x,y s/old/new/g 替换指定范围行的首次, 从x行到y行
    • :x,y s/old/new/g 替换指定范围行全部, 从x行到y行
    • :%s/old/new/g 修改全部
  • 复制
    • 单行
      + 单行复制 yy 粘贴为p
      + 多行复制 nyya,by, 复制n行或者复制a,b行
    • 行内复制
      + yw
      + nyw
      + y^
      + y$
  • 粘贴 p | P
  • 删除
    • 字符
      + x 光标所在的位置
      + X 光标前
      + nx 删n个,从光标所在位置开始
      + nX 删n个,光标前的字符
    • 行内删除
      + D 当行,光标及光标后的内容
      + d$ 当行,光标及光标后的内容
      + d0 | d^ 当行,光标前的内容
    • 整行
      + dd 单行删除
      + ndd n行删除
      + x,yd 多行删除(x,y行) 需要按enter键
  • 撤销
    • u 撤销最近的一次操作
    • U 撤销所有操作
  • 退出
    • 直接退出 q | 强制退出 q!
    • 保存退出 wq | 强制保存退出 wq!

编辑模式

  • 进入编辑模式 i I a A o O
  • 退出编辑模式 ESC

帮助

  • help 命令使用摘要及参数列表, eg: xxx --h / xxx --help
  • man 命令说明文件,比help更加详细的文档 eg: man xxx

文件管理

  • pwd 显示当前路径
  • ls 列举指定目录下的子目录和文件
    • 参数
      • -a,-all 不隐藏任何以“.” 字符开始的项目
      • -l 用列表(长格式)的方式列出文件信息, 简写为ll
      • -t 以时间排序,时间由近及远
      • -r,--reverse 同时列出所有子目录层
      • -S 按大小排序,单位是字节
      • -h 易读方式,根据文件大小,转换为M、K
  • eg: drwxr-xr-x 3 root root 52 Feb 16 13:21 dockertest
    • 其中第一个字段的第一个字符是文件类型
      • - 表示普通文件
      • d 代表目录
      • l 代表连接文件
      • b 代表设备文件
    • 第一个字段剩下的 9 个字符是模式(这三组分别表示文件所属的用户权限、文件所属的组权限以及其他用户的权限),其实就是权限位(access permission bits)。3 个一组,每一组 rwx 表示“读(read)”“写(write)”“执行(execute)”。如果是字母,就说明有这个权限;如果是横线,就是没有这个权限。
    • 第二个字段是硬链接(hard link)数目,这个比较复杂
    • 第三个字段是所属用户
    • 第四个字段是所属组
    • 第五个字段是文件的大小(字节)
    • 第六个字段是文件被修改的日期
    • 第七个字段是最后是文件/文件夹名
  • cd change directory,就是切换目录
    • cd / 进入根目录
    • cd .. 返回上级目录
    • cd ../xx 退到上级目录的xx目录
    • cd - 回到上一次操作的目录
  • cp 复制文件夹/文件
    • 参数
      • -a 尽可能的将文件的属性、权限的内容都照原状复制
      • -b 如果目的文件存在,就创造一个备份
      • -r 若源中有子目录,则将子目录下的文件及目录亦全部复制至目的目录
      • -i 若目的地有重复的文件,询问是否覆盖
      • -f 若目的地有重复的文件,则覆盖原有文件
      • -L 复制符号链接,自动修改链接以保证链接有效
  • mv 移到文件/文件夹、改名
    • 如果目标目录存在,则是复制到该目录下,如果目标目录不存在,则是改名
    • 参数
      • -i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆 盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可 以避免误覆盖文件。
      • -f 禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
  • rm 删除文件/文件夹
    • 参数
      • -r 删除目录及子目录,目录下如果有子目录及文件也会被删除
      • -f 不询问直接删除
      • -i 删除前逐一询问确认
    • 例子
      • rm -rf test/* 删除test目录下的所有内容
      • rm -rf test/ 删除test目录
      • rm -rf test 删除test目录
  • mkdir 创建文件夹 eg: mkdir -p /mysql/
  • rmdir 用来删除一个空文件夹, rmdir不能删除非空目录
    • 参数
      • -p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除。
  • touch 创建一个空文件
  • cat 查看小文件内容,否则内存撑爆了
    • 参数
      • -n 由第一行开始对所有输出的行数编号
      • -b-n 相似,只不过对于空白行不编号
  • more 是分页后只能往后翻页,翻到最后一页自动结束返回命令行, eg: more [参数] 文件
  • less less 是往前往后都能翻页。 eg:less [参数] 文件
  • head 显示文件的开头至标准输出中
  • tail 动态查看文件内容,查看文件末尾内容。示例:查看passwd的后2行:tail -2 /etc/passwd.
  • du 查看文件和目录的磁盘使用空间
    • du -sh
    • 参数
      • -s或--summarize 仅显示总计,只列出最后加总的值
      • -h或--human-readable 以K,M,G为单位,提高信息的 可读性
      • -m或--megabytes 以MB为单位输出
  • lsof 列出当前系统打开文件的工具
    • 参数
      • lsof filename 显示打开指定文件的所有进程
      • lsof -i :80 查询指定端口打开的文件
      • lsof -p pid 查询指定的pid打开的文件
  • chmod 用来给文件或者文件赋权限
    • 两种方式: 一种为数字 r=4 w=2 x=1,另一种为文本
    • 示例:chmod 755 test.txt
  • wc 统计指定文件中的行数、字节数、字数,并将统计结果显示输出
    • 参数
      • -c 统计字节数。
      • -l 统计行数。
      • -m 统计字符数。这个标志不能与 -c 标志一起使用。
      • -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
    • 示例: cat /etc/passwd | wc -l
  • clear 清屏
  • history 查看历史命令
    • echo $HISTSIZE 命令记录个数
    • history -c 清除历史命令

搜索

  • grep 显示文件中的匹配行
    • 参数
      • -c 显示匹配行数
      • -e 字符串:匹配特殊字符串,如-开头
      • -E 使用正则表达式
      • -i 忽略大小写
      • -v 输出不匹配行
      • -w 匹配指定字符串
      • 可以和别的命令通过 | 管道符连接使用
    • 示例
      • ps -ef|grep httpd |grep -v grep
      • grep ren /etc/passwd
      • grep -c ren /etc/passwd
      • grep -Ev '#|^$' nginx.conf.default > nginx.conf 去掉空行、注释
  • find 查找目录下的文件
    • 用法 find 目标目录 搜索参数 操作参数
    • 参数
      • -name 文件名:可以跟通配符
      • -amin 分钟数:文件最后访问时间为指定分钟之前,负数表示之后
      • -atime 天数:文件最后访问时间为指定天数之前,负数表示之后
      • -cmin 分钟数:文件最后修改时间为指定分钟之前,负数表示之后
      • -ctime 天数:文件最后修改时间为指定天数之前,负数表示之后
      • -user 用户名:属于用户的目录和文件
      • -type 文件类型
    • 示例
      • find / -name lampp

定位文件位置

  • whereis eg: whereis mysql
  • which eg: which mysql / which lrzsz
  • 区别: whereis是搜索程序名,如果是一个普通的文件是找不到的,which命令只查找环境变量中path里面的路径。

进程

  • ps 显示瞬间进程 (process) 的动态,使用权限是所有使用者
    • 参数
      • ps -aux
      • ps -ef
      • 可以用管道符连接其他命令使用
    • 示例: ps -ef|grep tomcat
  • kill 用来终止指定的进程
    • 参数
      • -9 强制终止进程
    • 示例
      • kill -9 pid
      • ps -ef | grep java|grep -v grep | awk '{print $2}' | xargs kill -9 杀死所有java进程
  • nohup命令 &
    • nohup 当前交互命令行退出的时候,程序还要在
    • & 表示后台运行,程序不能霸占交互命令行
    • 示例: nohup java -jar qzcsbj.jar &

定时任务

  • crontab 使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户
  • cat /etc/crontab
  • 格式 crontab [ -u user ] 文件crontab [ -u user ] { -l | -r | -e } 不加-u参数的话,默认是当前用户
  • 参数
    • -e 执行文字编辑器来设定时程表,内定的文字编辑器是vi
    • -r 删除目前的时程表
    • -l 列出目前的时程表
  • 查看日志 tail -f /var/log/cron
  • crontab 文件的格式为" M H D m d cmd " 其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天)。cmd表示要运行的程序,*代表每分钟都执行。
  • 示例
    • * * * * * sh /opt/lampp/test.sh 表示每分钟执行一次test.sh这个脚本, */5 * * * * sh /opt/lampp/test.sh 表示每5分钟执行一次test.sh这个脚本。
    • 小练习:1.crontab -e 2.* * * * * echo "hell" >> /root/a.txt3.查看日志 tail -f /var/log/cron 4. tail -f a.txt

归档压缩

  • zip/unzip 压缩zip包和解压缩以.zip结尾压缩文件
    -zip 命令格式: zip [选项] 压缩文件名 需要压缩的文档列表
    • 参数
      • -r 递归压缩,将指定目录下的所有文件以及子目录全部压缩
      • -x "文件列表" 压缩时排除文件列表中指定的文件
      • -m 将文件加入压缩文件压缩后,删除原始文件,即把文件移到压缩文件中
    • unzip
      • 参数
        • -x "文件列表" 解压文件,但不包含文件列表中指定的文件
        • -t 测试压缩文件有无损坏,并不解压
        • -v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小、文件名和压缩比等,并不解压
        • -n 解压时不覆盖已经存在的文件
        • -o 解压时覆盖已经存在的文件,并且不要求用户确认
        • -d 目录名 把压缩文件解压到指定目录下
  • tar 文件打包
    • 参数
      • -c 创建新文档
      • -x 解压缩归档文件
      • -f 文件名:使用归档文件
      • -z 使用gzip解压缩
      • -v 详细输出模式
    • 示例
      • 压缩 : tar -zcvf 1.tar.gz 1.txt 2.txt 3.txt,命令可以将1.txt,2.txt,3.txt 打包并压缩成1.tar.gz
      • 解压缩: tar zxvf 1.tar.gz 可以解压

软件安装 https://blog.csdn.net/qq_24394093/article/details/89401180

  • rpm 安装包
    • 参数
      • -i 安装 , -U 更新(升级),-e 卸载, -v 显示安装信息, -h 显示安装进度
    • 使用
      • 安装 rpm -ivh xxx.rpm 如果提示有依赖关系,我们忽略依赖关系强制安装
      • 查询 rpm -qa|grep xxx
      • 卸载 rpm -e xxx --nodeps 如果卸载的时候提示有软件依赖它,卸载时需要加上 --nodeps
  • yum yum install -y xxx
  • 源码安装:略
  • 二进制安装:略

系统服务

  • 防火墙 : 查看防火墙状态:systemctl status firewalld关闭防火墙:systemctl stop firewalld开机不启动防火墙:systemctl disable firewalld查看防火墙是否开机启动:systemctl is-enabled firewalld
  • wget 下载文件,-o 是下载并以不同的文件名保存 ,用法:wget -o 文件名 下载地址, -b 是后台下载,用法:wget -b 下载地址
  • curl 命令行工具 http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

常见环境问题排查

  • 服务无法启动
    • 查看端口占用 lsof -i:80, netstat -lntp |grep 80
  • 服务无法访问
    • 查看服务 ps -ef |grep xxx , jps -ml [java]
    • ping服务器 ping ip
    • telnet端口:telnet 虚拟机ip 80
    • 检查防火墙:查看防火墙状态:systemctl status firewalld关闭防火墙:systemctl stop firewalld开机不启动防火墙:systemctl disable firewalld查看防火墙是否开机启动:systemctl is-enabled firewalld
    • selinux https://www.cnblogs.com/kelelipeng/p/10371593.html
posted @ 2021-10-17 22:19  我的野心呢??  阅读(75)  评论(0)    收藏  举报