Linux 系列快速入门-01-常用命令

Linux目录结构

  • 大多的Linux、Unix发行版本遵循FHS标准(Filesystem Hierarchy Standard,文件系统层次标准)
  • Linux 不同目录存放内容说明
 /
 ├── bin          所有用户都可以使用的、基本的命令
 ├── boot         启动文件,比如内核等
 ├── dev          设备文件,Linux特有的
 ├── etc          配置文件
 ├── home         家目录
 │   ├── book     用户book的家目录
 ├── lib          库
 ├── media        插上U盘等外设时会挂载到该目录下
 ├── mnt          用来挂载其他文件系统
 ├── opt          Optional,可选的程序
 ├── proc         用来挂载虚拟的proc文件系统,可以查看各进程(process)的信息
 ├── root         root用户的家目录
 ├── sbin         基本的系统命令,系统管理员才能使用
 ├── sys          用来挂载虚拟的sys文件系统,可以查看系统信息:比如设备信息
 ├── tmp          临时目录,存放临时文件
 ├── usr          Unix Software Resource, 存放可分享的与不可变动的的数据
 │   ├── bin      绝大部分的用户可使用指令都放在这里(与开机无关), /bin中的命令跟开机有关
 │   ├── games    游戏
 │   ├── include  头文件
 │   ├── lib      库
 │   ├── local    系统管理员在本机自行安装、下载的软件
 │   ├── sbin     非系统正常运作所需要的系统命令
 │   ├── share    放置共享文件的地方, 比如/usr/share/man里存放帮助文件
 │   └── src      源码
 └── var          主要针对常态性变动的文件,包括缓存(cache)、log文件等

shell 命令解析器

1. shell就是一个应用程序

我们可以通过键盘、串口给它发送命令,回车后它就会去执行这些命令。
以“ls -l”命令为例

  1. 接收键盘数据并回显
    比如:我们使用键盘给shell程序发送字母l,它收到后会在屏幕上显示出来

  2. 解析输入的字符串,寻找程序,执行程序:
    当我们使用键盘给shell程序发送回车时,它就知道字符输入结束了
    a. shell会解析字符串,这些字符串用空格分为好几部分
    第1部分就是程序名、命令名,
    其他部分是参数
    b. shell会去寻找该程序,去哪里找?去PATH环境变量所指示的位置找。
    你当然也可以指定绝对、相对路径,shell就会直接去这些路径找到程序
    c. 找到程序后,会启动该程序,并传入参数

2. 设置 “PATH”

​ 以在PATH中添加/home/book目录为例:

a. 永久设置之方法1,这对所有用户都有效:

​ 修改/etc/environment,比如:sudo gedit /etc/environment ,然后添加下行红包部分:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/book",然后重启系统或重新登录。

b. 永久设置之方法2,只对当前用户有效:

​ 修改~/.bashrc,在行尾添加或修改:export PATH=$PATH:/home/book,然后重启系统或重新登录。

c. 临时设置:

​ 在终端执行以下命令,这只对当前终端有效:export PATH=$PATH:/home/book

Linux 常用命令

基础概念

  • 绝对路径和相对路径
    • /home/book 是绝对路径
    • 相对路径一般以.和..来构成

文件夹操作 - 切换、罗列、创建、删除

pwd: print working directory

cd : change directory

  • cd ~切换到当前用户的家目录
  • cd . 切换到当前路径
  • cd .. 切换到上一级路径
  • cd ../.. 切换到上上级路径(其中:在linux中路径分隔符为斜杠/)
  • cd - 切换到上一次的路径

ls:List 列出目录内容

  • -l(long的缩写),显示目录下文件的更详细的信息(文件权限、文件最后修改时间、文件大小)
  • -a(all的缩写),显示了隐藏文件
  • -h(human-able的缩写),将文件大小以K(KB)、M(MB)、G(GB)来表示

image-20220714175109402
image-20220714175109402

mkdir:make directory 创建目录

  • mkdir -p 父目录/子目录
    mkdir -p dir1/dir2
    -p(parents的缩写)
    连续创建多级目录(父目录和子目录),如果父目录不存在,则需要加入-p参数。

rmdir:remove directory

  • 注意:rmdir不能删除非空目录(非空目录:该目录下面有子目录或者文件)

文件操作 - 新建、移动、复制、删除

touch:新建文件

  • 同一目录无法创建同名的文件
  • linux的文件名是区分大小写的,如file1和File1是不同文件。
    这一点跟windows不同

