Linux学习笔记

[toc]

Linux

基本结构

Linux学习笔记_第1张图片
硬件文件.png
Linux学习笔记_第2张图片
文件类型.png

分区

  • 主分区4个
  • 拓展分区
    • 1个
    • 不能包含数据,只做标识
  • 逻辑分区

挂载点

Linux学习笔记_第3张图片
挂载与分区.png
  • /boot: 放置运行系统,至少分配300M ,一般只需要几十M
  • /home : 用户信息与文件目录,类似windows的user,FTP上传文件目录,最好多一点
  • swap : 内存大小的两倍或者相等
  • /: 根目录,啥东西都放的

安装程序

  • /root/install.log : 存储了安装在系统中的软件包以及版本信息
  • /root/install.log.syslog :存储了安装过程中留下的事件记录
  • /root/anaconda-ks.cfg : 以Kickstart配置文件的格式记录安装过程中设置的选项信息

格式化

重新写入文件系统
如同衣柜一样

格式化又称逻辑格式化,指根据用户选定的文件系统(FAT16,FAT32,NTFS,EXT2,EXT3,EXT4),在磁盘中的特定区域写入特定数据,在分区中划出一片存放文件的分配表、目录表等用于文件管理的磁盘空间

ip配置

ip配置

软件

  • Apache
    服务器发布到互联网

  • Nginx
    服务器发布到互联网
    支持更高并发环境

  • MySQL
    数据库

  • php
    世界上最好的语言


  • Xshell
    • 远程连接操作系统

  • BT宝塔

用于远程管理centOS的服务器,相当好用

Linux学习笔记_第4张图片
宝塔账号.png

centOS安装指令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

常用命令

基本格式与命令

  • 基本格式: 命令 [选项] [参数] : 选项可以一起使用 如 ls -lh
  • 文件信息: drwxr-xr-x. 引用计数 所有者 所属组 大小
    • d: 目录,-: 文件 , l 软连接文件(快捷方式)
    • r : 可读, w : 可写, x : 可执行
    • 权限次序: u所有者 , g所属组 ,o其他人
    • 777: rwxrwxrwx
    • . : acl权限
  • [root@localhost ~]#:
    • 用户名 : root
    • 主机名 : localhost
    • 当前位置 : ~ 表示家
    • 权限 : # 超级用户, $ 普通用户
  • pwd : 显示当前所在目录
  • date : 显示事件
  • clear : 清屏
  • cat : 查看文件内容
  • logout : 退出登陆(Linux最大支持256个用户)
  • echo : 输出信息
  • /dev/null : 回收站

  • /etc/inittab : 保存着系统运行系统级别,0-6这几个级别
    shutdown可以正确保存服务状态
  • shutdown -r 05:30 & : 在目标时间重启计算机,&表示新建线程执行这个命令,否则页面会卡死
    • -c : 取消关机指令
    • -r : 重启
    • -h : 关机

目录

  • /bin , /sbin , /usr/bin , /usr/sbin : 都是保存系统命令,sbin只有超级管理员才可以执行
  • usr : 系统资源保存目录
  • boot : 启动目录,保存启动数据
  • dev: 硬件信息
  • etc : 配置信息目录
  • home : 普通用户家目录
  • root : 超级用户家目录
  • lib : 函数库
  • media : 挂载光盘, mnt : 挂载移动硬盘,U盘, misc : 挂载磁带机
    • 没有硬性要求
  • procsys : 不能直接操作,保存内存的过载点,内存盘符
  • var :保存文档目录
  • touch filename : 创建文件

文件处理

ls

  • ls -l /etc/ : 显示选项范文的指定目录文件, 不填则默认当前目录
    • -a: 显示所有文件,包括隐藏文件
    • -l : 显示详细信息
    • -d : 查看目录本身属性
    • -h : 人性化显示文件大小
    • -i : 显示文件id
    • 显示文件带 . 的是隐藏文件

mkdir

  • mkdir -p [目录名] : 创建目录
    • -p : 递归创建

cd

  • cd : 切换目录
    • cd ~cd: 进入用户家目录
    • cd - : 返回上次目录
    • cd .: 进入当前目录
    • cd .. : 进入上一级目录

