Linux常用命令——个人笔记

系统简介

  1. 系统调用:
    • 操作系统提供给上层调用的函数
  2. 操作系统作用:
    • 承上启下:给上层应用提供接口,给下层应用提供"驱动程序"
  3. shell:
    • 命令解析器
    • 自动运行在'终端'中,用来解析'终端'中的命令
    • 到/bin下调用同名可执行文件
  4. 终端提示符格式:
    • 用户名 @ 主机名 : 当前shell 进程工作目录位置 $
      • $:普通用户
      • #: root用户 (管理员用户)

Linux目录

  • / 根目录
    • /bin、/usr/bin:存放二进制可执行文件 ==尽量少碰==
    • /dev :存放设备文件
    • /etc :存放系统配置文件
    • /home :系统默认的普通用户的家目录
      • 对于'oMaoyu'用户而言,/home/oMaoyu 是它的"家目录"(宿主目录)
    • /lib 存放系统的函数库
    • /proc : 存放进程相关东西,也就是程序运行后的数据存放在内存当中,不占用磁盘空间,占用内存存储
    • /root : 系统管理员root的家目录,存放root用户数据
    • /tmp : 保存程序工作期间的临时文件
    • /var :保存系统工作过程中,经常变化的数据
      • 日志
      • 数据库

Linux操作

Linux帮助

  • Linux下查看帮助