mv(move的缩写):修改文件(目录)名、移动路径

  • mv 旧文件名 新文件名 ====>修改文件名
    如:mv file1 filea将当前目录的文件file1改名为filea
  • mv 旧目录名 新目录名 ====>修改目录名
    如:mv dir1 dira将当前目录下的目录dir1改为dira
  • mv 文件名 目录名 ====>移动路径
    如:mv filea dira将当前目录下filea移动到dira子目录
    如:mv filea ~ 将当前目录下filea移动家目录
    如:mv ~/filea ..将家目录下的fila移动到上一个路径

cp(copy的缩写):复制文件(目录)

  • cp 源文件名 目标文件名
    如:cp File1 file2将当前目录下的文件File1拷贝成file2
  • cp 源文件名 目标目录名
    如:cp file2 dira/将当前目录下的文件file2拷贝到dira子目录
  • cp 源目录名 目标目录名
    cp -r dira dirb复制dira目录下的所有内容到dirb
    其中,-r参数时递归复制
    cp -i file2 dira如果dira目录下面有同名的file2,加入-i参数就会
    要求你确认是否覆盖同名的文件

rm(remove的缩写):删除文件(目录)

  • -i(interactive(交互)的缩写),删除文件(目录)之前,要求你确认是否同意删除
  • -r(recursive(递归)的缩写),递归删除指定目录下的子目录和文件
  • -f(force(强制)的缩写),强制删除

查看和编辑文件 - cat、gedit 和 vi

cat 查看文件内容
cat file1 将file1的内容打印到标准输出中(默认标准标准输出指向终端)
cat file1 file2 将file1和file2的内容串联并依次全部打印到标准输出中
cat -n file1 显示内容并在内容前显示行号。
类似的查看命令:more、less、head、tail等后面讲解

gedit图形应用程序的编辑器
vi 编辑器

帮助信息 - man、info、--help

man、info、--help

序号 方式 含义
1 --help 提供命令帮助信息
2 man 提供命令、API、概念、配置文件等帮助信息
3 info 和man有很多交集,能更完整GUN****工具

image-20220715104314445
image-20220715104314445

man使用的最多

  • man man 查看man手册的说明
  • man ls 当没有指定使用那一页,默认使用第1页
  • man 1 ls
  • man 1 gcc gcc是一个应用程序,在linux中一般使用gcc编译器来编译c/c++语言的程
  • open/write/read/close等等都是系统调用
  • man 2 open 查看系统调用open的man手册说明

注意1:man手册的9册内容的侧重点,最好记一下。

section 名称 说明
1 用户命令 用户可操作的命令
2 系统调用 内核提供的函数(查头文件)
3 库调用 常用的函数库
4 特殊文件 设备文件(/dev下)和特殊文件
5 文件格式和约定 对一些文件进行解释
6 游戏程序 游戏程序
7 杂项 包括宏包和约定等
8 系统管理员使用的管理命令 通常只有系统管理员可以使用
9 内核相关 Linux内核相关文件

注意2:man 手册提供的信息种类

段名 主要内容
NAME 命令、数据名称的简短说明
SYNOPSIS 简短的命令语法说明
DESCRIPTION 最为权威和全面的使用说明
EXAMPLES 使用本命令或数据的一些参考示例
AUTHOR 作者
REPORTING BUGS 报告相关的错误信息
COPYRIGHT 版权
SEE ALSO 与本命令或数据相关的其他参考说明

info

  • info ls

    img
    img

--help

  • 如 ls --help

查找文件 Find

find 目的:查找符合条件的文件

格式: find 目录名 选项 查找条件

  • find /work/001_linux_basic/dira/ -name "test1.txt"

  • find /work/001_linux_basic/dira/ -name "*.txt" ,查找指定目录下面所以.txt结尾的文件

  • find /work/001_linux_basic -name "dira" ,查找指定目录下面是否存在dira这个目录

注意:

  1. 如果没有指定查找目录,则为当前目录。
    find . -name "*.txt" 其中.代表当前路径
    find -name "*.txt"
    都是一样的功能
  2. find还有一些高级的用法,如查找最近几天(几个小时)之内(之前)有变动的文件
    find /home -mtime -2 查找/home目录下两天内有变动的文件

查找字符串 - grep

grep
目的:使用grep命令来查找文件中符合条件的字符串
格式:grep [选项] [查找模式] [文件名]

  • grep -rn "字符串" 文件名

    • r(recursive):递归查找
    • n(number):显示目标位置的行号
    • 字符串:要查找的字符串
    • 文件名:要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录
  • grep -n "abc" test1.txt 在test1.txt中查找字符串abc

  • grep -rn "abc" * 在当前目录递归查找字符串abc

