Linux 小白必看 各指令详解

本文介绍了Linux在服务器和嵌入式领域的应用,强调了其在前端开发中的重要性。讨论了Linux的主要从业方向,如运维和开发,并列举了获取Linux环境的常见方式。文章详细讲解了Linux常用命令,如文件管理、网络配置、软件安装,以及文件权限、用户组、文件系统信息等。此外,还涵盖了文本编辑器、文件传输工具、文件系统管理等方面,帮助读者深入理解Linux操作系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

Linux是一种自由和开放源代码的类Unix操作系统,广泛应用于服务器领域和嵌入式系统等多个领域。Linux操作系统具有很多优点,例如安全性高、稳定性好、可靠性强、灵活性大等等。 

前端开发人员需要使用Linux下的命令行工具进行文件管理、网络配置、软件安装等操作。其次,Linux平台提供了很多强大的开发工具和环境,例如Git版本控制、Vim编辑器、Docker容器等,这些工具可以在前端开发、测试以及部署过程中起到重要作用。此外,Linux下还有很多支持Web开发的应用程序和服务,例如Apache、Nginx、PHP、MySQL等,这些工具可以帮助前端开发人员搭建起完整的Web开发环境。

一、Linux主要从业方向

 ①运维

系统运维、自动化运维、数据库运维 (DBA)、大数据运维、网络运维云计算运维 

 ②开发

(1)应用开发 

  1. 服务器后台开发
  2. 嵌入式开发
  3. 桌面应用开发

(2)底层开发

  1. 驱动开发 
  2. 内核开发
  3. 安卓开发

二、获取Linux环境的几种常见方式

①虚拟机

  1. VMWare
  2. VirtualBox

②WSL2

  1. 优点:方便
  2. 缺点:
  • 不够原汁原味,很多东西被优化掉
  • 没有界面
  • 性能不够好

③云服务器 

  • 一般不免费,常见的厂商有: 阿里云,腾讯云华为云
  • 方便,随时随地可以学习Linux
  • 稳定,原汁原味

④物理机双系统

  • 稳定,纯正Linux系统
  • 安装繁琐

⑤树莓派 

  • 方便
  • 性能有点差

 下载 VMware Workstation Pro网址如下:下载 VMware Workstation Pro | CNVMware Workstation Pro 是业界标准的桌面 Hypervisor,用于在 Linux 或 Windows PC 上运行虚拟机。了解原因。 | VMware CNhttps://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

 ubuntu 乌班图 网址如下:Enterprise Open Source and Linux | UbuntuUbuntu is the modern, open source operating system on Linux for the enterprise server, desktop, cloud, and IoT.https://ubuntu.com/

安装步骤挺简单,已跳过 


终端工具Mobaxterm的使用

优点:

  1. 功能十分强大,支持SSH,FTP,串口VNC,X server等功能;
  2. 支持标签,切换也十分方便 
  3. 众多快捷键,操作方便
  4. 有丰富的插件,可以进一步增强功能

官网下载地址:

MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - DownloadFree X server for Windows with tabbed SSH terminal, telnet, RDP, VNC and X11-forwarding - Downloadhttps://mobaxterm.mobatek.net/download.html 

配置:

  1. 去除buttons bar:菜单view —>勾选show menu bar
  2. 去除标签页的数字: 菜单view—>去除show tab numbers
  3. 右健粘贴:settings —> Configuration —> terminal —>paste using right-click 打勾
  4. 关闭左侧SFTP侧边栏:settings —> Configuration —> SSH —>automaticall switch to SSH-browser tabafterlogin去掉对勾

创建session

菜单栏 sessions —> new session —> ssh 

 在虚拟机创建用户后


文件传输工具winSCP的使用

作用: Window主机与Linux服务器文件传输工具

官网下载:WinSCP :: Official Site :: DownloadWinSCP is a free file manager for Windows supporting FTP, SFTP, S3 and WebDAV.https://winscp.net/eng/download.php新建站点 :新建会话—>填入主机信息

连接站点: 双击对应站点即可


ls /  Linux目录结构介绍

根目录 /

🌟bin 是binary的缩写,主要存放一些常用的命今,比如 ls, cp, mv 之类的

 boot 主要存放一些Linux启动时需要用到的核心文件

🌟dev 是 device 的嬉写,主要存放一些Linux的设备文件 

🌟 etc 主要存放系统用户所需要的配置文件和子目录

🌟 home 主要存放用户目录 

🌟 lib 是library的缩写,主要存放一些动态库,供应用程序调用

lost+found:一般是空的,当系统非法关机后,相关文件会存放在此目录

media :自动挂载一些Linux系统自动识别的设备,比如U盘,光驱等

mnt:提供给用户的用于挂载临时别的文件系统(手动挂载),比如另外的硬盘等

opt:提供给主机额外安装软件所需要的目录

proc:这个目录是一个虚拟的目录,它是系统内存的映射,可以通过直接访问这个目录来获取系统信息。

root:超级用户的主目录

sbin:s是super user的简称,此目录主要存放一些系统管理员所用到的系统管理程序 

snv:主要存放一些系统服务启动之后所要用到的数据

run:主要存放一些系统运行时需要用到的一些文件

usr: 主要存放一些用户的应用程序及文件,类似于windows下的program files

        bin:存放系统用户所使用的应用程序

        sbin:存放超级用户所使用的高级程序及系统守护程序

        src:内核源代码默认的放置目录

tmp: 存放一些临时文件