-- help
- man 手册:
    `9卷  了解4卷`
          1. `shell 命令帮助信息`
      2. `系统调用帮助信息`
      3. `库函数 帮助信息`
      5. `文件格式:man passwd等

热键

  • 热键 win Ctrl mac control
  1. 快补 tab
  2. 列出执行过的命令 使用!编号 执行过往命令
  3. Ctrl+p 列出上一条命令
  4. Ctrl+n 列出下一条命令
  5. Ctrl+a 将光标移至行首
  6. Ctrl+e 将光标移至行尾
  7. Ctrl+u 清空光标以前的命令

目录操作

  • 目录的进入
    • /xx/xxx/xx/
      • 起始/为根目录 中间/为目录分割 结尾/是目录提示符
    • 绝对路径
      • 从/根目录开始,依次向后访问
    • 相对路径
      • "."当前目录 cd ./go 去当前目录的go
      • ".."上一级目录 cd ../go 去上级目录的go

日常使用命令

  • cd
    • cd / 到达根目录
    • cd /xx 到对应目录
    • cd .. 回到上一级目录
    • cd(空格) 从当前目录直接回到家目录
    • cd - 回到上一次shell工作目录
    • cd ~回到目录
  • ls 获取当前目录下的文件 绿色为可执行文件
    • ls - l 获取长信息
      • 七部分内容:
        1. 文件属性:
          • 文件类型: (Linux系统,不以后缀名作为区分文件类型的依据)
            • 普通文件 - 占用磁盘存储
            • 目录文件 d 占用磁盘存储
            • 软连接(win 快捷键) l 占用磁盘存储
            • 字符设备 c 不占用磁盘存储 (伪文件)
            • 块设备 b 不占用磁盘存储 (伪文件)
            • 管道文件 p 不占用磁盘存储 (伪文件)
            • 套接字 s 不占用磁盘存储 (伪文件)
            • 未知 unknow
          • 读写执行权限
            • 以3-3-3==ugo==形式划分
              • u: 所有者 rwx 读写执行 (创建用户对该文件操作权限)
              • g:所属组 rwx 读写执行 (同组用户对该文件操作权限)
              • o:其他人 rwx 读写执行 (不同组用户对该文件操作权限)
        2. 硬链接计数:硬链接个数
        3. 文件的所有者
        4. 文件的所属组
        5. 文件大小
          • 普通文件:实际大小
          • 目录文件:占用磁盘存储大小(4k整数倍)
        6. 最后修改时间
        7. 文件名
    • ls -a 查询所有文件 包含.开头隐藏文件
    • ls -d 查看目录本身信息
      • ls -l 查询目录,默认查询目录的子内容的详细信息
    • ls -F 查看文件信息并带有对应提示符
    • ls -i 查看i结点 iNode
    • ls -h 查询文件时,带有M,G,等大小后缀
  • sudo 获取root用户管理权限
  • touch 创建空文件
  • umask 文件掩码
  • mkdir 创建空目录
    • -p 可以创建多级目录
  • redir 删除空目录 (目录必须为空
  • rm ==删除文件,目录 (不可还原,慎用)==
    • -i 表示交互方式执行
    • -f ==强制删除==
    • -r 表示递归删除,从里往外依次删除 ==用来删除目录==
  • 链接文件
    • 硬链接:
      • 创建语法: ln 文件名 硬链接文件名
      • 特性: 源文件和硬链接文件具备相通的数据信息,并且能够同步信息
      • 原理: 指同个文件的iNode,每新增一个硬链接,增加一个"目录项",硬链接计数+1
      • 删除: 每删除一个硬链接,目录项-1 当为0的时候,操作系统可以重新分配
      • ==目录文件不允许硬链接==
    • 软链接:
      • 相当于win下的快捷方式
      • 创建语法: ln - s 文件or目录名 软链接文件名
      • 强调:建议使用==绝对路径==创建软链接,可以随意移动
      • 软链接文件大:就是指向当初文件的路径地址大小
  • cp 拷贝文件 目标位置[/新文件or目录名]
    • -r 拷贝目录时指定 只拷贝内容
    • -a 拷贝目录时指定 带有原有的属性以及内容
    • -i 交互式拷贝
  • mv 移动文件or改名
    • -f 强制
    • -i 交互
    • -v 现实移动进度
  • >: 输出重定向
    • 语法: 命令>文件名 文件不存在创建 存在覆盖
    • >>:追加
  • cat 查看文件内容
  • tac 可以倒着现实文件内容
  • more less: 查看大文件
    • enter 显示一行
    • 空格 显示一屏
    • less可以使用↑↓ moer不能
    • q! Ctrl-c 终止查看
  • head tail :查看文件头部、尾部
    • head-N 文件名 查看文件前N行
    • tail-N 文件名 查看文件后N行
  • "|"管道命令:
    • 将前一个命令的输出作为后一个命令的输出
    • ls-l | more
  • pwd:打印当前shell进程工作目录位置
  • which 查询命令可执行文件所在目录位置

压缩解压

  • 压缩:
    • 语法: tar -zcvf 压缩包名.tar.gz 压缩原材料 or tar -jcvf 压缩包名.tar.bz2 压缩原材料
      • z 为.tar.gz格式
      • j为tar.bz2格式
      • c 创建
      • v 压缩过程
      • f 指定压缩名(最后一个)
  • 解压:
    • 语法: tar -zxvf 压缩包名 or tar-jxvftt
      • x 解压缩
      • -C 指定解压位置 如 tar -zxvf XXX -C
    • file 命令可以查看文件类型 当没有指定.tar.gz or .tar.bz2时可以用这个查看类型

用户管理

  • su
    • su 用户 :切换登录用户,不改变工作路径
    • su - 用户: 切换登录用户,改变工作路径,为用户的家目录
    • sudo:临时获得管理员权限 sudo 对应的命令执行结束,权限自动消失
  • 添加:sudo adduser 用户名
  • 验真:查看/etc/passwd 多出来的新用户
  • 删除:suod deluser 用户名
  • 修改当前登录用户密码:passwd
    • 新增用户默认不能使用 sudo 修改配置文件/etc/sudoers,添加 与root用户格式完全一致的配置项

用户组管理

  • 添加:soud addgroup 用户组

  • 验证:查看/etc/group

  • 删除用户组:sudo delgroup 组名

  • 修改文件所有者:sudo chown 新用户名 文件

  • 修改文件用户组:sudo chgrp 组名 文件名

  • 修改文件权限:chmod

    • 文字设定法:
      • u:所有者
      • g:所属组
      • o:其他人
      • a:所有
      • +:添加权限
      • -:删除权限
      • =:赋值权限
      • rwx:读、写、执行
    • ==数字设定法==
      • 4 2 1
      • r w x
  • 比较rwx对于目录和文件的差异

    • 文件 目录
      r 查看文件内容,cat、tac、more、less、head、tail、vi 查看目录文件内容, ls、vim 目录
      w 文件内容可以修改、删除、增加、vi、>、>> 目录内可以增加,改名,删除。rm、mv 、cp、touch、mkdir...
      x 可以执行 ./文件名 目录可以被进入,cd

系统管理

ps命令

  • 语法:ps xua | grep 关键字
    • 搜索结果应该在>=2条,表示系统运行相关进程

Kill

  • top:动态获取Linux下的进程状态,类似win任务管理器
  • kill:
    1. ps aux | grep 关键字 获取 进程id(唯一标识符)
    2. kill - 9 进程id 杀死进程
    3. kill -l 查看Linux系统支持的所有"信号"

查找和检索

find命令

  • 语法:find 目录位置 -选项 参数
    • -name 按名字搜
      • find /home/itcast/go - name "*.mp4"
      • find 目录 -name "p?"
    • -type 按类型搜
      • 类型: - d l c b p s
      • find 目录 type -
    • -size 按文件大小搜索
      • find 目录 -size +nk -size -nk (大小前面必须加上 -size)
      • k必须小写 M必须大写 G必须大写
      • 不加单位,默认以扇区 512b,0.5k
    • -maxdepth 指定搜索层级深度
      • find 目录 -maxdepth N - 结合上面搜索类型
      • 建议将 -maxdepth 放在所有参数最前端
    • -exec 给find搜索结果转交给其他语法继续执行 类似管道
      • 语法:find语句 -exec 命令 {} ;
    • xargs 解析 | :对find的搜索结果,执行某些命令
      • find 搜索语法 | xargs 命令
      • 当问及名包含特殊字符(空格)时,通过-print0 分割find 搜索结果 在xargs中,指定分割标记
  • 通配符:
    • ?:匹配任意一个字符
    • *:匹配任意多个字符(包含0个)

grep命令

  • 语法:grep -r "搜索关键字" 目录位置

vim文本编辑工具

  • 安装 sudo apt-get install vim
  • 工作模式
    • 命令模式 vi/vim 文件名 进入后一开始为命令模式
      • i、a、o、s 进入文本模式
        • ==i:插入到光标所在位置的前面==
        • a:插入到光标所在位置的后面
        • ==o:插入在光标所在行的下一行==
        • O:插入在光标所在行的上一行
        • I:插入光标所在行的行首
        • A:插入光标所在行的行尾
        • s:删除光标选中字符,修改工作模式
        • S:删除光标所在行,修改工作模式
      • : 命令模式转末行模式
      • ==ZZ保存退出命令模式==
    • 编辑模式(文本模式)
      • esc 回到命令模式
    • 末行模式
      • ==wq 保存退出==
        • w:保存
        • q:退出
        • ==q! :强制退出==
        • x:保存退出
      • esc*2回到命令模式
  • vim移动
    • gg:跳转文件的首航
    • G:跳转文件的末行
    • gg=G:自动排版
    • nG:跳转到文件的N行
    • 末行模式下:
      • n 跳转到文件的N行
      • 0 移至光标到行首
      • $移至光标到行尾
  • 复制粘贴
    • yy:复制光标所在行
    • p:粘贴到光标所在行的下一行 np粘贴n次
    • P:粘贴到光标的所在行上一行 nP粘贴n次
    • ndd:剪切从光标位置向后的N行
    • 区域剪切
      • 将光标移至待剪切的起始位置上
      • 按v 左下角出现"—可视--"提示
      • 使用hjkl移动光标,选中待剪切区域
      • 使用d剪切
      • 移动光标到粘贴位置,p向后粘,P向前粘
    • d0:剪切从光标位置到行首的内容
    • d$/D:剪切从光标位置到行尾的内容
    • dw:将光标位置于单词的首字母上,剪切单词
    • 撤销反撤销
      • u撤销
      • ctrl-r 反撤销
      • 误按Ctrl+s 按Ctrl+q退出
  • 查找替换
    • 查找:
      • 想找一个字符串,在文本中找寻
        • 命令模式下:/(在末行位置出现提示符)
        • 输入待找寻的字符串
        • 按n,从前向后找
      • 看到一个字符串,找后出现的位置
        • 将光标移至单词的任意一个字符上
        • 按*从前向后找,按#从后向前找
        • 按n代表下一个
    • 替换:末行完成
      • 语法:s/旧字符串/新字符串
      • 单行替换:
        1. 光标移至待替换行任意位置
        2. 进入末行
        3. s/旧字符串/新字符串/g /g的作用,如果出现多次旧字符串可以全部替换
      • 通篇替换:
        • %s/旧字符串/新字符串/g
      • 多行替换:
        • 起始行号,终止行号s/旧字符串/新字符串/g
  • 其他功能
    • 分屏
      • 横屏:
        • 末行 sp
        • 命令模式下 Ctrl-ww 在分屏中切换
      • 竖屏:
        • 末行 vsp
      • :wq退出当前分屏
      • :wq退出所有分屏
    • vim中使用shell命令:
      • 在vi里可以使用!后跟所有指令

SSH远程登录

  • ssh远程连接
    1. 保证网络通畅
    2. 安装ssh
    3. shh主机用户名@主机ip地址:
      1. 确认远程登录
      2. 输入对端主机密码
      3. 默认登录到用户的家目录下
      4. 就像操作自己本地主机一样
  • ssh远程传输
    • 将远端文件拷贝到本机:
      • scp -r 主机用户名@ip地址: 待拷贝文件绝对路径 本地存储路径
    • 本地文件传输远端主机:
      • scp -r 本地文件路径 主机用户名@ip地址: 远端存储绝对路径

你可能感兴趣的:(Linux常用命令——个人笔记)