• 此篇文章为近期整理的Linux基础内容,较多较杂,阅读可能会稍微花费一点时间
  • 前九章相关文字叙述较多,第十章为上百条命令的汇总,有需要可直接移至文末。

一、操作系统

(一)操作系统的含义

  • Operation System, OS
  • 没有安装操作系统的计算机,通常被称为裸机
  • 如果想在裸机上运行编写的程序,就必须使用机器语言书写程序
  • 如果在计算机上安装操作系统,就可以在操作系统上安装支持的高级语言环境,从而用更易编写的高级语言开发程序

(二)操作系统的作用

  • 是现代计算机系统中 最基本和最重要 的系统软件
  • 配置在计算机硬件上的第一层软件,是对硬件系统的首次扩展
  • 主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,便于使用
  • 其他的诸如编译程序、数据库管理系统,以及大量应用软件,都直接依赖于操作系统的支持

(三)主流操作系统

  • 桌面操作系统
  • 服务器操作系统
  • 嵌入式操作系统
  • 移动设备操作系统

(1)桌面操作系统

  • Windows
    用户群体大,应用软件丰富
  • macOS
    适合开发人员
  • Linux
    应用软件较少

(2)服务器操作系统

  • Linux
    安全、稳定、免费
    占有率高
  • Windows Server
    付费
    占有率低

(3)嵌入式操作系统

  • Linux

(4)移动设备操作系统

  • iOS
  • Android (基于 Linux)

(四)虚拟机

虚拟机(Virtual Machine)指通过软件模拟具有硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统

  • 虚拟系统通过生成现有操作系统的全新虚拟镜像,具有与真实操作系统完全一样的功能
  • 进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响
  • 而且能够在现有系统与虚拟镜像之间灵活切换

(五)Linux内核及发行版

(1)Linux内核版本

  • 内核(kernel)是系统的心脏,是运行程序和管理硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层

    • 稳定版: 具有工业级强度,可以广泛应用和部署。新的稳定版相对于较旧稳定版只是修正一些 bug 或加入一些新的驱动程序
    • 开发版: 由于要试验各种解决方案,所以更新变化很快
  • 内核源码网址:http://www.kernel.org
    • 来自全世界对 Linux 源码的修改最终都会汇总到这个网站,由 Linus 领导的开源社区对其进行甄别和修改,最终决定是否进入到 Linux 主线内核源码中

(2)Linux发行版本

  • Linux 发行版(或GNU/Linux发行版)通常包含了桌面环境、办公套件、媒体播放器、数据库等应用软件
  • 常见的发行版本如下:
    • Ubuntu
    • Redhat
    • Fedora
    • CentOS
    • openSUSE
    • Linux Mint
    • Debian
    • Manjaro
    • Mageia
    • Arch

(六)Linux应用领域

(1)服务器领域

  • Linux 在服务器领域的应用是其重要分支
  • Linux 免费、稳定、高效等特点在这里得到了很好的体现

(2)嵌入式领域

  • 近些年来 Linux 在嵌入式领域的应用得到了飞速提高
  • Linux 运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百 KB 等特点,使其近些年来在嵌入式领域的应用得到极大提高
    • 主要应用:机顶盒数字电视网络电话程控交换机PDA

(3)个人桌面领域

  • 此领域是传统 Linux 应用最薄弱的环节
  • 传统 Linux 由于界面简单、操作复杂、应用软件少等缺点,一直被 Windows 所压制
  • 近些年来随着 UbuntuFedora 等优秀桌面环境的兴起,同时各大硬件厂商支持力度加大,Linux 在个人桌面领域的占有率在逐渐提高

二、Linux终端命令格式

(一)终端命令格式

command [-options] [parameter]

  • command:命令名,相应功能的英文单词或单词的缩写
  • [-options]:选项,可用来对命令进行控制,也可以省略
  • parameter:传给命令的参数,可以是 零个一个 或者 多个

(二)命令帮助信息

(1)–help

command --help

  • 显示command命令的帮助信息

(2)man

man command

  • 查阅command命令的使用手册
  • man是manual的缩写,是Linux提供的一个手册,包含了绝大部分命令、函数的详细使用说明
操作键 功能
空格键 显示手册的下一屏
Enter键 滚动手册的一行
b 回滚一屏
f 前滚一屏
q 退出手册
/word 搜索word字符串

三、常用Linux命令

(一)学习原因

  • 大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,这些工作都需要通过命令来完成
  • Linux 发行版本的命令大概有 200 多个,常用的命令只有 10 多个
  • 不要尝试一次学会所有的命令,有些命令不常用的,临时遇到,临时搜索

(二)基本使用

序号 命令 对应英文 作用
01 ls list 查看当前文件夹下的内容
02 pwd print work directory 查看当前所在文件夹
03 cd [目录名] change directory 切换文件夹
04 touch [文件名] touch 如果文件不存在,新建文件
05 mkdir [目录名] make directory 创建目录
06 rm [文件名] remove 删除指定的文件名
07 clear clear 清屏

小技巧

  • ctrl + shift + = 放大终端窗口的字体显示
  • ctrl + - 缩小终端窗口的字体显示

(三)自动补全

  • 在敲出 文件目录命令 的前几个字母后,按下 tab
  • 如果输入没有歧义,系统会自动补全
  • 如果还存在其他 文件目录命令,再按一下 tab 键,系统会提示可能存在的命令
  • 光标键可在曾经使用过的命令之间来回切换
  • 若要退出选择,且不执行当前选中的命令,可以按 ctrl + c

