欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux入门基础(一):Linux基本操作

程序员文章站 2022-08-28 17:19:04
命令行BASH基本操作 Shell 用户不能直接操作内核,所以用户操作通过shell传递给内核 shell分为两种 : GUI 图形界面 (linux一般是GNOME) CLI 命令行界面 (linux一般是BASH) BASH 提示符 \ root用户 $ 普通用户 命令一般由 (命令、选项、参数 ......

命令行bash基本操作

shell

用户不能直接操作内核,所以用户操作通过shell传递给内核

shell分为两种 :

  • gui 图形界面 (linux一般是gnome)

  • cli 命令行界面 (linux一般是bash)

bash

  • 提示符
    • # root用户
    • $ 普通用户
  • 命令一般由 (命令、选项、参数) 组成。

例如 :

[root@linuxabc  ~   ] #       uname -r
 用户名  主机名 工作目录 root用户  命令  参数
  • 使用tab键来自动补全命令(注意:无法自动补全参数,)
  • 按2下tab显示所有命令

历史记录

  • bash会保存你输入过的命令,可以通过↓↑ 键来查看。

  • 通过history可查看输入过的全部命令
  • !!重复前一个命令(用上也可以。还方便)
  • !字符 重复前一个以“字符”开头的命令
  • !num 按照历史记录的序号执行命令
  • !?abc重复之前包含abc的命令
  • !-n重复n歌命令之前的那个命令

  • 通过ctrl+r来在历史记录中搜素命令(reverse-i-search)“:
  • 重新调用前一个命令中的参数esc.(按完esc键之后按.)

命令行通配符

  • *匹配零个或多个
  • ?匹配任意一个字符
  • [0-9]匹配一个数字范围
  • [abc]匹配列表里任何字符
  • [λabc]匹配列表以外的字符

切换用户

  • su - 切换到root用户(切换终端)
  • sudo 使用管理员权限运行命令

bash作业管理

  • 在后台运行进程
    • 在命令后添加一个&
  • 终止某个程序
    • ctrl+c
  • 暂停某个程序
    • ctrl+z
  • 管理后台作业
    • jobs 查看当前在后台运行的作业
    • sleep 5000 停参数输入的时间 5000秒 可使用ctrl+c终止 或者 使用ctrl+z暂停
    • bg 编号 控制进程继续在后台运行
    • fg 编号 继续在前台运行

文件系统基本操作

linux文件系统结构

  • linux文件系统为一个倒转的单根树状结构
  • 文件系统的根为“/"
  • linux文件系统严格区分大小写,大小写敏感
  • 路径使用”/"分割,(windows中使用“”)

当前工作目录

  • 每一个shell或系统进程都有一个当前的工作目录:~显示当前所在目录。
  • 使用pwd命令可以显示当前的工作目录+

文件名称

  • 文件的名称大小写敏感
  • 名称最多可以使用255个字符
  • 除了正斜线外都是有效字符
  • 通过touch命令可以创建一个空白文件或者更新已有文件的时间
  • 以“."开头的文件为隐藏文件

列出目录内容 : ls

  • ls -a 显示所有文件(包括隐藏文件):隐藏文件绝大多是都是配置文件,不要去动这些文件。
  • ls -l 显示详细信息
  • ls -r 递归显示子目录结构
  • ls -ld 显示目录和链接信息

查看文件类型 : file

file 文件名

绝对路径与相对路径

  • 绝对路径:以/开头,递归每级目录直到目标的路径。不受当前所在工作目录限制
  • 相对路径:以当前目录为起点,到达目标的路径。受当前所在目录限制

cd用来切换目录:cd .切换到当前目录,cd ..切换到上一级目录,cd ~切换到家目录, cd -上一个工作目录。

文件基本操作

复制文件 : cp

cp 源文件 目标文件

-r 递归复制整个目录树

-v 显示详细信息

移动文件 : mv

mv 源文件 目标目录(加/文件名会重命名该文件)

-r 递归复制整个目录树

-v 显示详细信息

创建文件 : touch

删除文件 : rm

-i 交互式

-r 递归删除包括目录中所有内容

-f 强制删除,没有警告(谨慎)

创建目录 : mkdir

删除目录 : rmdir

删除空文件夹

删除非空文件夹加 -r -f参数

系统目录架构

  • bin 可执行文件
  • boot vmlinux内核 grub引导程序
  • dev 硬件设备,linux里所有硬件都被抽象成文件
  • etc 配置文件
  • home 家目录,保存用户信息(root除外,root单独保存)
  • lib 库文件
  • media 挂载文件,和mnt一样
  • opt 大型软件,比如数据库
  • proc 虚拟数据,实时信息
  • sbin 和bin一样,但只有root用户才能执行
  • sys 底层硬件信息
  • tmp 临时文件,定时删除
  • usr 应用软件,大型软件装opt,一般软件装usr
  • var 经常变化的信息,比如日志log

系统常用命令

日期和时间

  • date 查看和设置系统的日期和时间
    • -u 查看utc时间
    • date +%y-%m-%d 格式化显示时间
    • -s 设置时间,只有root用户才有权限更改
  • clock 显示硬件时钟时间,比如主板
  • cal 查看日历
  • uptime 查看系统运行时间

输出 , 查看

  • echo 显示输入的内容
  • cat 显示文件内容
  • more 翻页显示文件内容(只能向下翻页)
  • less 翻页显示文件内容(能上下翻页)
  • head 显示文件的头几行(默认10行)
    • -n 指定显示行数
  • tail 显示文件的末尾几行(默认10行)
    • -n 指定显示行数
    • -f 追踪显示文件更新,一般用于查看日志,持续显示新加入的内容

查看硬件信息

  • lspci 查看pci设备
    • -v 查看详细信息
  • lsusb 查看usb设备
    • -v 查看详细信息
  • lsmod 查看加载的模块(设备驱动)

关机 , 重启

  • shutdown 用来关闭 , 重启计算机
    • -h 关闭计算机
    • -r 重启计算机

例如:

#立即关机
shutdown -h now
#10分钟后关机
shutdown -h +10
#23:30关机
shutdown -h 23:30
#立即重启
shutdown -r now
  • poweroff 立即关机
  • reboot 立即重启

归档 , 压缩文件

  • zip 压缩
    • zip 压缩后的文件名.zip 要压缩的文件
  • unzip 解压缩
    • unzip 压缩文件名.zip
  • gzip 压缩
    • gzip 要压缩的文件
  • tar 用来归档文件
    • tar -cvf 归档文件包.tar 要归档的文件
    • tar -xvf 要解归档的文件包.tar
    • tar -cvzf 归档并压缩的文件包.tar.gz 要归档并压缩的目录
      • -z 将归档后的文件进行gzip压缩以减小大小

查找

  • locate 用以快速查找文件 , 文件夹

    • locate 关键字 (locate查的是文件数据库,快,但可能不及时准确.数据库默认每天更新一次,可手动更新)
  • find 用以高级查找文件 , 文件夹

    • find 查找位置 查找参数

    • 例如:

      #查找当前目录下,文件名包含'abcde'的文件
      find . -name  *abcde*
      #查找根目录下,d代表目录,即查找根目录下所有的目录
      find / -type d
      #查找根目录下,权限是777的文件
      find / -perm 777
    • find支持的常用查找参数

      • -name 名字
      • -perm 权限
      • -user 属于特定用户
      • -group 属于特定组
      • -ctime 基于修改时间
      • -type 文件类型
      • -size 基于文件大小

vim编辑器

vim是vi的增强版

vim命令启动vim编辑器

vim 文件名 (存在则打开文件,不存在则新建并打开文件)

vim的三种模式:

  • 命令模式 (默认模式,其他模式按esc进入命令模式)
    • i 进入插入模式
    • o 在当前行下面插入新行
    • dd 删除整行
    • u 撤销上一个操作
    • yy 复制当前行
    • n+yy 复制下面的n行
    • p 粘贴
    • r 替换当前字符
    • / 查找关键字
  • 插入模式 (命令模式中按 i 进入)
  • ex模式 (命令模式中按 : 进入)
    • :w 保存当前修改
    • :q 退出(不保存会提示)
    • :q! 强制退出
    • :x 保存并退出,等同于 :wq
    • :set number 显示行号
    • :! 执行系统命令并显示结果
    • :sh 切换到命令行,使用ctrl+d切换回vim

磁盘的基本概念

磁盘在linux中的表示

linux中所有的设备都被抽象成文件,保存在/dev目录下

ide设备名称为 hd[a-z] ,例如:hda,hdb

sata,scsi,sas,usb等名称为 sd[a-z],例如sda,adb

磁盘分区

不同分区用,设备名称+分区号表示,如 sda1,sda2

主流的分区机制有mbr和gpt两种

  • mbr
    • 传统分区机制,应用于绝大多数bios的pc设备
    • 支持32bit和64bit
    • 支持分区数量有限(最多4个主分区)
    • 支持不超过2tb的硬盘
  • gpt
    • 向后兼容mbr
    • 只能在支持uefi的硬件上才能使用
    • 只支持64bit
    • 支持超过2tb的硬盘
    • mac,linux都能支持gpt
mbr结构

mbr占用了磁盘的前512字节(446+4*16+2)

前446字节为引导代码

4*16字节为分区表

2字节为启动标识(55h aah可引导设备,linux启动时bios引导)

mbr分区
  • 主分区 (最多只能创建4个主分区)

  • 扩展分区 (一个扩展分区会占用一个主分区位置)

  • 逻辑分区 (linux最多支持63个ide分区和15个scsi分区)

    例如:{sda1} {sda2} {sda3} { sda4 [sda5] [sda6] [sda7] }

    sda123是主分区

    sda4是扩展分区,占用一个主分区位,但不能直接使用,需要建立逻辑分区使用

    sda567是逻辑分区