Linux系统操作,请别再问:说几个常用的Linux命令吧

文章目录

      • 帮助命令
      • 系统目录
      • 用户系统
      • 常用命令
      • vim 命令
      • 文件特性

此篇来自平时积累,加上最近在《极客时间》上系统地学习后整理出的关于Linux系统操作。


帮助命令

man 帮助(manual缩写)。

man 也是一条命令,分为9章,可以使用man命令获取man的帮助。

举例:

  • man ls 获取ls命令的帮助
  • man man 获取man命令的帮助,有很多重名的
  • man 7 man 获取man命令第7章的命令
  • man -a passwd 不清楚是passwd 是配置、文件还是命令等,可以用-a列出所有情况
  • man -1 passwd 即获取passwd命令的帮助

help 帮助

shell 命令解释器自带的命令成为内部命令,其他的就是外部命令

如何区分内部、外部命令:使用 type
举例:

type cd -> cd is a shell builtin cd是内部命令
type ls -> ls is aliased to ls --color=auto ls则是外部命令

使用 help 帮助:

  • 内部命令使用 help ** 比如 help cd
  • 外部命令使用 ** --help 比如 ls --help

info 命令

info帮助比help更详细,作为help的补充。但info都是英文的。


系统目录

  1. cd / : 进入根目录
  2. /root root 用户的家目录
  3. /home/username 普通用户的家目录
  4. 每个不同的Linux版本的根目录有可能有细微的差别
  5. Linux中,把所有的东西都当成文件处理(鼠标. 键盘)
  6. bin : Binary 二进制的可执行文件,通常都是系统自带的文件
  7. dev : Device 设备,所有系统硬件中的设备都会被抽象成一个文件存到dev中
  8. lost+found:异常关机用来存储错误信息文件
  9. opt:Options 用来存放全局用户自己的安装的软件
  10. run:系统运行必须的文件
  11. srv:服务启动后需要的文件
  12. usr:存放与用户直接相关的文件信息
  13. boot:启动配置文件
  14. etc : 配置文件,系统中所需要的配置文件
  15. lib lib64:库,系统中内置的文件,自己安装的各种连接文件
  16. media:媒体,存放系统外部的链接设备,如光盘. 硬盘. U盘
  17. proc:系统文件
  18. sbin:Super Binary 系统管理员特用的二进制文件
  19. sys:系统文件
  20. var:存放日志文件(运行日志,软件日志等)
  21. cdrom:挂载入口
  22. home:家,每个用户都会在home下存在一个文件夹,这个文件夹的名称与用户一致
  23. mnt:挂载点,临时安装的挂载
  24. root:超级管理员
  25. snap:全新软件包的管理方式
  26. tmp:临时文件
  27. vmlinuz:软连接到boot下的一个vmlinuz-…文件

