『Linux基础

这篇笔记包含以下知识点:

  1. 几个概念的理解:Linux命令,控制台,终端, 终端提示符
  2. 对文件目录的操作的相关命令: 切换目录,列出目录下的文件等
  3. 对文件的操作的相关命令: 创建,删除,复制,修改,移动, 查找
  4. 对磁盘管理,建立链接的相关命令
  5. 文本搜索,归档, 压缩,解压的相关命令
  6. 其他一些常用命令, 对操作系统的一些常用命令
linux命令

linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。

控制台(console)

控制台(console)是我们通常见到的使用字符操作界面的人机接口,例如dos。
我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。

终端(Terminal)

终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。

  • 有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。

终端提示符

  • windows: C:Userspc-laowang>
  • linux: python@ubuntu:/opt$
    • python: 用户名
    • ubuntu: 主机名( hostname)
    • /opt: 路径
    • $ : 用户类型
      • $ :代表普通用户
      • #: 超级用户

Linux命令

  • 在Linux中,我们可以在终端中通过命令去执行操作。
  • 近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。
  • 可以说不会命令,就不算会 Linux。
  • 在职场中,大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成。如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等
  • Linux 发行版本的命令大概有 200 多个,这里只介绍比较重要和使用频率最多的命令

命令的基本格式

  • 终端命令格式: command [-options] [parameter]
    • command:命令名,相应功能的英文单词或单词的缩写
    • [-options]:选项,可用来对命令进行控制,也可以省略
    • [] 代表可选
    • parameter:传给命令的参数,可以是 零个、一个 或者 多个
  • 例:详细显示 /opt目录下边的文件列表信息
    • ls -l /opt

1. 查阅命令帮助信息

  • 通过这几个命令你可以查看其他命令的介绍,知道其他命令的介绍和用法。
命令 说明
man 获取Linux帮助手册
man-f 查看所有的同名的手册(作用不同方面的),再查看特定的手册。
info info从首页开始浏览帮助手册,也可以浏览特定命令的帮助手册
—help 输出最简单有用的介绍。

示例:

示例命令 说明
man date 看到date命令的帮助手册,里面有date命令的介绍和详细的用法。

2.列出当前目录下的文件 ls

  • ls 是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。
命令 说明
ls 列出目前工作目录所含的文件及子目录
ls -a 显示所有文件及目录(ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)。
ls -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出。
ls -r 将文件以相反次序显示(原定依英文字母次序)。
ls -t 将文件依建立时间之先后次序列出
ls -A ls -a,但不列出"."(目前目录)及".."(父目录)。
ls -F 在列出的文件名称后加一符号;例如可执行档则加"*",目录则加“/“。
ls -R 若目录下有文件,则其以下的文件亦皆依序列出。

3.切换当前工作目录 cd

  • cd用于切换当前工作目录。
  • cd后面可跟绝对路径,也可以跟相对路径
    • "~"表示为home目录的意思
    • "."则是表示目前所在的目录
    • ".."则表示目前目录位置的上一层目录。
  • pwd用于显示所在的工作目录的绝对路径名称。
命令 说明
cd 切换到当前用户根目录,默认[/home/用户名称/]
cd . 切换到当前目录
cd .. 切换到上一级目录
cd / 返回操作系统跟目录,默认:[/]
cd direction 进入某个指定的文件目录
cd - 可进入上次所在的目录.

[注意]:如果路径是从根路径开始的,则路径的前面需要加上“ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加 "/"。

4. 操作文件的相关命令