四、其他命令

(一)查找文件

find 命令功能非常强大,通常用来在 特定的目录下 搜索 符合条件的文件

# 如果省略路径,表示在当前文件夹下查找
1.搜索目录下,文件名包含 1 的文件find [路径] -name "*1*"2.搜索目录下,所有以 .txt 为扩展名的文件find [路径] -name "*.txt"3.搜索桌面目录下,以数字 1 开头的文件find [路径] -name "1*"

(二)软链接

ln -s 被链接的源文件 链接文件

  • 建立文件的软链接,用通俗的方式讲类似于 Windows 下的快捷方式
  • 没有 -s 选项建立的是一个 硬链接文件 ,而不是软链接
  • 两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
  • 源文件要用绝对路径,不能用相对路径,方便移动链接文件后,仍能正常使用
  • 使用 ls -l 查看文件的硬链接数(硬链接–有多少种方式可以访问文件或者目录)
  • 在 Linux 中,只有文件的 硬链接数 == 0 才会被删除

(三)打包和压缩

  • 在不同操作系统中,常用的打包压缩方式是不同的

    • Windows 常用 rar
    • Mac 常用 zip
    • Linux 常用 tar.gz

(1)打包/解包

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

(2)压缩/解压缩

<1>gzip

  • targzip 命令结合可以实现文件 打包和压缩

    • tar 只负责打包文件,但不压缩
    • gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz
    • Linux 中,最常见的压缩文件格式就是 xxx.tar.gz
  • tar 命令中有一个选项 -z 可以调用 gzip,从而可以方便的实现压缩和解压缩的功能
# 压缩文件tar -zcvf 打包文件.tar.gz 被压缩的文件/路径# 解压缩文件tar -zxvf 打包文件.tar.gz# 解压缩到指定路径tar -zxvf 打包文件.tar.gz -C 目标路径

<2>bzip2

  • tarbzip2 命令结合可以实现文件 打包和压缩(用法和 gzip 一样)

    • tar 只负责打包文件,但不压缩
    • bzip2 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.bz2
  • tar 命令中有一个选项 -j 可以调用 bzip2,从而可以方便的实现压缩和解压缩的功能
# 压缩文件tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径# 解压缩文件tar -jxvf 打包文件.tar.bz2

(四)软件安装

(1)通过apt安装/卸载软件

  • apt 是 Advanced Packaging Tool,是 Linux 下的一款安装包管理工具
  • 可以在终端中方便的 安装卸载更新软件包
1.安装软件
$ sudo apt install 软件包2.卸载软件
$ sudo apt remove 软件名3.更新已安装的包
$ sudo apt upgrade

(2)配置软件源

  • 如果希望更加快速安装软件,可以设置镜像源,选择访问网速更快的服务器,来提供软件下载/安装服务
  • 更换服务器之后,有相对较长时间的更新过程,需要耐心等待。更新完成后,再安装软件都会从新设置的服务器下载软件
  • 所谓镜像源,就是所有服务器的内容是相同的(镜像),但是所在位置不同,国内服务器通常速度会更快一些

五、文件和目录

(一)单用户操作系统和多用户操作系统

  • 单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源

    • Windows XP 之前的版本都是单用户操作系统
  • 多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全部硬件和软件资源
    • UnixLinux 的设计初衷就是多用户操作系统

(二)Windows和Linux文件系统区别

(1)Windows下的文件系统

  • Windows 下,打开 “计算机”,看到的是一个个驱动器盘符
  • 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形

(2)Linux下的文件系统

  • Linux 下,看不到这些驱动器盘符,我们看到的是文件夹(目录)
  • Ubuntu 没有盘符这个概念,只有一个根目录 /,所有文件都在它下面

(3)用户目录

位于 /home/user,称之为用户工作目录或家目录

(4)Linux主要目录速查表

  • /根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录

    • 输入 /home,其实是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录
  • /bin、/usr/bin可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等
  • /boot放置 linux 系统启动时用到的文件,如 linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub
  • /dev存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用挂载光驱mount /dev/cdrom /mnt
  • /etc系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有
    • /etc/inittab
    • /etc/fstab
    • /etc/init.d
    • /etc/X11
    • /etc/sysconfig
    • /etc/xinetd.d
  • /home系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下
    • ~ 表示当前用户的家目录
    • ~edu 表示用户 edu 的家目录
  • /lib、/usr/lib、/usr/local/lib系统使用的函数库目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
  • /lost+fount系统异常产生错误时,会将一些遗失的片段放置于此目录下
  • /mnt: /media光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,可以选择任意位置挂载
  • /opt给主机额外安装软件所放置的目录
  • /proc此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有
    • /proc/cpuinfo
    • /proc/interrupts
    • /proc/dma
    • /proc/ioports
    • /proc/net/
  • /root系统管理员root的家目录
  • /sbin、/usr/sbin、/usr/local/sbin放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能"查看"而不能设置和使用
  • /tmp一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
  • /srv服务启动后需要访问的数据目录,如 www 服务需要访问的网页数据放在 /srv/www 内
  • /usr应用程序存放目录
    • /usr/bin:存放应用程序
    • /usr/share:存放共享数据
    • /usr/lib:存放不能直接运行的,却是程序运行所必需的一些函数库文件
    • /usr/local:存放软件升级包
    • /usr/share/doc:系统说明文件存放目录
    • /usr/share/man:程序说明文件存放目录
  • /var放置系统执行过程中经常变化的文件
    • /var/log:随时更改的日志文件
    • /var/spool/mail:邮件存放的目录
    • /var/run:程序或服务启动后,其 PID 存放的目录