命令前的结构xxx@MMM:aaa[ $# ]

  1. xxx:代表当前登陆的用户
  2. MMM:代表当前登陆的主机名称
  3. aaa:当前所处的路径
  4. $: 代表普通用户
  5. #: 代表超级管理员
  6. ~ : 代表普通用户的主目录 /home/用户名

用户系统

  1. 普通用户:我们自己创建的用户,平时尽量使用普通用户。

  2. 超级管理员:无敌,可以操作系统中所有的东西

    普通用户是可以使用超级管理员的命令的:
    使用 sudo 指令
    sudo !! : 使用超级管理员执行上一次指令

  3. 添加用户:useradd xxx

    useradd -m username 创建用户的时候可以手动使用-m参数,表示创建用户自动创建家目录

  4. 检查用户是否存在:id xxx

  5. 查看当前用户下的配置文件:ls -a /home/xxx

  6. 删除用户: userdel xxx

    userdel -r xxx 删除用户时连带删除用户的家目录

  7. 切换到超级管理员:su
    切换之后需要输入管理员密码

  8. 设置管理员密码:
    sudo passwd root

  9. passwd : 默认修改当前用户的密码
    注:默认只能修改当前用户的密码
    使用 sudo 可以修改任何用户的密码
    如果当前为 root 用户,可以修改任何用户的密码

  10. passwd 用法
    passwd [选项][用户]
    如果选项及用户都不写,修改当前用户的密码
    如果选项为 -d,代表删除密码
    在Linux系统下,如果用户没有密码,系统不能进入。
    注:用户必须设置密码

  11. 退出超级管理员:
    su 用户名 或 exit


常用命令

  • lshw: 获取硬件信息

  • lscpu: 获取CPU信息

  • lsusb: 获取USB接口信息

  • uname:系统相关信息
    uname -a

  • arch: 查看机器的体系结构

  • df: 查看磁盘空间 df -h

  • date: 查看日期和时间

  • hostname: 显示主机名

  • ifconfig: 显示网络接口参数 有的电脑可能为 ipconfig

  • poweroff: 关机

  • shutdown -h now

  • systemctl poweroff

  • shutdown -h +5: 五分钟后关机

  • shutdown -c : 取消定时关机

  • reboot: 重启

  • shutdown -r now

  • systemctl reboot

  • pwd:查看当前工作目录

  • ls:查看当前目录下的文件

    • ls [选项,选项…] 参数 …
  • 常用参数:

    • -l 长格式显示文件
    • -a 显示隐藏文件
    • -r 逆序显示
    • -t 按照时间顺序显示
    • -R 递归显示
  • 文件格式:

    1. 一个点(.),在Linux中,代表当前目录,如果文件名称前面有一个点,代表该文件为隐藏文件。
    2. 两个点(…):代表上一级目录
  • vi .bash_history : .bash_history 查找之前写过的命令
    退出vi格式:按esc 输入 :q

  • 上下按键可以查找之前写过命令

  • cd 切换当前目录( 前提:该目录必须存在)

    • cd .. 打开上一级目录
  • help cd cd的帮助手册

    • cd /path/to/... 绝对路径
    • cd ./path/to/... 相对路径
    • cd ../path/to/... 相对路径
  • mkdir 建立目录

    • 常用参数

    • -p 建立多级目录

      root@zyp-virtual-machine:/home/zyp/tmp# mkdir -p a/b
      root@zyp-virtual-machine:/home/zyp/tmp# tree
      .
      └── a
          └── b
      
      2 directories, 0 files
      
      • mkdir aa
        mkdir bb cc dd
  • rmdir 只能删除空目录

  • rm 删除文件或目录

    • -r 删除目录(包括目录下的所有文件)
  • -f 删除文件,不提示

    • rm -rf 目录 递归遍历并强制删除 (少用)
      加了选项的删除,谨慎考虑 rm -rf */
  • cp 复制文件或目录

  • cp [选项] 文件路径

    • cp [选项] 文件… 路径

    • 常用参数

      • -r 复制目录

        cp 文件名 目录名
        cp -r 目录名 目录名
        
      • -p 保留用户、权限、时间等文件属性

      • -a 等同于 -dpR

  • mv 移动文件

    • mv [选项] 源文件 目标文件
    • mv [选项] 源文件 目录
  • 通配符

    • shell 内建的符号
    • 用于操作多个相似(简单规律)的文件
    • 常用通配符
      • * 匹配任何字符串
      • ? 匹配1个字符串
      • [xyz] 匹配xyz任意一个字符
      • [a-z] 匹配一个范围a-z
      • [!xyz][^xyz] 不匹配
  • tar 打包解包 压缩解压缩

    • c 打包

    • x 解包

    • f 指定操作类型为文件

    • v 显示进度

    • 打包解包

      打包只将目录(Linux中一切皆文件)转换成文件,这是磁带备份的概念,沿用到现代系统,了解即可。

      tar -cvf 打包后的文件名字 源文件: 打包文件;

      tar -xvf 文件名称(tar类型): 解包文件;

      tar -xvf 文件名称(tar类型) -C 新的目录 : 将打包的文件解包到指定路径下;

    • 压缩解压缩
      Linux下的压缩文件后缀有:.gz .bz

      tar -zcvf 压缩后的文件名字 源文件 : 压缩文件;

      tar -zxvf 压缩的文件名字(gz类型) : 解压缩文件,例如 tar -zxvf aa.tar

      tar -zxvf 文件名称(gz类型) -C 新的目录: 将压缩的文件解压到指定路径下;

  • tree 树形结构展示目录关系
    首次使用时,可能需要安装 sudo apt install tree

  • find 查找文件
    find [选项] 参数
    -name : 按名称查找,可以指定匹配范围
    支持条件查找 -o

  • ln 建立链接文件

    • windows下:直接存储文件信息
      存储文件的快捷方式(引用,链接)

    • Linux下:
      存储文件名称
      文件名字对应的一个文件节点
      真正存储的文件信息

    • 工作中尽量使用软连接

      硬链接:同一个文件不同的名称
      ln abc.txt learn.txt

      软连接:
      ln -s abc.txt stu.txt

      软连接不容易产生垃圾,硬链接直接创建一个新的文件,软连接只是创建了一个快捷方式,如果原文件删除,顶多就是一个无用的链接,数据量不大。

      删除硬链接时,删除原来文件只是删除原文件的名字,这时还有硬链接指向,所以文件其实还是存在的。
      删除软连接时,删除原文件,也就删除了原文件名,这时软连接的箭头无法指向原文件的文件名,自然也就无法打开原文件。

  • cat 文本内容显示到终端
    cat -n filename
    cat -b filename

  • tac:显示文本的内容 ,倒序展示

  • head:显示文本开头部分,默认前十行
    head -3 filename 显示前三行

  • tail 显示结尾部分,默认后十行
    tail -3 filename 显示后三行
    常用参数 -f 文件内容更新后,显示信息同步更新

  • more:显示文本的一部分,类似分页展示,空格翻页

  • wc 统计文件内容信息
    行数 单词数 字符数 文件名称
    wc -c a.txt —> 计算字节数(2个汉字1个数字\字母为10B)
    wc -l b.txt —> 计算行数(4)
    wc -w b.txt —> 计算字数(3)


vim 命令

  • 四种模式:

    • i 插入模式
    • v 可视模式
    • n 正常模式
    • c 命令模式
  • 插入模式 i a o I A O

    • i 进入插入模式
    • I 进去插入模式并且光标到当前行开头
    • a 进去插入模式并且光标到当前光标的下一位
    • A 进去插入模式并且光标到当前行的末尾
    • o 进去插入模式并且光标到当前光标的下一行产生空行
    • O 进入插入模式并且光标到当前行的上一行产生空行
    • :表示末行模式
  • 正常模式

    • 四个方向hjkl
      • h 左 l 右
      • j 下 k 上
    • 复制,粘贴 (操作单行无提示,多行有提示)
      • yy 复制单行
      • p 粘贴单行(当前行的下一行为粘贴行)
      • 3p 粘贴3行
      • 3yy 复制3行(当前行往下三行,包括当前行)
      • y$ 复制当前光标位置到这一行的结尾字符
    • 剪切
      • dd 剪切一整行
      • d$ 剪切当前位置到这一行的结尾
    • 撤销
      • u 普通模式下,撤销 ,多次u多次撤销
      • ctrl +r 重做,返回上一次撤销,相当于win的ctrl+y
    • 删除、替换
      • x 删除指定字符,光标选中,按x
      • r+新字符 字符替换,光标选中按r 在输入新字符
    • 移动
      • G 移动到指定行: 6G 移动到第6行
      • :set nu 查看当前行号,:set nonu取消行号
      • g 移动到第一行
      • G 移动到最后一行
      • ^ 表示到这一行的开头
      • $ 表示到这一行的结尾(用于一行太长的情景)
  • 命令行模式

    • :q 退出
    • :q! 强制退出
    • :wq! 强制写入退出
    • :! +功能命令:! ifconfig ,表示临时查看命令
    • / +字符 表示查找某个字符, n 向下移动查找, shift n 向上移动查找
    • 替换
      • :s/old/new 替换本行首个old字符,默认表示所在行范围进行替换
      • :s/old/new/g 替换本行中的所有old字符 (g 表示全局)
      • 整个文件范围替换使用:%s/old/new/g
      • 在指定范围替换使用 :起始行号,结束行号s/old/new/g(多次替换加/g,单次则不需要)
    • 设置显示行号永久生效,则需要去配置文件(/etc/vimrc或者/etc/vim/vimrc)中添加 set nu 的配置
  • 可视模式

    三种进入可视模式的方式

    • v 字符可视模式
    • V 行可视模式
    • ctrl+v 块可视模式
      • 配合 d 和 I (大写的i) 命令可以进行快的便利操作
      • 选中块区域后,按 d 可删除选中区域
      • 选中块区域后,按 I ,然后输入内容,再按两次 Esc 可让选中的区域前都插入刚刚输入的内容

文件特性

Linux中所有的文件都通过权限设置。

Linux 文件的权限有三种:

  • 可读(r):意味着可以查看阅读;

  • 可写(w):意味着可以修改或删除(不过删除或修改的权限受父目录上的权限控制);

  • 可执行(x):意味着如果是文件就可以运行,比如二进制文件(比如命令),或脚本(要用脚本语言解释器来解释运行)。

  • -: 0
    x: 1
    w: 2
    r: 4
    可以用四个字符表示0-7

权限共十位:

  • 第一位是类型:

    -: 文件
    d: 目录
    l: 链接

    c:字符特殊文件

    b: 块特殊文件

    f:命名管道

    s:套接字文件

  • 后九位:每三位为一组
    第一组:当前用户的权限
    第二组:当前组的权限
    第三组:其他组的权限

  • 权限修改

    • chmod 修改文件、目录权限
      • chmod u+x /tmp/testfile
      • chmod 755 /tmp/testfile
      • -rw-r–r-- 一个普通文件的权限通常是 644
    • chown 更改属主、属组
    • chgrp 可以单独更改属组,不常用

你可能感兴趣的:(Linux,linux,ubuntu)