var:主要存放一些经常被修改的文件,比如日志文件,电子部件等


Linux系统文件或目录颜色的含义

 

Linux系统常用终端快捷键

  • ctrl+f 向前移动光标
  • ctrl+b向后移动光标
  • ctrl+ a 光标移动到行首
  • ctrl+e 光标移动到行尾
  • ctrl+p 向上翻页,相当于 pageUp
  • ctrl+n 向下翻页,相当于 pageDown
  • ctrl + h 删除光标前一个字符
  • ctrl+ d 删除光标所在字符
  • ctrl + u 删除光标至开始全部内容 (不包括光标所在字符)
  • cIrl+ k 删除光标至末尾全部内容 (包括光标所在字符)
  • ctrl+ w 删除光标前单词
  • ctrl+y粘贴使用   ctrl+w,ctrl+u 和 ctrl+k 快捷键擦除的文本

Tab键的妙用

(1)作用

  • 提示可能要输入的命令/路径
  • 补全命令 / 路径

(2)用法

  • 如果命令/路径是唯一的,则敲击一次 tab 键 自动补全
  • 如何命令/路径不唯一,则敲击两次,则会将所有可能性全部列出来


文件权限介绍

 

  • r  readable
  • w  writeable
  • x  executable

通配符介绍

  •  匹配0个或多个字符串 
  •  匹配1个字符
  • [abcd]   匹配 abcd 中何意一个字符
  • [a-z]    匹配 a-z 范围里的任意一个字符
  • [!abc]   不匹配方括号里的任何一个字符;与[^abc]一致

帮助命令①: man 

(1)作用:查看帮助手册

(2)语法:

  • man [man options] [[section] page ..] ...
  • man -k [apropos options] regexp
  • man -k [man options][section] term.
  • man -f [whatis options] page
  • man -I [man options] file
  • man -w|-W [man options] page 

(3)参数:

  • -f 显示给定关键字的简短描述信息 
  • -k 根据关键词搜索帮助手册
  • -w 显示手册文件所在位置

(4)常用章节

(5)快捷操作

  • 空格键   下翻一页
  • 回车键    下滚一行
  • j   下滚一行
  • k  上滚一行
  • b  回翻一页
  • f   下一页
  • q   退出
  • /word   搜索word关键词

(6)案例 

  •  查看 cp命令 的帮助手册   man cp
  •  查看 sleep命令 的简要信息   man -f sleep
  •  查看第了个章节的sleep信息   man 3 sleep
  •  查看 passwd文件的详细介绍    man 5 passwd
  •  查看 Is 命令帮助手册文件所在位置   man -w Is
  •  搜索跟 disk 相关的帮助手册   man -k disk


帮助命令②:info

(1)作用: 阅读info格式的文件

(2)语法:info[OPTION]..[MENU-ITEM···]

(3)参数:

  • -w 显示info文档的物理位置
  • -f  指定要访问的info文件
  • -n 在首个浏览过info文件中指定节点
  • -O 跳转至命令行选项节点

 (4)常用操作:

  1. n  显示下一节点的页面内容
  2. p  显示上一节点的页面内容
  3. l  返回上一个访问节点的页面内容
  4. 空格键    向前滚动一页
  5. 退格键/del    向后滚动一页
  6. b / e    一个节点内容的开始 / 结束
  7. h   打开info教程
  8. d   回到info的初始节点
  9. 回车键    跳转到链接文本
  10. q    退出

 (5)案例:

  • 查看Is 命令的info文档    info ls
  • 显示Is命令info文档的物理位置   info -w ls

 帮助命令③:whatis

(1)作用:查询一个命令执行什么功能,并将查询结果打印到终端上

(2)语法:whatis 命令

(3)案例:查询 sleep 命令的功能   whatis  sleep

⭕whatis 命令等同于 man-f 命令


创建空文件与修改时间戳命令: touch 

 (1)作用:

1.改变已有文件的时间戳属性 

⭕注意:  在修改文件的时间属性的时候,用户必须是文件的属主,或拥有写文件的访问权限 

2.创建新的空文件

(2)语法:touch [OPTION]··· FILE···

(3)参数:

  • -a  改变文件的读取时间记录
  • -m 改变文件的修改时间记录
  • -r 使用参考文件的时间记录,与--file 的效果一样
  • -c 不创建新文件
  • -d 使用指定字符串表示时间式
  • -t 设定文件的时间记录,格式与 date 命令相同
  • --no-create 不创建新文件

 (4)案例:

  • 创建一个空文件  touch file.txt  (前提: file.txt文件不存在)
  • 创建多个空文件 
    • touch filel.txt  file2.txt   file3txt
    • touch filefl..3).txt
  • 修改已有文件的时间戳为当前系统时间 (包括修改时间及访问时间)   touch file.txt  (前提: file.txt文件已存在)
  • 修改文件的 access 时间   touch -a file.txt
  • 修改文件的 modify 时间    touch -m file.txt
  • 强制避免创建新文件    
    • touch -c nofile.txt
    • touch --no-create nofile.txt
  • 将访问和修改时间从一个文件复制到另一个文件
  • touch file.txt -r ref file.txt
  • 修改文件时间为明天   touch -d "tomorrow" file.txt
  • 修改文件时间为任意时间   touch -t 2201011030.55 file.txt

目录创建命令: mkdir 

(1)作用:创建目录

⭕注意: 默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。新建的目录与它所在目录下的文件有重名也不行