六、文件和目录常用命令

(一)查看目录内容

  • ls 是英文单词 list 简写,功能为列出目录内容,类似于 DOS 下的 dir 命令
  • Linux 下文件和目录的特点
    • Linux 文件 或者 目录 名称最长可以有 256 个字符
    • . 开头的文件为隐藏文件,需要用 -a参数才能显示
    • . 代表当前目录
    • .. 代表上一级目录

ls常用选项

参数 含义
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小

ls通配符的使用

通配符 含义
* 代表任意个数字符
? 代表任意一个字符,至少 1 个
[] 表示可以匹配字符组中的任一一个
[abc] 匹配 a、b、c 中的任意一个
[a-f] 匹配从 a 到 f 范围内的的任意一个字符

计算机中文件大小的表示方式

单位 英文 含义
字节 B(Byte) 在计算机中作为一个数字单元,一般为 8 位二进制数
K(Kibibyte) 1 KB = 1024 B,千字节 (1024 = 2 ** 10)
M(Mebibyte) 1 MB = 1024 KB,百万字节
千兆 G(Gigabyte) 1 GB = 1024 MB,十亿字节,千兆字节
T(Terabyte) 1 TB = 1024 GB,万亿字节,太字节
P(Petabyte) 1 PB = 1024 TB,千万亿字节,拍字节
E(Exabyte) 1 EB = 1024 PB,百亿亿字节,艾字节
Z(Zettabyte) 1 ZB = 1024 EB,十万亿亿字节,泽字节
Y(Yottabyte) 1 YB = 1024 ZB,一亿亿亿字节,尧字节

(二)切换目录

  • cd 是英文单词 change directory 简写,功能为更改当前工作目录
  • 相对路径和绝对路径
    • 相对路径 在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
    • 绝对路径 在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置
命令 含义
cd ~ 切换到当前用户的主目录(/home/用户目录)
cd . 保持在当前目录不变
cd … 切换到上级目录
cd - 可以在最近两次工作目录之间来回切换

(三)创建和删除操作

  • touch 创建文件或修改文件时间

    • 如果文件 不存在,则创建一个空白文件
    • 如果文件 已经存在,则修改文件的末次修改日期
  • mkdir 创建一个新目录
    • -p 递归创建目录
    • 新目录 不能与当前目录中 已有目录或文件 同名
  • rm 删除文件或目录
    • -f 强制删除,忽略不存在的文件,无需提示
    • -r 递归地删除目录下的内容,删除文件夹 时必须加此参数
    • 使用 rm 命令要小心,因为文件删除后不能恢复

(四)拷贝和移动文件

序号 命令 对应英文 作用
01 tree [目录名] tree 以树状图列出文件目录结构
02 cp 源文件 目标文件 copy 复制文件或者目录
03 mv 源文件 目标文件 move 移动文件或者目录/文件或者目录重命名

(1)tree

  • tree 命令可以以树状图列出文件目录结构
  • -d 只显示目录

(2)cp

  • cp 命令可以将 文件目录 复制到另一个 文件目录 中,相当于 DOS 下的 copy 命令
  • -i 覆盖文件前提示
  • -r 若源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名

(3)mv

  • mv 命令可以 移动 文件目录,也可以给 文件或目录重命名
  • -i 覆盖文件前提示

(五)查看文件内容

序号 命令 对应英文 作用
01 cat 文件名 concatenate 查看文件内容、创建文件、文件合并、追加文件内容等
02 more 文件名 more 分屏显示文件内容
03 grep 搜索文本 文件名 grep 搜索文本文件内容

(1)cat

  • cat 命令可以 查看文件内容创建文件文件合并追加文件内容
  • cat 会一次显示所有的内容,适合 查看内容较少 的文本文件
  • -b 对非空输出行进行编号
  • -n 对输出的包括空白行在内所有行进行编号

(2)more

  • more 命令可以分屏显示文件内容,每次只显示一页内容
  • 适合于 查看内容较多的文本文件

使用more的操作键

操作键 功能
空格键 显示手册页的下一屏
Enter 键 一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 退出
/word 搜索 word 字符串

(3)grep

  • Linux 系统中 grep 命令是一种强大的文本搜索工具
  • grep允许对文本文件进行 模式查找,所谓模式查找,又称为正则表达式
  • -n 显示匹配行及行号
  • -v 显示不包含匹配文本的所有行(相当于求反)
  • -i 忽略大小写

常用的两种模式查找

参数 含义
^a 行首,搜寻以 a 开头的行
ke$ 行尾,搜寻以 ke 结束的行

(六)其他

(1)echo

  • echo 文字内容
  • echo 会在终端中显示参数指定的文字内容,通常会和 重定向 联合使用

(2)重定向

  • Linux 允许将命令执行结果 重定向到一个 文件
  • 将本应显示在终端上的内容 输出/追加指定文件中
  • > 表示输出,会覆盖文件原有的内容
  • >> 表示追加,会将内容追加到已有文件的末尾

(3)管道

  • Linux 允许将 一个命令的输出 可以通过管道 作为 另一个命令的输入
  • | 的左右分为两端,左端塞东西(写),右端取东西(读)
  • 常用的管道命令
    • more:分屏显示内容
    • grep:在命令执行结果的基础上查询指定的文本

七、系统信息相关命令