查看文件类型 - file

目的:识别文件类型
格式: file 文件名

  • file ~/.bashrc 为ASCII 编码的text类型
  • file ~/.vimrc 为UTF-8 Unicode 编码的text类型
  • file ~/Pictures/* 如图形文件JPEG/PNG/BMP格式
  • file ~/100ask/ 为directory表明这是一个目录
  • file /bin/pwd 出现 ELF 64-bit LSB executable,即为ELF格式的可执行文件
  • file /dev/* 出现character special(字符设备文件)、 block special(块设备文件)等

which和whereis查找命令所在位置

which和whereis
目的:查找命令或应用程序的所在位置
格式:which 命令名/应用程序名

  • which pwd 定位到/bin/pwd
  • which gcc 定位到/usr/bin/gcc
  • whereis pwd查找到可执行程序的位置/bin/pwd和手册页的位置/usr/share/man/man1/pwd.1.gz
whereis pwd
pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz

gzip和bzip2单个文件的压缩和解压

单个文件的压缩(解压)使用gzip 和bzip2
多个文件和目录使用tar

gzip的常用选项

  • -l(list) 列出压缩文件的内容
  • -k(keep) 在压缩或解压时,保留输入文件。
  • -d(decompress) 将压缩文件进行解压缩

1. 查看

​ gzip -l 压缩文件名
​ 比如:gzip -l pwd.1.gz

2. 解压

​ gzip -kd 压缩文件名
​ 比如:gzip -kd pwd.1.gz
​ 该压缩文件是以.gz结尾的单个文件

3. 压缩

​ gzip -k 源文件名
​ 比如:gzip -k mypwd.1
​ 得到了一个.gz结尾的压缩文件

注意:
1)如果gzip不加任何选项,此时为压缩,压缩完该文件会生成后缀为.gz的压缩文件,
并删除原有的文件,所以说,推荐使用gzip -k 来压缩源文件。
2)相同的文件内容,如果文件名不同,压缩后的大小也不同。
3)gzip只能压缩单个文件,不能压缩目录。

bzip2来压缩单个文件

bzip2的常用选项

  • -k(keep) 在压缩或解压时,保留输入文件。
  • -d(decompress) 将压缩文件进行解压缩

1. 压缩

​ bzip2 -k 源文件名
​ 比如:bzip2 -k mypwd.1
​ 得到一个.bz2后缀的压缩文件

2. 解压

​ bzip2 -kd 压缩文件名
​ bzip2 -kd mypwd.1.bz2

注意:
1)如果bzip2不加任何选项,此时为压缩,压缩完该文件会生成后缀为.bz2的压缩文件,
并删除原有的文件,所以说,推荐使用bzip2 -k 来压缩源文件。
2)bzip2只能压缩单个文件,不能压缩目录。

tar多个文件和目录的压缩和解压

tar常用选项

  • -c(create) 表示创建用来生成文件包
  • -x:表示提取,从文件包中提取文件
  • -t可以查看压缩的文件。
  • -z使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
  • -j使用bzip2方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
  • -v(verbose)详细报告tar处理的信息
  • -f(file)表示文件,后面接着一个文件名。
  • -C <指定目录> 解压到指定目录

1.tar打包、gzip压缩

1)压缩
tar -czvf 压缩文件名 目录名
如:tar czvf dira.tar.gz dira

注意:
tar -czvf与tar czvf是一样的效果,所以说,后面统一取消-。

2)查看
tar tvf 压缩文件名
如:tar tvf dira.tar.gz

3)解压
tar xzvf 压缩文件名
tar xzvf 压缩文件名 -C 指定目录
如:tar xzvf dira.tar.gz 解压到当前目录
如:tar xzvf dira.tar.gz -C /home/book 解压到/home/book

2.tar打包、bzip2压缩

1)压缩
tar cjvf 压缩文件名 目录名
如:tar cjvf dira.tar.bz2 dira

2)查看
tar tvf 压缩文件名
如:tar tvf dira.tar.bz2

3)解压
tar xjvf 压缩文件名
tar xjvf 压缩文件名 -C 指定目录
如:tar xjvf dira.tar.bz2 解压到当前目录
如:tar xjvf dira.tar.bz2 -C /home/book 解压到/home/book

posted @ 2022-07-19 18:35  Oddpage  阅读(61)  评论(0编辑  收藏  举报