1.linux操作系统的目录结构
- . 一个点代表当前目录
- .. 两个点代表上级目录
- bin 这个目录包含用户级的命令,例如常用的可执行文件ls、cat和mv等。
- boot linux内核文件
- dev 这个目录包含了所有的设备文件,如磁盘、打印机等。
- etc 这个目录包含系统管理和配置文件,如网络配置文件、服务启动脚本等。
- home 用户的家目录,通常为每个用户分配一个以用户名命名的子目录。
- lib 这个目录包含了系统的库文件,是所有程序运行所必需的。
- lib64 存放的是64位的
- dedia 这个目录用于挂载可移除媒体设备,如CD、DVD、U盘等。
- mnt 这个目录是为了兼容老的系统,用于用户手动挂载文件系统。
- opt 可以安装额外的软件例如mysql
- proc 这个目录是一个虚拟的文件系统,包含了系统的内核信息和进程信息。
- root 超级用户(root)的家目录。
- run 启动运行以来的临时目录
- sbin 这个目录保存的是系统管理员使用的可执行文件,如系统引导时需要的文件。
- srv 这个目录包含了服务启动后需要访问的数据。
- sys 这个目录包含了系统的硬件信息。
- tmp 这个目录用于存储临时文件。
- usr 这个目录包含所有用户级的软件和文件,例如用户程序、库文件等。
- var 这个目录存储的是在系统运行后发生变化的文件,如日志文件、邮件文件等。
2.linux操作系统的常用命令
- ls 查看文件夹 ls -a 展示隐藏内容 ls -l 列表形式展示内容 ls -lh 更加人性化的展示文件大小
- cd / 切换工作目录
- pwd 展示当前工作目录
- mkdir Directory 创建文件夹 mkdir -p Directory/home/data 创建多个层级的目录
- touch test.txt 创建文件
- cat test.txt 查看文件全部内容
- more test.txt 查看文件可翻页查看 空格进行翻页 q 退出
- cp test.txt /home/app 把test.txt复制到/home/app目录 cp -r app /home/index 移动文件夹
- mv test.txt /home/app 把test.txt移动到/home/app目录 mv test app 移动文件夹
- mv test1.txt test2.txt 如果test2.txt不存在相当于把test1.txt改名为test2.txt
- rm text.txt 删除文件 rm -r app 删除文件夹 rm -rf 强制删除 rm -r test* 删除以test开头的文件夹
- which cd 查找cd命令所在位置/usr/bin/cd which pwd 查找pwd命令所在位置/usr/bin/pwd
- find 起始路径 -name "被查找的文件名" find /home -name 1.txt 在home目录查找1.txt find /home -name "test*" 在home目录查找以test开头的文件
- find 起始路径 -size +|-n[K M G] +代表大于 - 代表小于 查找小于10kb的文件 find / -size -10k 查找大于100MB的文件 find / -size + 100M 查找大于GB的文件 find / -size + 1G
- grep -n "index" 2.txt 查找2.txt文件内容中是否有index的字符
- wc [-c -m -l -w] 文件路径 -c 统计bytes数量 -m 统计字符数量 -l 统计行数 -w 统计单词数
- wc 2.txt 3 3 27 2.txt 第一个代表行数 第二个代表单词的数量 第三个代表字节数
- cat 2.txt | grep "app" |管道符 过滤app 查看app字符 | grep 过滤
- ls -l /usr/bin | wc -l 查看有多少行
- echo hello world 输出 hello world echo "pwd" 带"" 输出当前路径 同pwd
- 重定向符 > 将左侧的结果覆盖写入右侧的文件中 >> 将左侧的结果追加到右侧的文件中
- echo "hello world" > test.txt 覆盖写入 echo "6666" >> test.txt 追加写入
- tail [-f -num] 查看文件尾部的内容 -f 表示持续追踪 -num代表尾部多少行
- tail -5 test.txt查看尾部5行数据 tail -f test.txt 持续查看内容
- vim test.txt 编辑test.txt文件
- vim进入编辑后 j键-向下移动光标 k键-向上移动光标 h键-向左移动光标 l键-向右移动光标
- / 进入搜索模式 /66 搜索66字符 n键-向下搜索 N键-向下搜索
- dd 删除光标所在的行 3dd 删除当前3行
- yy 复制当前行 p 粘贴复制内容
- u 撤销修改 ctrl + r 反向撤销修改
- gg跳到首页 G跳到尾页
- ctrl + f 向下翻一页 ctrl + b 返回上一页
- esc :wq 保存并退出 :q 退出 :q! 强制退出 :w 保存 :set nu 显示行号 :set paste 设置粘贴模式
- chmod [-R] 权限 文件或文件夹 -R 对文件夹内全部应用同样的操作 chmod -R 751 test
- ctrl + c 强制停止
- ctrl + d 退出或登出
- history 查看历史输入的命令
- yum命令 RPM包软件管理器,用于自动化安装linux软件 yum用于centos
- yum [-y] [install remove search] -y自动确认 install安装 remove 卸载 search 搜索
- yum install wget 安装wget
- yum remove 卸载wget
- yum search wget 搜索wget
- apt命令与yum一致 用于ubuntu apt install wget apt remove wget apt search wget
- systemctl命令 linux系统很多第三方软件均支持systemctl命令启动、停止、开启自启
- systemctl [start stop status enable disable] 服务名称
- start启动 stop关闭 status查看状态 enable开启开机自启 disable关闭开启自启
- date时间日期
- ifconfig 查看ip地址
- hostname查看主机名称
- ping ip或者主机 检查指定网络服务是否可以联通状态
- wget命令 是非交互式的文件下载器,可以在命令行内下载网络文件
- wget [-b] url -b是在后台下载,会将日志写到当前工作目录的wget-log文件中 url下载链接
- curl命令可以发送http网络请求,可用于下载文件,获取信息
- curl [-o] url -o 用于下载文件,当url是下载链接时,可以使用此选项保存文件 url 地址
- lsof -i:端口号 查看端口号
- netstat -anp | grep 端口号
- ps [-e -f] 查看进程 -e显示全部进程 -f 以完全格式化形式展示全部信息
- ps -ef | grep tail 管道过滤查看进程
- pstree 树状形式展示进程
- kill [-9] 进程id -9强制执行
- w 查看用户
- pkill -9 -t pst/1 杀死终端用户
- sudo kill -9 $(sudo fuser -n tcp 10190 ) 用于杀死在特定端口(10190)上运行的所有进程
- df - h 查看磁盘空间信息
- du -h /home 查看目录文件大小
- tar -zcvf test.tar.gz 1.txt 将1.txt压缩到成test.tar.gz文件
- zip -r test.zip 1.txt 将1.txt压缩成test.zip文件
- tar -zxcf test.tar.gz 将test.tar.gz文件解压
- unzip test.zip 将test.zip解压到当前目录
- nohup [命令] & 让后台工作离开终端时,也能正常在后台工作
3.用户与权限
4.IP和主机
域名解析:
- windows系统中:C:\Windows\System32\drivers\etc\hosts 文件
- linux系统中:/etc/hosts 文件
5.端口
linux系统支持65535个端口,分3类进行使用:
- 公认端口:1~1023,通常用于一些系统内置或者知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口,非特殊需要不要占用这个范围的端口。
- 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序或者服务
- 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络连接时,用于临时使用。
查看端口占用情况可以使用:
- nmap命令 安装nmpa: yum install nmap
语法:
- nmap 被查看的ip地址
查看端口号占用
- netstat命令 安装netstat: yum install net-tools
语法:
- netstat -anp | grep 端口号
6.主机状态与监控
命令:top
第一行:
- top - 19:09:52 当前系统时间
- up 2 days, 1:33 运行时间
- 1 user 1个用户登录
- load average: 0.03, 0.05, 0.05 load:1、5、15分钟的负载
第二行:
- Tasks: 88 total 88个进程
- 1 running 1个进程运行
- 86 sleeping 86个进程睡眠
- 0 stopped 0个停止进程
- 1 zombie 1个僵尸进程
第三行:
- %Cpu(s): 3.3 us 用户CPU使用率
- 3.3 sy 系统CPU使用率
- 0.0 ni 高优先级进程占用CPU时间百分比
- 93.3 id 空闲CPU率
- 0.0 wa IO等待CPU占用率
- 0.0 hi CPU硬件中断率
- 0.0 si CPU软件中断率
- 0.0 st 强制等待占用率
第四、五行:
- KiB Mem:物理内存,total:总量,free:空闲,used使用,buff/cache:buff和cache占用
- KiB Swap:虚拟内存,total:总量,free:空闲,used使用,buff/cache:buff和cache占用
内容:
- PID 进程id
- USER 进程所属用户
- PR 进程优先级,越小越高
- NI 负值表示高优先级,正值表示低优先级
- VIRT 进程使用虚拟内存
- RES 进程使用物理内存
- SHR 进程使用共享内存
- S 进程状态(S休眠 R运行 Z 僵死状态 N 负数优先级 I 空闲状态)
- %CPU 进程占用CPU率
- %MEM 进程占用内存率
- TIME+ 进程使用CPU时间总计,单位10毫秒
- COMMAND 进程的命令或名称或程序文件路径
查看磁盘信息:
- df -h
7.压缩与解压
压缩格式:市面上有非常多的压缩格式
- zip格式:linux、windows、mac
- rar格式:windows常用
- tar格式:linux、mac
- gzip格式:linux、mac
tar命令:
- .tar归档文件,.tar的文件并没有太多的体积减少,仅仅是简单的封装
- .gz使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积
语法:tar [-c -v -x -f -z -C]
- -c 创建压缩文件
- -v 显示压缩、解压过程
- -x 解压
- -f 要创建的文件,或要解压的文件
- -z gizp模式
- -C 选择解压的路径
压缩:
- tar -cvf test.tar 1.txt 将1.txt压缩到成test.tar文件
- tar -zcvf test.tar.gz 1.txt 将1.txt压缩到成test.tar.gz文件
解压:
- tar -xvf test.tar 将test.tar文件解压
- tar -zxcf test.tar.gz 将test.tar.gz文件解压
- tar -xvf test.tar -C /home/app 将test.tar文件解压到/home/app目录
- tar -zxcf test.tar.gz -C /home/app 将test.tar.gz文件解压/home/app目录
zip命令:
- 可以使用zip命令,压缩文件为zip压缩包
语法:
- zip [-r] 参数1 参数2 -r被用于包含文件夹的时候
压缩:
- zip -r test.zip 1.txt 将1.txt压缩成test.zip文件
unzip命令:
- 使用unzip命令,可以方便的解压zip压缩包
语法:
- unzip [-d] 参数 -d 指定要解压去的路径
解压:
- unzip test.zip 将test.zip解压到当前目录
- unzip test.zip -d /home/app,将test.zip解压到指定文件夹内/home/app