4.1 创建和删除文件 mkdir,touch,rm
命令 说明
touch 创建一个空的文件
mkdir 用于新建文件夹
mkdir -p 递归创建目录,当父目录存在时忽略,若不存在则建立,用此参数可建立多级文件夹。
rmdir 删除空文件夹
rmdir -p 删除子目录,如果子目录删除之后,父目录为空,则父目录亦删除。
rm 删除文件或目录。
rm -i 以进行交互式方式执行,删除前逐一询问。
rm -f 直接强制删除,无需逐一询问(包括只读文件)。会忽略不存在的文件
`rm -r 删除目录及目录下所有文件。递归地删除目录下的内容,删除文件夹时必须加此选型
4.2 复制文件或目录 cp
  • cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。
命令 说明
cp 复制文件或目录。
cp -a 复制目录,它保留链接、文件属性,并复制目录下的所有内容。
cp -d 复制文件时保留链接(类似快捷方式)。
cp -f 覆盖已经存在的目标文件而不给出提示。
cp -i 在覆盖目标文件之前给出提示,要求用户确认是否覆盖
cp -p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
cp -r 若源文件为目录文件,则复制该目录下的所有子目录和文件。
cp -l 不复制文件,只生成链接文件。
cp -v 显示拷贝进度
4.3 修改和移动文件或目录 mv
  • 用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。
命令 说明
mv 修改文件或目录名,移动文件或目录到其他位置。
mv -i 若指定目录已有同名文件,则先询问是否覆盖旧文件。
mv -f 覆盖某已有的目标文件时不给任何指示。
mv -v 显示移动进度
4.4 查看文件 cat
  • cat可以查看当前目录下的文件,也可以查看绝对路径下的文件
  • 查看内容时,在信息过长无法在一屏上显示时,使用cat命令会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
命令 说明
cat 查看文件cat XXX.txt
more 逐行显示内容按ctrl+C退出。
more +line 从指定行号开始显示。例, more +20 从第20行开始查看
less 上下滚动查看内容按Q退出。
less +line 从指定行号开始显示。
4.5 查找文件 find
  • find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件。

常用用法:

命令 含义
find ./ -name '*.sh' 查找当前目录下所有后缀为.sh的文件
find ./ -name "[A-Z]*" 查找当前目录下所有以大写字母开头的文件
find /tmp -size 2M 查找在/tmp 目录下等于2M的文件
find /tmp -size +2M 查找在/tmp 目录下大于2M的文件
find /tmp -size -2M 查找在/tmp 目录下小于2M的文件
find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件
find ./ -perm 777 查找当前目录下权限为 777 的文件或目录

问题1:查找test目录中扩展名是py的文件
答: find ./ -name '*.py'

问题2:查找test目录中c或者s开头的文件
答: find ./ -name '[cs]*'

问题3:查找test目录大于2M的文件
答:
find ./ -size +2M
ls -lh

问题4:查找出test目录中属主用户有读写权限,同组用户及其他用户只有读权限的文件
答: find ./ -perm 644

问题5:查找出test目录中属主用户有读写执行权限,同组用户及其他用户只有读和执行权限的文件
答: find ./ -perm 755

5. 对系统的相关操作

命令 说明
reboot 重启系统
poweroff 关机
shutdown –r now 重新启动操作系统,shutdown会给别的用户提示
shutdown -h now 立刻关机,其中now相当于时间为0的状态
shutdown -h 20:25 系统在今天的20:25 会关机
shutdown -h +10 系统再过十分钟后自动关机
`ping 测试网络连通状况,会向目标机器发送数据包来测试是否连通,是否延时

6. 其他一些常用的命令

命令 说明
clear 清屏. 清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + L
alias 设置指令的别名。仅输入alias,则可列出目前所有的别名设置。
unalias 用于删除别名。
unalias -a 删除全部的别名
tree 以树形的方式查看文件列表,默认ubuntu是没有安装该命令,第一次使用需要安装tree命令
history 查看使用过的命令
> >> Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
> 比如: ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
>> 比如: ls >> test1.txt(test.txt 如果不存在,则创建,存在则追加新内容到文件尾部)
| 管道:一个命令的输出可以通过管道做为另一个命令的输入。“| ”的左右分为两端,左端塞东西(写),右端取东西(读)。

7. 磁盘管理的相关命令 df,du,fdisk

  • 磁盘的管理是Linux上很重要的内容,磁盘管理的好坏会影响到系统的整体性能。
  • fdisk是Linux下功能是极其强大的磁盘管理命令
命令 说明
df 检查文件系统的磁盘空间占用情况。
df -h 将容量结果以易读的容量格式显示出来
df -aT 将系统内的所有特殊文件格式及名称都列出来。
df -h /文件夹名 将该文件夹底下的可用的磁盘容量以易读的容量格式显示。
du 查看对文件和目录磁盘使用的空间,全部都会列出来,包括隐藏文件的目录。
du -a 将文件的容量也列出来。
du -sm /文件夹 检查根目录底下每个目录所占用的容量。
fdisk 磁盘分区表操作工具

Q: du和df的区别在哪?
区别在于du这个命令其实会直接到文件系统内去搜寻所有的文件数据。

8.建立链接文件:ln

  • Linux链接文件类似于Windows下的快捷方式。
  • 链接文件分为软链接和硬链接。
  • 使用格式:
    • 软连接格式: ln -s 源文件 链接文件
    • 硬链接格式: ln 源文件 链接文件
  • 提示:如果是在目标文件所在目录以外的目录创建软链接,那么软链接的目标文件路径写绝对路径