(2)语法:mkdir [OPTION]···DIRECTORY···

(3)参数:

  • -p  递归创建多级目录
  • -m 建立目录的同时设置目录的权限
  • -v 显示目录的创建过程

 (4)案例:

  • 在当前目录下创建一个名为 dirl 的子目录 mkdir dirl
  • 创建多个目录
    • mkdir dir2 dir3 dir4
    • mkdir dir(5.7)
  • 递归创建目录  mkdir -p dir7/dir8/dir9
  • 在din 目录下建立子目录dir10,并且设置文件权限700    mkdir -m 700 dirl/dir10
  • 显示目录的创建过程    mkdir -v dir(1..13)

删除命令: rm 

(1)作用:删除文件或目录   remove

(2)语法:rm[OPTION]···[FILE]··

(3)参数: 

  • -f  忽略不存在的文件,不会出现警告信息
  • -i  删除前会询问用户是否操作
  • -r/-R 递归删除
  • -v  显示指令的详细执行过程

 (4)案例:

  • 删除一个文件     rm file.txt
  • 删除一个目录    rm -r dir
  • 强制删除文件/目录(不带提示)     rm f file.txt
  • 删除当前目录下所有文件    rm -rf *
  • 删除前逐一一询问确认    rm i filel.txt file2.txt file3.txt


删除空目录命令: rmdir 

(1)作用:删除空目录  remove directory

(2)语法:rmdir [OPTION]···DIRECTORY···

(3)参数:

  • -p 用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
  • -v 显示命令的详细执行过程

 (4)案例:

  •  删除空目录   rmdir dir
  •  递归删除多重目录    mdir -p dir/dir2/dir3
  • 显示指令详细执行过程   rmdir -v dir

移动或重命名命令: mv

(1)作用:

  1. 移动件
  2. 重命令文件