(一)时间和日期

命令 作用
date 查看系统时间
cal calendar 查看日历,-y 选项可以查看一年的日历

(二)磁盘信息

命令 作用
df -h disk free 显示磁盘剩余空间
du -h [目录名] disk usage 显示目录下的文件大小

(三)进程信息

  • ps 默认只会显示当前用户通过终端启动的应用程序
  • 使用 kill 命令时,最好只终止由当前用户开启的进程,而不要终止 root 身份开启的进程,否则可能导致系统崩溃
  • 要退出 top 可以直接输入 q
命令 作用
ps aux process status 查看进程的详细状况
top 动态显示运行中的进程并且排序
kill [-9] 进程代号 终止指定代号的进程,-9 表示强行终止

ps选项说明

选项 含义
a 显示终端上的所有进程,包括其他用户的进程
u 显示进程的详细状态
x 显示没有控制终端的进程

八、用户权限相关命令

(一)用户和权限的基本概念

(1)基本概念

  • 用户 是 Linux 系统工作中重要的一环,用户管理包括 用户 管理
  • 在 Linux 中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限
  • 在 Linux 中,可以指定 每一个用户 针对 不同的文件或者目录不同权限
  • 在实际应用中,可以预先针对 设置好权限,然后 将不同的用户添加到对应的组中,从而不用依次为每一个用户设置权限

文件/目录 的权限包括

权限 英文 缩写 数字代号
read r 4
write w 2
执行 excute x 1

(2)ls -l扩展

  • ls -l 可以查看文件夹下文件的详细信息,从左到右依次是:

    • 权限,第 1 个字符如果是 d 表示目录
    • 硬链接数,通俗地讲,就是有多少种方式,可以访问到当前目录/文件
    • 拥有者,家目录下 文件/目录 的拥有者通常都是当前用户
    • ,在 Linux 中,很多时候,会出现组名和用户名相同的情况
    • 大小
    • 时间
    • 名称

(3)chmod简单使用

  • chmod 可以修改 用户/组文件/目录 的权限
  • 命令格式:chmod +/-rwx 文件名|目录名
  • 以上方式会一次性修改 拥有者 / 权限

(4)超级用户

  • Linux 系统中的 root 账号通常 用于系统的维护和管理,对操作系统的所有资源 具有所有访问权限
  • 在大多数版本的 Linux 中,都不推荐直接使用 root 账号登录系统
  • 在 Linux 安装的过程中,系统会自动创建一个用户账号,而这个默认的用户就称为标准用户
  • sudo
    • susubstitute user 的缩写,表示 使用另一个用户的身份
    • sudo 命令用来以其他身份执行命令,预设身份为 root
    • 用户使用 sudo 时,必须先输入密码,之后有 5 分钟的有效期限,超过期限必须重新输入密码
    • 若未经授权的用户企图使用 sudo,则会发出警告邮件给管理员

(二)用户管理终端命令

创建用户 / 删除用户 / 修改其他用户密码 的终端命令都需要通过 sudo 执行

(1)创建用户/设置密码/删除用户

  • 创建用户时,如果忘记添加 -m 选项指定新用户的家目录 —— 最简单的方法就是删除用户,重新创建
  • 创建用户时,默认会创建一个和用户名同名的组名
  • 用户信息保存在 /etc/passwd 文件中
命令 作用 说明
useradd -m -g 组 新建用户名 添加新用户
  • -m 自动建立用户家目录
  • -g 指定用户所在的组,否则会建立一个和同名的组
passwd 用户名 设置用户密码 如果是普通用户,直接用 passwd 可以修改自己的账户密码
userdel -r 用户名 删除用户 -r 选项会自动删除用户家目录
cat /etc/passwd | grep 用户名 确认用户信息 新建用户后,用户信息会保存在 /etc/passwd 文件中

(2)查看用户信息

命令 作用
id [用户名] 查看用户 UID 和 GID 信息
who 查看当前所有登录的用户列表
whoami 查看当前登录用户的账户名
  • passwd文件

/etc/passwd 文件存放的是用户的信息,由 6 个分号组成的 7 个信息,分别是

  • 用户名
  • 密码(x,表示加密的密码)
  • UID(用户标识)
  • GID(组标识)
  • 用户全名或本地帐号
  • 家目录
  • 登录使用的 Shell,就是登录之后,使用的终端命令,ubuntu 默认是 dash
  • usermod
  • usermod 可以用来设置 用户主组附加组登录 Shell,命令格式如下:

    • 主组:通常在新建用户时指定,在 etc/passwd 的第 4 列 GID 对应的组
    • 附加组:在 etc/group 中最后一列表示该组的用户列表,用于指定 用户的附加权限
  • 设置了用户的附加组之后,需要重新登录才能生效
# 修改用户的主组(passwd中的 GID)usermod -g 组 用户名# 修改用户的附加组usermod -G 组 用户名# 修改用户登录shellusermod -s /bin/bash 用户名# 默认使用useradd添加的用户没有权限使用sudo以root身份执行命令,可用以下命令,将用户添加到sudo附加组中usermod -G sudo 用户名
  • which
  • /etc/passwd 是用于保存用户信息的文件
  • /usr/bin/passwd 是用于修改用户密码的程序
  • which 命令可以查看执行命令所在位置,例如:
which ls
# 输出
# /bin/lswhich useradd
# 输出
# /usr/sbin/useradd
  • binsbin
  • Linux 中,绝大多数可执行文件都是保存在 /bin/sbin/usr/bin/usr/sbin
  • /binbinary)是二进制执行文件目录,主要用于具体应用
  • /sbinsystem binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
  • /usr/binuser commands for applications)后期安装的一些软件
  • /usr/sbinsuper user commands for applications)超级用户的一些管理程序
  • cd 命令内置在系统内核中,没有独立文件,因此用 which 无法找到 cd 命令的位置

(3)切换用户

su 不接用户名,可以切换到 root,但是不推荐使用,因为不安全

命令 作用 说明
su - 用户名 切换用户,并且切换目录 - 可以切换到用户家目录,否则保持位置不变
exit 退出当前登录账户

(三)组管理终端命令

  • 创建组 / 删除组 的终端命令都需要通过 sudo 执行
  • 组信息保存在 /etc/group 文件中
命令 作用
groupadd 组名 添加组
groupdel 组名 删除组
cat /etc/group 确认组信息
chgrp -R 组名 文件/目录名 递归修改文件/目录的所属组

(四)修改权限终端命令

命令 作用
chown 修改拥有者
chgrp 修改组
chmod 修改权限
  • 命令格式如下:
# 修改文件|目录的拥有者chown 用户名 文件名|目录名# 递归修改文件|目录的组chgrp -R 组名 文件名|目录名# 递归修改文件权限chmod -R 755 文件名|目录名
  • chmod 设置权限时,可简单使用三个数字分别对应 拥有者其他 用户的权限
# 直接修改文件|目录的 读|写|执行 权限,但不能精确到 拥有者|组|其他chmod +/-rwx 文件名|目录名

九、远程管理常用命令

(一)关机/重启

命令 对应英文 作用
shutdown 选项 时间 shutdown 关机/重新启动
  • shutdown 命令可以 安全 关闭 或者 重新启动系统
  • 不指定选项和参数,默认表示 1 分钟之后 关闭电脑
  • 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
# 重新启动系统,now表示现在$ shutdown -r now# 立刻关机$ shutdown now# 在今天22:00关机$ shutdown 22:00# 十分钟后关机$ shutdown +10# 取消之前指定的关机计划$ shutdown -c

(二)查看或配置网卡信息

命令 对应英文 作用
ifconfig configure a network interface 查看/配置计算机当前的网卡配置信息
ping ip地址 ping 检测到目标 ip地址 的连接是否正常

(1)网卡和IP地址

  • 网卡

    • 网卡是一个专门负责网络通讯的硬件设备
    • IP 地址是设置在网卡上的地址信息
    • 电脑 比作 电话网卡 相当于 SIM 卡IP 地址 相当于 电话号码
  • IP地址
    • 每台联网的电脑上都有 IP 地址是保证电脑之间正常通讯的重要设置
    • 每台电脑的 IP 地址不能相同,否则会出现 IP 地址冲突,无法正常通讯

(2)ifcofig

  • ifconfig 可以查看/配置计算机当前的网卡配置信息
  • 计算机中可能会有一个物理网卡多个虚拟网卡,在 Linux 中物理网卡的名字通常以 ensXX 表示
  • 127.0.0.1 被称为 本地回环/环回地址,一般用来测试本机网卡是否正常
# 查看网卡配置信息$ ifconfig# 查看网卡对应的IP地址$ ifconfig | grep inet

(3)ping

  • ping 一般用于检测当前计算机到目标计算机之间的网络 是否通畅数值越大,速度越慢
  • ping 的工作原理与潜水艇的声纳相似,ping 这个命令就是取自 声纳的声音
  • 网络管理员之间也常将 ping 用作动词 —— ping 一下计算机X,看他是否开着
  • 网络上的机器都有 唯一确定的 IP 地址,我们给目标 IP 地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在
# 检测到目标主机是否连接正常$ ping IP地址# 检测本地网卡是否工作正常$ ping 127.0.0.1

(三)远程登录和复制文件

命令 对应英文 作用
ssh 用户名@ip secure shell 关机/重新启动
scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 secure copy 远程复制文件

(1)ssh

  • SSH 客户端是一种使用 Secure Shell(SSH) 协议连接到远程计算机的软件程序
  • SSH 是目前较可靠,专为远程登录会话和其他网络服务 提供安全性的协议
    • 利用 SSH 协议 可以有效防止远程管理过程中的信息泄露
    • 通过 SSH 协议 可以对所有传输的数据进行加密,也能防止 DNS 欺骗和 IP 欺骗
  • SSH 的另一项优点是传输的数据可以压缩,所以可以加快传输速度
  • 有关 SSH 配置信息都保存在用户家目录下的 .ssh 目录下

1)域名和端口号

  • 域名

    • 由一串 用点分隔 的名字组成,例如:www.itcast.cn
    • IP 地址 的别名,方便用户记忆
  • 端口号
    • IP 地址:通过 IP 地址 找到网络上的 计算机
    • 端口号:通过 端口号 可以找到 计算机上运行的应用程序
    • SSH 服务器 的默认端口号是 22,如果是默认端口号,在连接的时候,可以省略
  • 常见服务端口号列表:
服务 端口号
SSH 服务器 22
Web 服务器 80
HTTPS 443
FTP 服务器 21

2)ssh使用

ssh [-p port] user@remote
  • user 是在远程机器上的用户名,如果不指定的话默认为当前用户
  • remote 是远程机器的地址,可以是 IP域名,或者是 别名
  • portSSH Server 监听的端口,如果不指定,就为默认值 22
  • 若SSH 服务器的端口号不是 22,则需要使用 -p 选项,指定正确的端口号,否则无法正常连接到服务器
  • 使用 exit 退出当前用户的登录