Q:软链接与硬链接相同点与区别?

  1. 软链接与硬链接最终都是指向同一个文件的
  2. 当源文件名删除, 软链接变成无效链接,而硬链接还可以打开源文件的内容
  3. 文件详细列表显示时, 软链接的文件类型是 l,而硬链接是 -
  4. 软连接可以链接文件和目录,而硬链接只能链接文件

Q:链接与复制的区别?
链接与复制就好比,复印文件,复制是多了一份, 而链接,不管软还是硬,都只有一份文件

9.文本搜索 grep

Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

  • grep一般格式为:
    • grep [-选项] ‘搜索内容串’ 文件名
  • 在grep命令中输入字符串参数时,最好引号或双引号括起来。
    • grep 'a' 1.txt
  • grep搜索内容串可以是正则表达式。

常用选项说明:

选项 含义
-v 显示不包含匹配文本的所有行(相当于求反)
-n 显示匹配行及行号
-i 忽略大小写

问题1: 把家目录中的文件信息写入桌面的home.txt中, 并且查找D字符

  1. ls ~ >home.txt
  2. grep 'D' home.txt
  3. grep - i 'D' home.txt
  4. grep - in 'D' home.txt
  5. grep - inv 'D' home.txt

问题2: 查询mysql程序是否运行(拓展)
ps : 查看当前运行的进程 ,-aux: 以bsd的格式显示内容
命令: ps -aux | grep 'mysql'

10.归档管理:tar

  • 计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
  • tar使用格式:
    • tar [选项] 打包文件名 文件
  • tar命令很特殊,其选项前面可以使用“-”,也可以不使用。
  • 除了-f需要放在选项的最后,其它选项的顺序任意。

常用选项:

选项 含义
-c 生成档案文件,创建打包文件
-v 列出归档解档的详细过程,显示进度
-f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
-t 列出档案中包含的文件
-x 解开档案文件

问题1: 对test目录下的所有文件打包成my.tar 文件
答: tar -cvf my.tar *

问题2: 对my.tar 文件进行拆包
答: tar -xvf my.tar

问题3: 对test目录下的所有文件打包且以gzip格式压缩 成 my.tar.gz文件
答:tar -czvf my.tar.gz *

问题4: 对my.tar.gz 解压及拆包
答: tar -xzvf my.tar.gz

问题5: 对test目录下的所有文件打包且以bzip2格式压缩 成 my.tar.bz2文件
答: tar -cjvf my.tar.bz2 *

问题6: 对my.tar.bz2 解压及拆包 到桌面的test2目录中
答:
mkdir ../test2
tar -xjvf my.tar.bz2 -C ../test2

11.文件压缩解压:gzip

  • tar与gzip命令结合使用实现文件打包、压缩。
  • tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
  • gzip使用格式如下:
    • gzip [选项] 被压缩文件

常用选项:

选项 含义
-d 解压
-r 压缩所有子目录
  • tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。

  • 压缩用法:

    • tar cvzf 压缩包包名 文件1 文件2 ...
  • 示例:

    • 将当前路径下的所有文件以及文件夹打包并压缩到test.tar.gz文件中
    • tar -zcvf test.tar.gz *
选项 含义
-z 指定压缩包的格式为:file.tar.gz
  • 解压用法:
    • tar zxvf 压缩包包名
  • 解压示例:
    • 解压到当前路径下
    • tar -zxvf text.tar.gz
选项 含义
-z 指定压缩包的格式为:file.tar.gz
-C (大写字母“C”),解压到指定目录

12.文件压缩解压:bzip2(了解)

  • tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。
  • tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2。
  • 在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。
  • 压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
  • 解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)

13. 文件压缩解压: zip、unzip(了解)

  • 通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
  • 压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
  • 解压文件:unzip -d 解压后目录文件 压缩文件

14.查看命令位置:which

  • which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。
  • which指令会在环境变量 PATH 设置的目录里查找符合条件的文件。
  • 使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
    • 示例: which Python

问题:分别查看ls和shutdown两个命令在哪个目录中
答:
python@ubuntu:~/Desktop/test2$ which ls
/bin/ls
python@ubuntu:~/Desktop/test2$ which shutdown
/sbin/shutdown
python@ubuntu:~/Desktop/test2$

原文地址:https://www.cnblogs.com/gybb/p/9952305.html