(2)语法:

  • mv[OPTION]···[-T] SOURCE DEST
  • mv[OPTION]···SOURCE···DIRECTORY
  • mv[OPTION]···-t DIRECTORY SOURCE

 (3)参数:

  • -i 若存在同名文件,则向用户询问是否覆盖
  • -f 夏盖已有文件时,不进行任何提示
  • -b 当文件存在时,夏盖前为其创建一个备份
  • -u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

 (4)案例:

  • 将文件fle.txt 移动到目录 dir 中     mv file.txt /dir
  • 将file.txt 重命名为 newfile.txt      mv file.txt newfile.txt
  • 将目录dir1移动到目录dir2中(前提是目录dir2已存在,若不存在则改名)      mv dirl dir2
  • 将文件 filel.txt 改名为 file2txt,如果fle2.txt已经存在,则询问是否覆盖     mv -i filel.txt file2.txt
  • 将文件 filel.txt 改名为 file2.txt,如果file2txt已经存在,则直接覆盖       mv -f filel.txt file2.txt
  • 文件被覆盖前做备份     mv -b filel.txt file2.txt
  • 源文件比目标文件新时才执行更新    mv -u filel.txt  file2.txt
  • 移动当前文件夹下的所有文件到上一级目录     mv* ../
  • 将当前目录的一个子目录里的文件移动到另一个子目录里      mv dir3/* dir2


复制命令:cp

(1)作用:复制文件或目录

(2)语法:

  • cp[OPTION]···[T] SOURCE DEST
  • cp[OPTION]···SOURCE···DIRECTORY
  • cp[OPTION]··· -t DIRECTORY SOURCE

(3)参数:

  • -f  若目标文件已存在,则会直接爱盖
  • -i  若目标文件已存在,则会询问是否覆盖
  • -a  通常在复制目录时便用,它保留链接、文件属性,并复制目录下的所有内容
  • -r  递归复制文件和目录
  • -b  覆盖已存在的文件目标前将目标文件备份
  • -v  详细显示cp 命令执行的操作过程

(4)案例:

  • 复制文件    cp filel.txt  file2.txt
  • 复制目录    cp -r dirl dir2
  • 复制文件,若目标文件已存在,则询问是否夏盖    cp -i filel.txt file2.txt
  • 复制文件,若目标文件已存在,则直接覆盖,不提示    cp -f filel.txt file2.txt
  • 复制文件,若目标文件已存在,则先进行备份    cp -b filel.txt file2.txt
  • 复制目录,并且保留源目录所有属性都一致     cp -a dirl dir2

显示文件状态信息命令: stat

(1)作用:显示文件或文件系统的详细信息

(2)语法:stat [OPTION]···FILE···

(3)参数:

  • -L   支持符号链接
  • -f   显示文件系统的信息
  • -t   以简洁的方式输出

(4)三种时间

  •  atime: access time 访问时间:读取文件(more/less/cat/tail)、修改文件(vim/nano)时改变
  •  mtime: modify time 修改时间:修改文件(vim/nano)时改变
  •  ctime:changetime 状态改变时间:修改文件(vim/nano)、文件属性变化(chmod/chown)时改变

 (5)案例:

  • stat file.txt   查看文件file.txt的信息
  • stat -f file.txt    查看fie.txt文件所在文件系统信息
  • stat -t file.txt     以简洁方式输出信息

 批量文件重命名命令: rename

(1)作用:用字符串替换的方式批量改变文件名

(2)语法:rename 's/old-name/new-name/’ files

(3)语法:原字符串: 将文件名需要替换的字符串;目标字符串: 将文件名中含有的原字符替换成目标字符串;  文件: 指定要改变文件名的文件列表
(4)通配符:

  • ? 可替代单个字
  • * 可替代多个字符

(5)参数: 

  • -n  模拟运行,实际命令没进行重命名
  • -v  输出每步执行信息
  • -f  强制改写

(6)案例:

  • 将myfile.txt改为myfile.doc   rename 's/.txt/.doc/ myfile.txt
  • 模拟将filel.txt,file2txt,file3.txt改为file01.txt,file02.txt,fle03.txt   rename -n 's/file/file0/* myfile.txt
  • 实际更改上一步,并输出执行过程信息    rename -v 's/file/file0/' myfile.txt


提取文件或目录名命令:basename

(1)作用: 提取文件路径名的文件名

(2)语法:

  • basename NAME[SUFFIX]
  • basename  OPTION···NAME···

(3)参数:

  • -a  支持处理多个文件
  • -s  删除指定后缀 

(4)案例:

  • 提取文件名   basename/etc/passwd
  • 提取目录名(删除最后的/) basename/usr/local/
  • 提取多个输入     base -a /etc/passwd /usr/local/
  • 删除指定后缀
    • basename /etc/sysctl.conf .conf
    • basename -s .conf/etc/sysctl.conf

提取路径目录部分命令: dirname

(1)作用:去除文件名中的非目录部分

(2)语法:dirname[OPTION] NAME.

(3)案例:

  • 提取文件的路径   dirname /usr/bin/cat
  • 提取目录的路径    dirname/home/liangxu/commands/

修改、查看文件属性命令: chattr_lsattr 

(1)作用:更改文件属性

(2)语法:chattr[-RVf]+-=[aAcCdDeijsStTu] files···

(3)参数:

  • -R  递归处理目录下的所有文件
  • -v  设号文件或目录版本
  • -V   显示指令执行过程
  • +  开启文件或目录的该项属性
  • -  关闭文件或目录的该项属性
  • =   指定文件或目录的该项属性

 (4)案例:

  • 解锁    chattr i file.txt
  • 只允许文件追加内容(对日志文件特别有用)       chattr +a file.txt 
  • 对一个目录中的所有文件添加限制      chattr -R +i dir
  • 查看文件属性      sattr file.txt

识别文件类型命令: file

(1)作用:识别文件类型

(2)语法:file[参数]文件

(3)参数:

  • -b  列出文件类型,不显示文件名称
  • -c  详细显示指令执行过程
  • -f   指定名称文件,显示多个文件类型信息
  • -L  直接显示符号连接所指向的文件类别
  • -m  指定魔法数字文件
  • -z   尝试去解读压缩文件的内容
  • -i   显示MIME类别

(4)查看文件的类型: 

  • file file.txt
  • file dir
  • file /dev/sda

(5)案例:

  • 查看文件类型,但不显示文件名    file -b file.txt
  • 显示MIME类别     file -i file.txt
  • 查看某个符号链接文件(快捷方式)的类型   file /dev/cdrom
  • 直接查看某个符号链接文件(快捷方式)所对应的目标文件的文件类型   file -L /dev/cdrom


生成和校验文件的md5值命令: md5sum

(1)作用:生成和校验文件的md5值

(2)语法:md5sum···[OPTION]···[FILE]···

(3)参数:

  • -b  以二进制模式读取文件
  • -t  以文本模式读入文件内容
  • -c  根据已生成的md5值,对现存文件进行校验
  • --status 校验完成后,不生成错误或正确的提示信息,可以通过命令的返回值来判断

 (4)案例:

  • 生成filetxt文件的md5值:md5sum file.txt
  • 不同模式计算同一个文件的md5值:
    •  md5sum -b file.txt
    •  md5sum -t file.txt
  • md5校验    md5sum -c file.md5
  • md5校验,不显示任何输出, 用返回码 1表示成功与否    md5sum -c --status file.md5 echo S ?

 查找目录或文件命令: find

 (1)作用:搜索指定文件

 (2)语法:find[路径][参数][条件]

 (3)参数:

  • -name name,inamename: 文件名称符合name 的文件。iname会忽略大小写
  • -perm  匹配权限 (mode为完全匹配,-mode为包含即可)
  • -user  匹配所有者
  • -group  匹配所有组
  • -mtime-n+n  匹配修改内容的时间(n指n天以内,+n指n天以前)
  • -atime-n +n  匹配访问文件的时间 (n指n天以内,+n指n天以前)
  • -ctime-n+n  匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
  • -nouser  匹配无所有者的文件
  • -nogroup  匹配无所有组的文件
  • -newerf !f2  匹配比文件新但比 f2 旧的文件
  • -type b/d/c/p//f  匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
  • -size 匹配文件的大小(+50KB为章找超过50KB的文件,而-50KB为查找小于50KB的文件)
  • -prune 忽略某个目录
  • -exex···{}\;  后面可跟用于进一步处理搜索结果的命令

搜索命令位置命令: which

(1)作用: 查找命令文件所在位置

(2)语法:which [-a] filename···

(3)案例:查找文件所在位置

  • which bash
  • which ls
  • which fdisk

查找文件命令: whereis 

(1)作用 :查找命令的二进制程序,源代码文件和man手册页面相关文件的路径

(2)语法:whereis [options][-BMS directory... -f] name

(3)参数:

  • -b 查找二进制程序或命令 
  • -B 从指定目录下查找二进制程序或命令
  • -m 查找man手册文件
  • -M 从指定目录下查找man手册文件
  • -s 只查找源代码文件
  • -S 从指定目录下查找源代码文件

 (4)案例:

  • 查找Is命令的程序路径和man手册页位置     whereis ls
  • 查找Is命令的二进程程序路径    whereis -b ls
  • 查找Is命令的man手册页路径     whereis -m ls

 查找符合条件的文档命令: locate

 (1)作用:快速查找文件或目录

 (2)语法:locate[参数][文件]

 (3)参数:-i 忽略大小写

 (4)案例:

  •  查找系统中所有file.txt文件   locate file.txt
  •  搜索路径中包含/etc/sh的文件   locate /etc/sh
  • 查找和whereis相关的所有文件    locate whereis
  • 查找/home/liangxu/commands/locate/目录下所有以开头的文件,不区分大小写    locate -ilocate/f

 改变文件所属用户或组命令: chown

(1)作用:改变文件或目录的用户和用户组

(2)语法:chown[参数] 所属主: 所属组文件

(3)参数:

  • -R  对目前目录下的所有文件与目录进行相同的变更
  • -C  显示所属信息变更信息

(4)案例:

  • 改变file.txt文件的所属主与所属组   sudo chown alvin:alvin file.txt
  • 只改变file.txt文件的所属主   sudo chown alvin file.txt
  • 只改变file.txt文件的所属组    sudo chown :alvin file.txt
  • 改变指定文件的所属主与所属组,并显示过程   sudo chown -c liangxu:liangxu file.txt
  • 改变指定目录及其内所有子文件的所属主与所属组  sudo chown -R alvin:alvin dir


改变文件或目录所属组: chgrp

(1)作用: 更改文件用户组

(2)语法:chgrp[参数][目录]

(3)参数:

  • -v  显示指令执行过程
  • -R 递归处理,将指定目录下的所有文件及子目录一并处理
  • --reference 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同

(4)案例: 

  • 改变文件的用户组   sudo chgrp alvin file.txt
  • 改变文件的用户组,并显示命令执行过程   sudo chgrp -v alvin file.txt
  • 根据参照文件改变文件的用户组   sudo chgrp --reference=reffile.txt file.txt
  • 将dir及其子目录下的所有文件的用户组改为alvin  sudo chgrp -R alvin dir

改变用户对文件或目录的权限: chmod

(1)作用:改变文件或目录权限   只有文件的属主和超级用户 root 才能执行此命令

(2)语法:

  • chmod [OPTION]···MODE[MODE]···FILE···
  • chmod[OPTION]···OCTAL-MODE FILE···
  • chmod [OPTION]··· --reference=RFILE FILE···

(3)两种模式:

1️⃣符号模式

1.格式:[ugoa][[+-=][rwx]]

2.对象:

对象用户类型说明
uuser文件所有者
ggroup文件所有者所在组

o

others所有其他用户
aall所用用户相当于 ugo

3.操作:

操作说明
+为指定的用户类型增加权限
-去除指定用户类型的权限
=设置指定用户权限的设置,即将用户类型的所有权限重新设置

4.权限:

权限名字说明
r设置为可读权限
w设置为可写权限
x执行设置为可执行权限

2️⃣数字模式

 

 (4)参数:

-R  对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)

 (5)案例:

  • 将文件file.txt设置为所有人都可读取  chmod a+r file.txt
  • 将当前目录下所有文件及递归目录文件设置为所有人可读取   chmod -R a+r*
  • 将file.txt设置为只有该文件拥有者才可以执行  chmod u+x file.txt
  • 将ffle.txt 设置为文件拥有者及其同组人员可写入,但其他人不可写入  chmod ug+w,o-w file.txt
  • 将file.txt设置为所有人都可读可写可执行 
    • chmod a+r,a+w,a+x file.txt
    • chmod 777 file.txt
  • 将 filetxt设置为文件拥有者可读可写可执行此外的其他人可读可执行   chmod 755 file.txt
  • 将file.txt 设置为文件拥有者可读可写,此外其他人都没任何权限    chmod u=rw.go= file.txt


文本搜索工具: grep

(1)作用:文本搜索工具

(2)语法:grep[参数]文件

(3)参数:

  • -i 忽略大小写 
  • -c 只输出匹配行的数量
  • -l 只列出符合匹配的文件名,不列出具体的匹配打
  • -n 列出所有的匹配行,显示行号
  • -h 查询多文件时不显示文件名
  • -s 不显示不存在、没有匹配文本的错误信息
  • -v 显示不包含匹配文本的所有行
  • -w 匹配整词
  • -x 匹配整行
  • -r 递归搜索
  • -q 禁止输出任何结果,已退出状态表示搜索是否成功
  • -b 打印匹配行距文件头部的偏移量,以字节为单立
  • -o 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位
  • -F 匹配固定字符串的内容
  • -E 支持扩展的正则表达式

 (4)案例:

  • 搜索某个文件中,包含某个关键词的内容  grep liangxu /etc/passwd
  • 搜索多个文件中,包含某个关键词的内容  grep liangxu /etc/passwd /etc/shadow
  • 搜索多个文件中,包含某个关键词的内容,不显示文件名称   grep -h liangxu /etc/passwd /etc/shadow
  • 递归搜索,不仅搜索指定目录,还搜索其内子目录内是否有关键词文件    grep -rl hello *  
  • 输出在某个文件中,包含某个关键词行的数量   grep -c root /etc/passwd /etc/shadow
  • 忽略大小写   grep -i LIANGXU /etc/passwd
  • 在文件中查找要搜索的内容,并显示行号    grep -n liangxu /etc/passwd
  • 反向查找   grep -v liangxu /etc/passwd
  • 搜索当前工作目录中,包含某个关键词内容的文件,未找到则提示    grep -I hello*
  • 搜索某个文件中,精准匹配到某个关键词的内容:   
    • grep -x hello filel.txt
    • grep -x hello file3.txt
  • 判断某个文件中,是否包含某个关键词,通过返回状态值输出结果(0为包含,1为不包含),方便在Shell脚本中判断和调用:
    • grep -q hello filel.txt
    • grep -q hello file2.txt

文件内查找指定字符串命令: egrep

(1)作用:查找指定的字符串

(2)语法:egrep[参数][文件]

(3)参数:同grep

(4)案例:

  • 查找包含一个或一个以上"a”的内容   egrep 'a+' file.txt
  • 查找包含linux或666的内容    egrep 'linux|666' file.txt
  • 查找包含linux整体的内容     egrep '(linux)' file.txt
  • 查找包含一个或多个inux整体的内容   egrep '(linux)+'file.txt
  • 查找以#开头的内容    egrep'^#' file.txt
  • 查找以linux结尾的内容   egrep 'linux$' file.txt
  • 查找连续出现3次ab的内容   egrep '(ab){3} file.txt'
  • 查找包括abc或abd的内容   egrep 'ab[cd]' file.txt

查看文本内容命令: cat   concatenate

(1)作用:在终端上显示文件内容

(2)语法:cat[OPTION]...[FILE]···

(3)参数:

  • -n 显示行数(空行也编号)
  • -s 去除重复的空行
  • -b 显示行数(空行不编号)
  • -e 每行结束处显示S符号
  • -t 将TAB字符显示为 ^符号

(4)案例:

  • 查看file.txt文件内容   cat file.txt
  • 查看多个文件内容   cat fileltxt file2.txt
  • 查看 file.txt文件内容,并显示行数编号     cat -n file.txt
  • 去除重复的空行   cat -s file.txt
  • 重定向文件内容
  • catfile.txt sfileltxt # 如果filel.txt不存在,则创建,并且内容会被覆盖
  • catfile.txt>> fileltxt # 如果fleltxt不存在,则创建,并且内容会被追加到末尾
  • 将flel.txt和file2txt合并为一个文件    cat filel.txt file2.txt > combinedfile.txt
  • 使用cat创建文件(按键Enter 入文本,完成后按CRTL-D保存文件)    cat> file.txt

逐页阅读文本命令: more

(1)作用:分页显示文本文件内容

(2)语法:more [options] file···

(3)基本操作:

  • 回车:下滚一行
  • 空格:下翻一页

(4)参数:

  • -num 指定每屏显示的行数
  • +num 从第num行开始显示
  • -p 先清除屏幕再显示文本文件的剩余内容
  • -c 与-P相似,不滚屏,先显示内容再清除旧内容
  • -s 多个空行压缩成一行显示

(5)案例:

  • 分页显示指定的文本文件内容    more~/.bashrc
  • 先进行清屏提作,随后以每次10行内容的格式显示指定的文本文件内容    more-c-10/bashrc
  • 分页显示指定的文本文件内容,遇到连续两行以上空白行的情况,则以一行空白行显示   more -s-/.bashrc 
  • 从第10行开始,分页显示指定的文本文件内容    more +10 -/bashrc

分页查看文本内容命令: less 

(1)作用: 分页显示文本内容

(2)语法:less[参数] 文件

(3)快捷操作:

  • 空格键  下一页
  • 回车键  下滚一行
  • j  下滚一行
  • k  上滚一行
  • b  回翻一页
  • f  下翻一页
  • q  退出
  • /word  搜索word关键词

(4)案例:

  • 查看文件  less -/.bashrc
  • 查看多个文件   less ~/bashrc -/.bash history
  • n-  浏览下一个文件
  • p-  浏览前一个文件
  • 查看历史命令并便用 less 命令分页显示   history I less

查看文件开头内容命令: head 

(1)作用 :显示文件开头的内容

(2)语法

(3)参数:

  • -n <数字>定义显示行数
  • -c <数字>指定显示头部内容的字符数

 (4)案例:

  • 显示文件的前10行内容(默认)    head -/bashrc
  • 显示文件的前5行内容    head -n5~/bashrc
  • 显示文件除了最后6行的全部内容    head -n -6 -/bashrc
  • 显示文件的前20个字符   head -c 20 -/.bashrc
  • 显示文件除了最后30个字符的全部内容   head -c -30 -/.bashrc

查看文本尾部内容命令: tail 

(1)作用:查看文件尾部内容

(2)语法:tail[OPTION]···[FILE]···

(3)参数:

  • -c N输出文件尾部的 N(N为数)个节内容
  • -f  显示文件最新追加的内容
  • -n N输出文件的尾部N (N位数)行内容

(4)案例:

  • 显示file.txt文件的最后10行内容   tail file.txt
  • 显示fletxt文件的最后20行内容   tail -n 20 file.txt
  • 显示file.txt文件从第20 行至文件末尾   tail +20 file.txt
  • 显示 file.txt 文件的最后10 个字符   tail -c 10 file.txt
  • 动态显示文件的最后10 行内容   tail -f file.txt

反向显示文本内容命令: tac

(1)作用:反向显示文件内容

(2)语法:tac[参数][文件]

(3)案例:tac file.txt


统计文件行号命令: nl 

(1)作用: 添加行号

(2)语法:nl[OPTION].. [FILE]..

(3)参数:

  • -b a 也给空行添加行号(类似cat -n)
  • -b t 空行不显示行号
  • -n 列出行号表示的方法
    • -n In 行号在屏幕的最左方显示
    • -n rn 行号在自己栏位的最右方显示,且不加0
    • -n rz 行号在自己栏位的最右方显示,且加0
  • -w 行号栏位的占用的位数

(4)案例:

  • 用nI列出file.txt的内容   nl file.txt
  • 用nI列出file.txt的内容,空行也加上行号   nl -b a file.txt
  • 行号在自己栏位的最右方显示,且加0对齐格式   nl -b a -n rz file.txt
  • 行号宽度设置为3   nl -b a -n rz -w3 file.txt
  • 空行不显示行号    nl -b t file.txt

统计文本字数信息命令: wc 

(1)作用: 统计文本信息

(2)语法:WC[OPTION]...[FILE]···

(3)参数:

  • -w 统计字数,或--words: 只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
  • -c 统计字节数,或-bytes或-chars:只显示Bytes数
  • -l 统计行数,或--lines:只显示列数
  • -m 统计字符数
  • -L  打印最长行的长度(不包合不可见符)

(4)案例: 

  • 统计 filetxt文件的行数、字数、以及字节数  wc file.txt 
  • 统计file.txt 文件的字数   wc -w file.txt
  • 统计 fe.txt 文件的字符数   wc -m file.txt
  • 统计file.txt文件的字节数   wc -c file.txt
  • 统计file.txt文件的行数   wc -I file.txt
  • 打印 file.txt 文件最长行的长度  wc -L file.txt
  • 使用管道统计文本行数   cat file.txtI wc -l

文件切割命令: split

(1)作用: 文件分割

(2)语法:split [OPTION]..[FILE[PREFIX]]

(3)参数:

  • 指定每多少行切成一个小文件:
    • -<行数>
    • l 行数
  • -b <字节>指定每多少字节切成一个小文件
  • -d 使用数字作为后缀
  • -a 指定后缀长度(默认为2)
  • [输出文件名]设置切割后文件的前置文件名split会自动在前置文件名后再加上编号

(4)案例:

  • 将filel.txt每2行切割成一个小文件  split -2 filel.txt
  • 将file2txt每10kb切割成一个小文件  split -b 10k file2.txt
  • 以数字作为后缀,并指定后缀宽度为3   split -b 10k -d -a 3 file2.txt
  • 为分割后的文件指定文件名的前缀    split -b 10k -d -a 3 file2txt split file

文本截取命令: cut

(1)作用:从文件中提取文本的一部分

(2)语法:cut OPTION...[FILE]···

(3)参数:

  • -b 以字节为单位进行分割仅显示行中指定直接范围的内容
  • -c 以字符为单位进行分制,仅显示行中指定范围的字符
  • -d 自定义分隔符,默认为制表符”TAB"
  • -f 显示指走字段的内容,与-d一起使用
  • -n 取消分割多字节字符
  • --complement 补足被选择的字节、字符或字段
  • --out-delimiter 指定输出内容是的字段分割符

(4)案例:

  • 提取file.txt第2列的内容
    • cut -f 2 filel.txt
    • cut -f2 filel.txt
  • 提取flel.txt除第2列外的其它内容  cut -f2 --complement filel.txt
  • 使用-d 选项指定字段分隔符  cut -f2 -d";" file2.txt
  • 提取第2,3,4,6个字节   cut -b 2-4,6 file3.txt
  • 提取指定数量字符
    • 提取第1个到第3个字符   cut -c1-3 file3.txt
    • 提取前2个字符   cut -c-2 file3.txt
    • 提取第4个之后的字符   cut -c4- file3.txt

文件合并命令: paste

(1)作用:台并两个或多个文件 

(2)语法:paste[OPTION]···[FILE]···

(3)参数:

  • -d  默认域的分隔符是空格或tab键,设置新的域分隔符
  • -s  将每个文件粘贴成一行
  • - 从标准输入中读取数据

(4)案例:

  • 将 filel.txt 和 file2txt 粘贴成一个新的文件    paste file1.txt file2.txt
  • 顺序不一样,结果不一样  paste file2.txt file1.txt
  • 多文件拼接    paste file1.txt file2txt file3.txt
  • 设置域分隔符为:粘贴成新的文件   paste -d":" file1ltxt file2.txt
  • 将每个文件粘贴成一行   paste -d":" -s file1.txt file2 txt
  • ls | paste -d""----从标准输入中读取数据,每行显示4个文件名

文本内容排序命令: sort 

(1)作用:对文件内容进行排序

(2)语法:sort[参数]文件

(3)参数:

  •  -t<分隔字符> 指定排序时所用的栏位分隔字符
  • -k 指定需要排序的栏位
  • -r 以相反的顺序来排序

(4)案例:

  • 按字母顺序排序   sort file1.txt
  • 反向排序     sort -r file1.txt
  • 按数字大小排序   sort -n file2.txt
  • 以冒号:为间隔符,对指定的文件内容按照数字大小对第3列进行排序  sort -t:-k3 -n file3.txt

去除重复行命令: uniq

(1)作用:去除文件中的重复行

(2)语法:uniq[OPTION]..[NPUT[OUTPUT]]

(3)参数:

  •  -c  打印每行在文本中重复出现的次数
  • -d 只显示有重复的纪录,每个重复纪录只出现一次
  • -u 只显示没有重复的纪录

(4)案例:

  • 删除连续文件中连续的重复行   unig file.txt
  • 打印每行在文件中出现重复的次数   unig -c file.txt 
  • 只显示有重复的纪录,且每个纪录只出现一次    uniq -d file.txt
  • 只显示没有重复的纪录    unig -u file.txt

比较差异_打补丁命令: diff_patch 

(1)作用:比较文件的差异

(2)语法:diff[OPTION]···FILES···

(3)参数:

  • y 以并列的方式显示文件的异同之处
  • c 显示全部内文,并标出不同之处 
  • u 以合并的方式来显示文件内容的不同
  • -W 设置宽度

(4)显示提示:

  • a -add
  • c -change
  • d - delete
  • l 前后2个文件内容有不同
  • < 后面文件比前面文件少了1行内容
  • >后面文件比前面文件多了1行内容
  • +比较的文件的后者比前着多一行
  • -比较的文件的后者比前着少一行
  • ! 比较的文件两者有差别的行

 (5)案例:

  • 比较两个文件  diff filel.txt file2.txt
  • 并排格式输出    diff -y -W 50 file1.txt file2.txt
  • 上下文格式输出   diff -c file1.txt file2 txt
  •  统一格式输出    diff -u file1.txt file2.txt
  •  生成补丁   diff file1.txt file2.txt > file.patch
  • 打补丁    patch file1.txt file.patch

 连接两个文件命令: join

(1)作用: 连接两个文件

(2)语法:join [OPTION].. FILE1 FILE2

(3)参数:

  • -a1或-a2 除了显示共同域的纪录之外,-a1显示第一个文件没有共同域的纪录,-a2显示第二个文件中没有共同域的纪录
  • -o 设置结果显示的格式
  • -t  改变域的分隔符
  • -v1 或 -v2 不显示共同域的纪录之外,-v1显示第一个文件没有共同域的纪录,-v2显示第二个文件中没有共同域的纪录
  • -j 指定一个域作为匹配字段

(4) 案例:

  • 连接两个文件:
    • 默认以第一列作为连接字段    join file1.txt file2.txt
    • 显示左边文件中的所有记录(右边文件中没有匹配的不显示)     join -a1 file1.txt file2.txt
    • 显示右边文件中的所有记录(左边文件中没有匹配的不显示)     join -a2 file1.txt file2.txt
    • 全连接(显示左边和右边所有记录)    join -al -a2 filel.txt file2 txt
  • 指定输出字段:join -0 1.2 1.3 2.3 filel.txt file2txt(第一个文件的第二列,第一个文件的第三列···)
  • 只显示第1个文件中没有相同栏位的行  join -v 1 file1.txt file2.txt
  • 指定了以两个文件里第2列做匹配字段   join -j 2 file1.txt file2.txt

字符转换命令: tr  transform

(1)作用: 转换或删除文件中的字符

(2)语法:tr [OPTION].. SET1[SET2)

(3)参数:

  • -c 反选设定字符。也就是符合 SET的部份不做处理,不符合的剩余部份才进行转换 
  • -d 删除字集合中出现的所有字符
  • -s 缩减连续重复的字符成指定的单个字符

(4)可以使用的字符类:

  • [:alnuml:]:字母和数字
  • [:alphal:]字母
  • [:cntrl:]:控制(非打印)字符
  • [:digit:]: 数字
  • [;graph:]: 图形享符
  • [:lower]: 小写字母
  • [:print:]: 可打印字符
  • [:punct:]: 标点符号
  • [:space:]: 空白字符
  • [:uppen:]:大写字母
  • [:xdigit:]: 十六进制字符

(5)大小写转换:

  • tr"[a-z]" "[A-Z]"<file.txt
  • cat file.txt | tr a-z A-Z
  • echo"hello world"|tr [lower:] [upper:]
  • echo"Hello World" | tr '[A-Za-z]''[a-zA-Z]'(大小写互换)

流编辑器: sed

(1)作用:批量编辑文本文件

(2)语法:sed[选项][动作]文件名

(3)参数:

  • -n 仅显示script处理后的结果
  • -e 以选项中指定的script来处理输入的文本文件
  • -i 此选项会直接修改源文件,要慎用

(4)动作:

  • a:新增
  • c:取代
  • d:删除
  • i: 插入
  • p:打印
  • s:取代

 (5)案例:

  • 输出文件内容:
    • 仅输出第2行  sed -n '2p' filetxt
    • 输出3到5行  sed -n '3,5p' file.txt
    • 搜索含有an关键字的行  sed -n '/an/p' file.txt
  • 删除文件内容:
    • 删除第2-4的数据  sed ‘’2,4d' file.txt
    • 删除含有an关键字的行   sed '/an/d' file.txt
  • 在第2行后追加nice    sed '2a nice' file.txt
  • 在第2行前插入一行数据   sed 2i123456789 filetxt
  • 整行数据替换     
    • sed '2c asdfgh' file.txt
    • sed '25c data changed' file.txt
  • 字符串替换
    • 全局替换,把liangxu改为alvin   sed 's/liangxu/alvin/g' file txt
    • 只替换第3行    sed '3s/liangxu/alvin/g' file.txt
    • 多个条件    sed -e 's/liangxu//g:s/alvin//g' file.txt

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值