3)免密登录

  • 配置公钥

    • 执行 ssh-keygen 即可生成 SSH 钥匙,一路回车即可
  • 上传公钥到服务器
    • 执行 ssh-copy-id -p port user@remote,可以让远程服务器记住我们的公钥
  • 非对称加密算法
    • 使用 公钥 加密的数据,需要使用 私钥 解密
    • 使用 私钥 加密的数据,需要使用 公钥 解密

4)配置别名

  • 每次都输入 ssh -p port user@remote,时间久了会很麻烦,特别是当 user, remoteport 都得输入,而且还不好记忆
  • 配置别名 可以让我们偷懒,譬如用:ssh mac 来替代上面一长串,那么就在 ~/.ssh/config 里面追加以下内容,保存之后,即可用 ssh mac 实现远程登录了,scp 同样可以使用
Host macHostName ip地址User yjw1Port 22

(2)scp

选项 含义
-r 若源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
-P 若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口
  • scp 就是 secure copy,是一个在 Linux 下用来进行 远程拷贝文件 的命令
  • 它的地址格式与 ssh 基本相同需要注意的是,在指定端口时用的是大写的 -P 而不是小写的
# 把本地当前目录下的 01.py 文件 复制到 远程家目录下的 Desktop/01.py
# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
scp -P port user@remote:Desktop/01.py 01.py# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
scp -r demo user@remote:Desktop# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
scp -r user@remote:Desktop demo

十、Linux命令速查手册

(一)关机/重启/注销

命令 作用
shutdown -h now 立刻关机
shutdown -h 12:00 定时关机
shutdown -h +10 10分钟后关机
shutdown -c 取消指定关机时间
init 0 立刻关机
telinit 0 关机
poweroff 立刻关机
halt 关机
shutdown -r now 立刻重启
shutdown -r 12:00 定时重启
shutdown -r 10 10分钟后重启
reboot 重启
init 6 重启
logout 退出登录shell

(二)系统信息和性能查看

命令 作用
uname -a 查看内核/OS/CPU信息
uname -r 查看内核版本
uname -m 查看处理器架构
arch 查看处理器架构
hostname 查看计算机名
who 显示当前登录用户
who am i 显示登录时的用户名
whoami 显示当前用户名
cat /proc/version 查看linux版本信息
cat /proc/cpuinfo 查看cpu信息
cat /proc/interrupts 查看中断
cat /proc/loadavg 查看系统负载
uptime 查看系统运行时间、用户数、负载
env 查看系统环境变量
lsusb -tv 查看系统USB设备信息
lspci -tv 查看系统PCI设备信息
lsmod 查看已加载的系统模块
grep MemTotal /proc/meminfo 查看内存总量
grep MemFree /proc/meminfo 查看空闲内存量
free -m 查看内存用量和交换区用量
date 显示系统日期时间
cal 2021 显示2021年日历表
top 动态显示cpu/内存/进程等情况
vmstat 1 20 采集系统状态(1秒一次,共20次)
iostat 查看io读写/cpu使用情况
sar -u 1 10 查询cpu使用情况(1秒一次,共10次)
sar -d 1 10 查询磁盘性能

(三)磁盘和分区

命令 作用
fdisk -l 查看所有磁盘分区
swapon -s 查看所有交换分区
df -h 查看磁盘使用情况及挂载点
du -sh /dir 查看指定某个目录的大小
mount /dev/hda2 /mnt/hda2 挂载hda2盘
mount -t ntfs /dev/sdc1 /mnt/usbhd1 指定文件系统类型挂载(ntfs)
mount -o loop xxx.iso /mnt/cdrom 挂载iso文件
mount /dev/sda1 /mnt/usbdisk 挂载usb盘/闪存设备
umount -v /dev/sda1 通过设备名卸载
umount -v /mnt/mymnt 通过挂载点卸载
fuser -km /mnt/hda1 强制卸载(慎用)

(四)用户和用户组

命令 作用
useradd yjw 创建yjw用户
userdel -r yjw 删除yjw用户
usermod -g group_name user_name 修改用户的组
usermod -aG group_name user_name 将用户添加到组
groups yjw 查看yjw用户所在组
groupadd group_name 创建用户组
groupdel group_name 删除用户组
groupmod -n new_name old_name 重命名用户组
su - user_name 完整切换到一个用户环境
passwd 修改口令
passwd yjw 修改yjw用户口令
w 查看活动用户
id yjw 查看yjw用户信息
last 查看用户登录日志
crontab -l 查看当前用户的计划任务
cut -d: -f1 /etc/passwd 查看系统所有用户
cut -d: -f1 /etc/group 查看系统所有组

(五)网络和进程管理

命令 作用
ifconfig 查看网络接口属性
ifconfig eth0 查看某网卡的配置
route -n 查看路由表
netstat -lntp 查看所有监听端口
netstat -antp 查看已经建立的TCP连接
netstat -lutp 查看TCP/UDP的状态信息
ifup eth0 启用eth0网络设备
ifdown eth0 禁用eth0网络设备
iptables -L 查看iptables规则
dhclient eth0 以dhcp模式启用eth0
route add -net 0/0 gw Gateway_IP 配置默认网关
route del 0/0 gw Gateway_IP 删除静态路由

(六)系统服务