rm

  • rm -rf /tmp/* : 强制删除tmp目录下所有文件, 不加*表示连tmp本身也删除
    • -r : 删除目录
    • -f : 强制删除,不询问
    • 注意是可以删除根目录的!! : /

cp

  • cp -r /tmp/* /japan/ : 将tmp目录下所有文件复制到japan文件夹下
    • -r : 复制目录
    • -p : 带文件属性复制 , 文件创建时间也不变
    • -d : 若原文件为链接文件,则复制链接属性
    • -a : 相当于 -pdr

mv

  • mv abc bcd : 剪切
    • 与复制类似,不过没有选项
    • 当目标文件和源文件位于同一个目录,则等于改名

ln

  • ln -s 源文件 目标文件 : 操作与cp类似,任何修改,实时同步
    • 硬链接 : 只有文件名不一定,其他都一样
      • 相同i节点和存储block块,可以看作同一个文件
      • 通过i节点识别
      • 不能跨分区,不能针对目录使用(ex: 一个教室不能在两栋楼里面建两扇门)
    • 软连接 : 类似与windows的快捷方式,更加常用, 源文件必须要写绝对路径
      • 拥有自己的i节点和block块,,但是数据块中只保存源文件的文件名i节点bu
      • 文件权限都是777
      • 修改任意文件,另一个改变 : 因为数据指向都是一致的
      • 删除源文件就无法使用了

文件搜索

locate

  • locate testfile : 从数据库中搜索testfile,只能搜索文件名
    • 搜索速度极快!!
    • 搜索数据库,数据库位置在/var/lib/mlocate
    • updatedb : 更新数据库
    • /etc/updatedb.conf : 筛选条件配置文件
      • PRUNE_BIND_MOUNTS : YES 筛选条件生效 ,no筛选条件不生效
      • PRUNEFS : 不搜索的文件系统
      • PRUNENAMES : 不搜索的含指定关键字的文件
      • PRUNEPATHS : 不搜索的文件路径

which、whereis

搜索命令依赖于 $PATH 里面的命令

  • which : 查找系统命令的位置,同时显示别名(完整命令)
  • whereis : 查找系统命令的位置
    • -b : 只看可执行程序
    • -m : 只看帮助文档

find

  • find [搜索范围] [搜索条件] : find / -name "install.log*" 搜索根目录下 名字包含 install.log的所有文件 . 表示当前文件夹
    • 十分消耗资源,尽量小范围搜索
    • -i : 不区分大小写
    • -nouser : 搜索没有所有者的文件,(谁创建,谁就是所有者,系统文件没有所有者或U盘外带的也没有所有者)
    • -atime : 访问文件事件
    • -ctime : 改变文件属性
    • -mtime : 修改文件内容
    • -size : 文件大小
    • -inum : 根据id查找
    • -a : 逻辑与(and), -o , 逻辑或(or)
    • -exec 命令 {} \; : 搜索结果执行额外命令
    • -ok 命令 {} \; : 搜索结果执行额外命令的同时每次都会询问是否执行
    • find /etc -size +25k -a -size -50k : 查看出大小大于25k小于50k的文件
    • find /etc -size +25k -a -size -50k exec ls -lh {} \; :查看出大小大于25k小于50k的文件同时直接执行 ls -lh命令

grep

  • grep -i "size" install.log : 在install.log文件中搜索包含size字符串的行
    • -i : 忽略大小写
    • -v : 取反,即不包含

修改环境变量

  1. 在/etc/profile的最下面添加: export PATH="$PATH:/NEW_PATH"
    • 不够安全,是针对全部用户作出修改的
  2. 修改其个人用户主目录下的 .bashrc文件,在下面添加:Export PATH="$PATH:/NEW_PATH"
    • 针对用户作出修改,更加安全

帮助

  • man ls : 查看ls的帮助文档
    • -f : 查看命令具有的等级级别
    • -1 : 查看命令具体等级级别的帮助文档
    • man -f 等于 whereis
    • 帮助文档内,j下移,k上移,q退出
  • ls --help : 查看帮助命令,简略版
  • help cd : 查看cd的帮助文档
    • 只能获取shell命令

压缩与解压

  • 常见压缩格式: .zip .gz .bz2 .tar.gz .tar.bz2

zip

  • zip test.zip test : 将test文件压缩到当前目录,不一定要写后缀,便于区别而已
    • -r : 压缩文件夹
  • unzip test.zip : 解压压缩文件到当前目录下

gz

  • gzip test : 将test文件压缩成.gz,不保留源文件
    • gzip -c 源文件 > 压缩文件 : 压缩,同时保留源文件
    • gzip -r 目录 : 逐个压缩目录下的文件,目录本身不压缩
  • gzip -d 压缩文件 gunzip 压缩文件, 解压缩
    • -r : 逐个解压缩目录里面全部压缩文件

bz2

不能压缩目录

  • bzip2 源文件 : 压缩源文件
    - -k : 保留源文件
  • bzip2 -d 压缩文件 bunzip2 压缩文件 : 效果一样,解压文件

tar

将目录打包成tar文件,然后在通过gz或bz2来压缩

  • tar -cvf 打包文件 源文件
    • c : 打包
    • v : 显示过程
    • t : test,不解压,只看压缩包里面的文件
    • f : 指定打包后的文件名
    • z : 直接打包同时压缩成gz格式
    • j : 直接打包同时压缩成bz2格式
  • tar -xvf 解包文件名
    • z : 直接解压缩gz同时解包
    • j : 直接解压缩bz2同时解包
  • tar -jxvf 解包文件名 -C /tmp/ : 指定输出目录解压
  • tar -jxvf /tmp/test.tar.bz2 源文件1 源文件2 : 同时压缩多个文件到指定目录

其他

挂载

  • mount : 查看挂载信息
  • mount -a : 自动挂载,依据/etc/fstab
  • mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
  • mount -t ext4 /dev/sr0 /mnt/cdrom/ : 挂载光盘
  • umonut /dev/sr0 : 卸载挂载
  • mount -t vfat /dev/sdb1 /mnt/usb
Linux学习笔记_第5张图片
挂载特殊指令.png

文件系统

  • fdisk -l ; 查看硬盘分区

用户管理

  • w : 查看用户信息
    • USER : 用户名
    • TTY : 终端
    • FROM : 登陆IP
    • LOGIN@ : 登录时间
    • IDLE : 闲置时间
    • JCPU : 所有进程占用时间
    • PCPU : 当前进程占用时间
    • WHAT : 正在执行的命令
  • last : 查看系统所有用户登录信息与系统重启信息
    • 实际查询: /var/log/wtmp

shell

shell是命令解释器,为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序。
shell是一个编程语言,易编写,易调试,可以解释脚本语言,直接调起Linux命令。
Bash csh

基础

  • 开头必须 : #!/bin/bash
  • alias vi="vim" : 设置别名
  • vi ~/.bashrc : 写入环境变量配置文件
  • unalias : 删除别名

历史

  • history
    • -c : 清空历史命令
    • -w : 把缓存的历史命令写入历史命令保存文件 ~/.bash_history

快捷键

  • ctl+l : 清屏
  • ctl+c : 强制终止当前命令
  • ctl+a: 移动光标到行首
  • ctl+e : 移动光标到行尾
  • ctl+u : 清空当前行
  • ctl+r : 从历史命令搜索
  • ctl+z : 把命令放入后台

重定向

将系统的信息按照自己意愿输出到自定义文件中,意思上类似与CrashHandler
配合定时任务,效果更佳

  • /dev/stdin : 键盘,标准输入, 描述符 :0
  • /dev/sdtout : 显示器 ,标准正确输出 , 描述符: 1
  • /dev/sdterr : 显示器,标准错误输出,描述符:2

输出重定向

  • 命令 > 目标输出文件
    • > : 覆盖
    • >> : 追加
    • 1>1>> : 记录正常输出信息
    • 2>2>> : 记录错误输出信息
    • example: ifconfig > ~/test.log
  • 同时输出正确和错误命令信息
    • 命令 >> 文件 2>&1 : 以追加的方式,同时输出错误和正确信息在同一文件
    • 命令 &>> 文件 : 以追加的方式,同时输出错误和正确信息在同一文件
    • 命令 >> 文件1 2>> 文件2 : 以追加的方式,将正确信息和错误分析分别输出到两个文件当中

输入重定向

  • wc 选项 文件名 : 不加选项的情况下,可以随意输入,然后ctrl+d退出
    • -c : 统计字节数
    • -w : 统计单词数
    • -l : 统计行数

管道符

执行命令直接的逻辑关系

  • ; : 顺序执行,不考虑逻辑关系
  • && : 逻辑与,当前面命令执行正确,才会执行
  • || : 逻辑或,当前面命令执行错误,后面的才会执行
  • | : 管道符: 第二条命令使用第一条命令正确执行的结果来执行

通配符

目录: abc , abc1 , abc2 , abc3 , abcabc , abca

  • 通配符:根据规则执行命令

    • * : 包含字段的所有文件 ex: "abc*" : 列出所有abc
    • ? : 匹配一个字符,多一个少一个都不行 abc? : abc1 ,abc2 ,abc3 ,abca
    • [] : 匹配中括号内的一个字符 ex: "[*[cd]]" 以c或者d结尾的文件
    • ^ : 逻辑非
  • 字符

Linux学习笔记_第6张图片
Linux字符.png

你可能感兴趣的:(Linux学习笔记)