❥呕心沥血系列❥-- Linux基础

  • 此篇文章为近期整理的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 多个
  • 不要尝试一次学会所有的命令,有些命令不常用的,临时遇到,临时搜索

(二)基本使用

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

小技巧

  • 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 命令要小心,因为文件删除后不能恢复

(四)拷贝和移动文件

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

(1)tree

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

(2)cp

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

(3)mv

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

(五)查看文件内容

序号命令对应英文作用
01cat 文件名concatenate查看文件内容、创建文件、文件合并、追加文件内容等
02more 文件名more分屏显示文件内容
03grep 搜索文本 文件名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查看系统时间
calcalendar 查看日历,-y 选项可以查看一年的日历

(二)磁盘信息

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

(三)进程信息

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

ps选项说明

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

八、用户权限相关命令

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

(1)基本概念

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

文件/目录 的权限包括

权限英文缩写数字代号
readr4
writew2
执行excutex1

(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 组 用户名

# 修改用户登录shell
  usermod -s /bin/bash 用户名

# 默认使用useradd添加的用户没有权限使用sudo以root身份执行命令,可用以下命令,将用户添加到sudo附加组中
  usermod -G sudo 用户名
  • which
  • /etc/passwd 是用于保存用户信息的文件
  • /usr/bin/passwd 是用于修改用户密码的程序
  • which 命令可以查看执行命令所在位置,例如:
which ls
# 输出
# /bin/ls

which 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

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

命令对应英文作用
ifconfigconfigure 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 用户名@ipsecure 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
HTTPS443
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 mac
    HostName ip地址
    User yjw1
    Port 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 +1010分钟后关机
shutdown -c取消指定关机时间
init 0立刻关机
telinit 0关机
poweroff立刻关机
halt关机
shutdown -r now立刻重启
shutdown -r 12:00定时重启
shutdown -r 1010分钟后重启
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_nameRPM包详细信息校验

(十)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清理缓存
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值