命令 作用
chkconfig --list 列出系统服务
service <服务名> status 查看某个服务
systemctl status <服务名> 查看某个服务
service <服务名> start 启动某个服务
systemctl start <服务名> 启动某个服务
service <服务名> stop 终止某个服务
systemctl stop <服务名> 终止某个服务
service <服务名> restart 重启某个服务
systemctl enable <服务名> 开启自启动
systemctl disable <服务名> 关闭自启动

(七)文件和目录

命令 作用
cd <目录名> 进入某个目录
cd … 返回上级目录
cd …/… 返回上两级目录
cd 进个人主目录
cd - 返回上⼀步所在目录
pwd 显示当前路径
ls 查看文件目录列表
ls -l 查看文件和目录的详情列表
ls -a 查看隐藏文件
ls -lh 查看文件和目录的详情列表(更易读)
ls -lSr 查看文件和目录列表(以文件大小升序)
tree 查看文件和目录的树形结构
mkdir <目录名> 创建目录
mkdir dir1 dir2 同时创建两个目录
rm -f file1 删除’file1’文件
rmdir dir1 删除’dir1’目录
rm -rf dir1 删除’dir1’目录及其内容
rm -rf dir1 dir2 同时删除两个目录及其内容
mv old_dir new_dir 重命名/移动目录
cp file1 file2 复制文件
cp dir/* . 复制某目录下的所有文件至当前目录
ln -s file1 link1 创建指向文件/目录的软链接
ln file1 lnk1 创建指向文件/目录的硬链接
cat file1 查看文件内容
cat -n file1 查看内容并标示行数
tac file1 从最后一行开始反看文件内容
more file1 查看⼀个长文件的内容
less file1 反看长文件内容
head -2 file1 查看文件前两行
tail -2 file1 查看文件后两行
grep yjw 1.txt 在1.txt文件查找yjw关键词

(八)打包和解压

命令 作用
zip xxx.zip file 将文件压缩至zip包
zip -r xxx.zip file1 file2 dir1 将多个文件+目录压成zip包
unzip xxx.zip 解压zip包
tar -cvf xxx.tar file 创建非压缩tar包
tar -cvf xxx.tar file1 file2 dir1 将多个⽂件+目录打tar包
tar -tf xxx.tar 查看tar包的内容
tar -xvf xxx.tar 解压tar包
tar -xvf xxx.tar -C /dir 将tar包解压至指定目录
tar -jcvf xxx.tar.bz2 dir 创建bz2压缩包
tar -jxvf xxx.tar.bz2 解压bz2压缩包
tar -zcvf xxx.tar.gz dir 创建gzip压缩包
tar -zxvf xxx.tar.gz 解压gzip压缩包
bunzip2 xxx.bz2 解压bz2压缩包
bzip2 file 压缩文件
gunzip xxx.gz 解压gzip压缩包
gzip file 压缩⽂件
gzip -9 file 最大程度压缩

(九)rpm包管理

命令 作用
rpm -qa 查看已安装的rpm包
rpm -q pkg_name 查询某个rpm包
rpm -q --whatprovides xxx 显示xxx功能是由哪个包提供的
rpm -q --whatrequires xxx 显示xxx功能被哪个程序包依赖的
rpm -q --changelog xxx 显示xxx包的更改记录
rpm -qi pkg_name 查看⼀个包的详细信息
rpm -qd pkg_name 查询⼀个包所提供的文档
rpm -qc pkg_name 查看已安装rpm包提供的配置文件
rpm -ql pkg_name 查看⼀个包安装了哪些文件
rpm -qf filename 查看某个文件属于哪个包
rpm -qR pkg_name 查询包的依赖关系
rpm -ivh xxx.rpm 安装rpm包
rpm -ivh --test xxx.rpm 测试安装rpm包
rpm -ivh --nodeps xxx.rpm 安装rpm包时忽略依赖关系
rpm -e xxx 卸载程序包
rpm -Fvh pkg_nam 升级确定已安装的rpm包
rpm -Uvh pkg_name 升级rpm包(若未安装则会安装)
rpm -V pkg_name RPM包详细信息校验

(十)yum包管理

命令 作用
yum repolist enabled 显示可用的源仓库
yum search pkg_name 搜索软件包
yum install pkg_name 下载并安装软件包
yum install --downloadonly pkg_name 只下载不安装
yum list 显示所有程序包
yum list installed 查看当前系统已安装包
yum list updates 查看可以更新的包列表
yum check-update 查看可升级的软件包
yum update 更新所有软件包
yum update pkg_name 升级指定软件包
yum deplist pkg_name 列出软件包依赖关系
yum remove pkg_name 删除软件包
yum clean all 清除缓存
yum clean packages 清除缓存的软件包

(十一)dpkg包管理

命令 作用
dpkg -c xxx.deb 列出deb包的内容
dpkg -i xxx.deb 安装/更新deb包
dpkg -r pkg_name 移除deb包
dpkg -P pkg_name 移除deb包(不保留配置)
dpkg -l 查看系统中已安装deb包
dpkg -l pkg_name 显示包的大致信息
dpkg -L pkg_name 查看deb包安装的文件
dpkg -s pkg_name 查看包的详细信息
dpkg –unpack xxx.deb 解开deb包的内容

(十二)apt工具

命令 作用
apt-cache search pkg_name 搜索程序包
apt-cache show pkg_name 获取包的概览信息
apt-get install pkg_name 安装/升级软件包
apt-get purge pkg_name 卸载软件(包括配置)
apt-get remove pkg_name 卸载软件(不包括配置)
apt-get update 更新包索引信息
apt-get upgrade 更新已安装软件包
apt-get clean 清理缓存

❥呕心沥血系列❥-- Linux基础相关推荐

  1. linux基础试卷笔试,顽石系列:Linux基础笔试

    顽石系列:Linux基础笔试 系统操作 压缩文件 扩展名压缩程序 *.Z compress *.zip zip *.gz gzip *.bz2 bzip2 *.xz xz *.tar tar 程序打包 ...

  2. SLAM导航机器人零基础实战系列:(一)Linux基础——2.安装Linux发行版ubuntu系统

    SLAM导航机器人零基础实战系列:(一)Linux基础--2.安装Linux发行版ubuntu系统 摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以 ...

  3. 2017年Linux基础进阶系列课-老男孩-专题视频课程

    2017年Linux基础进阶系列课-13877人已学习 课程介绍         本套课程讲解的重要知识点如下: Linux文件属性体系精讲 .Linux正则表达式及grep命令深度讲解.三剑客sed ...

  4. 【Linux系列】Linux基础知识整理

    Linux操作系统在服务器领域广泛的使用到,作为一个后台开发工程师很有必要了解Linux相关的知识. 本篇日志是我学习Linux过程中的简单记录和总结.本着"理论够用,实践为主"的 ...

  5. 生物信息入门之 linux,手把手教你学生信系列(三)-- Linux 基础入门拦路虎

    原本计划这一篇介绍基础命令的,然后我们微课学院之前已经有相关录制好的视频,而且网上的相关文章多不胜数,因此也就不在卖弄了,简单交流一下 Linux 入门过程中的几个拦路虎,具体命令等在后文具体与到时候 ...

  6. 《嵌入式 Linux应用程序开发标准教程(第2版)》——第1章 Linux快速入门 1.1 嵌入式Linux基础...

    本节书摘来自异步社区<嵌入式 Linux应用程序开发标准教程(第2版)>一书中的第1章,第1.1节,作者 华清远见嵌入式培训中心,更多章节内容可以访问云栖社区"异步社区" ...

  7. 《嵌入式 Linux应用程序开发标准教程(第2版)》——1.1 嵌入式Linux基础

    本节书摘来异步社区<嵌入式 Linux应用程序开发标准教程(第2版)>一书中的第1章,第1.1节,作者:华清远见嵌入式培训中心,更多章节内容可以访问云栖社区"异步社区" ...

  8. Linux基础知识题解答(一)

    题目来自老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1709569,比较适合新手,空余的时候做一下,可以巩固Linux基础知识,有不对的地方欢迎指正. 计 ...

  9. Linux基础二(挂载、关机重启与系统等级)

    一.Linux 基础之挂载 1. 挂载和查询 1.1 挂载 什么叫挂载?装系统的时候要给硬盘分区,在 Windows 中要分 C 盘 D 盘 DEF 盘,这个操作我们叫做分配盘符,分配盘符之后我们就可 ...

  10. 大数据成长之路:谈谈那些必须学习的Linux基础知识

    作者| Roy瑞士 责编| Carol 封图| CSDN│下载于视觉中国 这里主要介绍学习大数据过程中用到的Linux基础知识,现在主攻的方向是大数据开发,欢迎大家共同交流. 环境 推荐安装VMwar ...

最新文章

  1. 项目实践|如何在较暗环境进行人脸检测?
  2. N分类模型评估计算方法
  3. GC分析工具使用-gceacy分析堆栈
  4. 沙漠之旅(二维dp)
  5. “前”方有坑,绕道而行(一)-- H5 CSS
  6. python处理csv文件将id相同的行合并到同一行并用符号将其隔开_Python探索性数据分析,这样才容易掌握...
  7. Linux——系统引导流程学习简单笔记
  8. 【SQL】INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND
  9. 大数据表转移hdfs后查询处理
  10. python pop3_Python使用POP3和SMTP协议收发邮件
  11. 解决软件开发中常见的问题
  12. 《历史是个什么玩意儿》袁腾飞最新语录
  13. 【控制篇 / 应用】(5.6) ❀ 01. NGFW 模式下使用应用控制 ❀ FortiGate 防火墙
  14. DNS云学堂 | 三分钟了解,最近大火的DOH与HTTPDNS、DOT的异同
  15. 认识世界的基础——系统概述-1
  16. 大数据 SAP HANA一体机选购指南
  17. SuperMap三维数据处理中关于模型高程修改方法
  18. 如何用 git 去下载相应的资源
  19. OpenCV实现“全能扫描王”的图像矫正功能
  20. PHP画像素直线,画像素画原来如此简单!绝对是手残党的福利

热门文章

  1. linux清空临时文件命令,Linux系统下临时文件TMP清理 ( tmpwatch 命令)
  2. Zabbix 5.0 配置短信报警
  3. android游戏地图编辑器
  4. Trimmed 稳健均值估计与 中位数-中位数配对偏差法估计标准差——理论与 Python 实现
  5. signature=9aadee6a3f882c84134bf5f6f04d2c93,Fw: Updated Scor Input Requirements
  6. mysql导入时区_【MySQL】将时区信息导入MYSQL
  7. php amr mp3,php实现微信语音amr文件在线播放方法
  8. 4种文件扩展名被阻止时发送邮件附件的方法
  9. 指纹识别综述(9): 指纹系统安全
  10. 100+CAD常用机械零件图练习图限量获取