Linux-程序员宅基地

技术标签: 运维  linux  服务器  

Linux入门

感谢狂神的分享:B站视频地址

推荐博客:C语言中文网–Linux简介

1. 概述

为什么要学Linux

linux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了。但在服务器端、在开发领域linux倒是越来越受欢迎。linux在开源社区的地位依然岿然不动。尤其是作为一个后端程序员,是必须要掌握Linux的!

Linux简介

  • Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
  • Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口) 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
  • Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux 发行版


推荐文章常见Linux发行版本


Linux 的发行版说就是:将 Linux 内核与应用软件做一个打包。
在这里插入图片描述
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等
在这里插入图片描述

Linux 应用领域

今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。

2. 走近 Linux

环境搭建

环境使用阿里云服务器。如果购买之后设置登录密码、安全组规则,然后通过 xShell工具连接、xFtp 工具传输文件。

  • 如果前期不好操作,可以安装 宝塔面板安装教程

开机

  • 开机会启动许多程序。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
  • 开机成功后,它会显示一个文本登录界面,会提示用户输入用户名作为参数传给login程序来验证身份,密码是不显示的,输完回车即可!一般来说,用户的登录方式有三种:
    • 命令行登录
    • ssh登录
    • 图形界面登录

关机

关机指令为:shutdown 。不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中:

sync # 将数据由内存同步到硬盘中。
 
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
 
shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机
 
shutdown –h now # 立马关机
 
shutdown –h 20:25 # 系统会在今天20:25关机
 
shutdown –h +10 # 十分钟后关机
 
shutdown –r now # 系统立马重启
 
shutdown –r +10 # 系统十分钟后重启
 
reboot # 就是重启,等同于 shutdown –r now
 
halt # 关闭系统,等同于shutdown –h now 和 poweroff

系统目录结构

在这里插入图片描述

  • /bin:Binary的缩写, 这个目录存放着最经常使用的命令。
  • /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
  • /dev : Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
  • /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
  • /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  • /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
  • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
  • /opt:这是给主机额外安装软件的目录。比如你安装一个 MySQL 数据库则就可以放到这个目录下。
  • /proc:这是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
  • /root:该目录为系统管理员,也称作超级权限者的用户主目录。
  • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  • /srv:该目录存放一些服务启动之后需要提取的数据。
  • /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
  • /tmp:这个目录是用来存放一些临时文件的。
  • /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
    • /usr/bin: 系统用户使用的应用程序。
    • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
    • /usr/src: 内核源代码默认的放置目录。
  • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
  • /www:存放服务器网站相关的资源,环境,网站的项目

3. 常用基本命令

cd:切换目录

cd( Change Directory 的缩写),用来切换工作目录
cd 命令的基本格式如下:

[root@localhost ~]# cd [相对路径或绝对路径]

cd 命令后面可以跟一些特殊符号,表达固定的含义:
在这里插入图片描述

命令 作用
cd [~] 表示回到自己的主目录。对于 root 用户,其主目录为 /root
cd ~vbird 切换到 vbird 这个用户的主目录,亦即 /home/vbird
cd . . 返回上级目录
cd . 进入当前目录(目录没有变化,"."代表当前目录)
cd - 回到刚刚的那个目录

pwd:显示当前绝对路径

当用户登陆 Linux 系统之后,其当前目录就是它的主目录。也可以使用 Linux 系统的 pwd 命令来显示当前目录的绝对路径。

pwd(Print Working Directory 的缩写),功能是显示用户当前所处的工作目录。该命令的基本格式为:

[root@localhost ~]# pwd

whoami 命令用于确定当前登陆的用户。可以看到,root 用户当前所在目录是它的主目录 /root。

[root@localhost ~]# whoami
root
[root@localhost ~]# pwd
/root

ls:查看目录下文件

ls (list 的缩写)。其主要功能是显示当前目录下的内容。此命令的基本格式为:

[root@localhost ~]# ls [选项] 目录名称

ls 命令常用的选项,以及各自的功能如下:
在这里插入图片描述
【注意】当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色(蓝色显示目录,白色显示一般文件)

mkdir:创建目录(文件夹)

mkdir (make directories 的缩写),用于创建新目录。命令格式为:

[root@localhost ~]# mkdir [-mp] 目录名

-m :用于手动配置所创建目录的权限,而不再使用默认权限。
-p :递归创建所有目录,以创建 /home/test/demo 为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home、/home/test 以及 /home/test/demo

[root@localhost ~]# mkdir -m 711 test2
[root@localhost ~]# ls -l
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

rmdir:删除空目录

rmdir(remove empty directories 的缩写)命令用于删除空目录,此命令的基本格式为:

[root@localhost ~]# rmdir [-p] 目录名

-p 选项用于递归删除空目录。

【注】命令执行成功与否,取决于要删除目录是否是空目录,因为 rmdir 命令只能删除空目录!

# 递归删除下面的目录,要列出从相对路径到最下级的目录:
[root@localhost ~]# rmdir -p lm/movie/jp/cangls

在这里插入图片描述

touch:创建文件及修改文件时间戳

touch命令,用来创建文件、修改文件的时间参数:
在这里插入图片描述
在这里插入图片描述

ln:创建软、硬连接文件

在这里插入图片描述

cp:复制文件和目录

参考文章:Linux cp命令:复制文件和目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

rm:删除文件或目录

rm 命令,可以永久性地删除指定的文件或目录。在使用 rm 命令时,系统不会产生任何提示信息。此命令的基本格式为:

[root@localhost ~]# rm[选项] 文件或目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mv:移动文件或改名

mv 命令(move 的缩写)。既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。该命令的基本格式如下:

[root@localhost ~]# mv [选项] 源文件 目标文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

env:查看环境变量

变量是计算机系统用于保存可变值的数据类型,我们可以直接通过变量名称来提取到对应的变量值。在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(HOME)、邮件存放位置(MAIL)等。值得一提的是,Linux 系统中环境变量的名称一般都是大写的,这是一种约定俗成的规范

使用 env 命令,可以查看 Linux 系统中所有的环境变量:

[root@localhost ~]# env
ORBIT_SOCKETDIR=/tmp/orbit-root
HOSTNAME=livecd.centos
GIO_LAUNCHED_DESKTOP_FILE_PID=2065
TERM=xterm
SHELL=/bin/bash

在这里插入图片描述
在这里插入图片描述

4. 基本属性

概述

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
 在Linux中我们可以使用 ll 或者 ls -l 命令来显示一个文件的属性以及文件所属的用户和组:
在这里插入图片描述
第一个红框中的10个字符,代表了不同的意思:

  • 第1个字符代表这个文件是目录、 文件或链接文件等等:
    • [d] 是目录
    • [-] 是文件;
    • [l] 表示为链接文档( link file);
    • [b] 表示为装置文件里面的可供储存的接口设备(可随机存取装置) ;
    • [c] 表示为装置文件里面的串行端口设备,例如键盘、鼠标( 一次性读取装置)。
  • 后面9字符中,以三个为一组,且均为[rwx] 的三个参数的组合,规定了不同的用户对文件所拥有的权限。
    • 其中,[r] 可读(read)、[w] 可写(write)、[x] 可执行(execute)。
    • 这三个权限的位置不会改变。如果没有权限,就会出现减号[-]。
    • 每个文件的属性由左边第一部分的10个字符来确定 (如下图) :

在这里插入图片描述

  • 第二个绿框:引用计数。文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录
  • 第三个绿框:所有者、所属组
    • 所有者:这个文件属于哪个用户(默认所有者是文件的建立用户)
    • 所属组:默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组
  • 第四个红框:大小,默认单位是字节
  • 第五个红框:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。
  • 最后一列:文件名或目录名

chgrp:修改文件(或目录)的所属组

chgrp(change group 的缩写),用于修改文件(或目录)的所属组,基本格式如下:

[root@localhost ~]# chgrp [-R] 所属组 文件名(目录名)

【注意】-R(大写)用于更改目录的所属组,表示更改连同子目录中所有文件的所属组信息。

  • 需要注意的一点是:要被改变的群组名必须是真实存在的,否则命令无法正确执行,会提示 “invaild group name”。
    在这里插入图片描述

chown :修改文件和目录 的 所有者和所属组

chown(change owner 的缩写),主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

chmod:修改文件或目录的权限

Linux 系统中,文件的基本权限由 r、w、x 三个字符组成,分别有对应的数字:

  • r --> 4
  • w --> 2
  • x --> 1
    在这里插入图片描述

使用数字修改文件权限, chmod 的命令基本格式如下:

-R(注意是大写)选项表示连同子目录中的所有文件,也都修改设定的权限。
[root@localhost ~]# chmod [-R] 权限值 文件名

在这里插入图片描述
在这里插入图片描述

5. 文本处理

在 Linux 中,文本处理无非是对文本内容做查看、修改等操作。本章将介绍Linux中常用的文本处理命令,以及被称为 Linux三剑客grep、sed 和 awk 命令。

cat:连接文件并打印输出

catconcatenate — 连接、连续)可以用来显示文本文件的内容(类似于 DOS 下的 type 命令);也可以把几个文件内容附加到另一个文件中,即连接合并文件。基本格式如下:

[root@localhost ~]# cat [选项] 文件名
或者
[root@localhost ~]# cat 文件1 文件2 > 文件3
##  注: > 是覆盖,  >>  是追加

在这里插入图片描述
【注】cat命令正序输出;tac命令倒序输出

more:分屏显示文件内容

more 命令可以分页显示文本文件的内容,此命令的基本格式如下:

[root@localhost ~]# more [选项] 文件名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

head:显示文件开头的内容

head 命令可以显示指定文件前若干行的文件内容,其基本格式如下:

[root@localhost ~]# head [选项] 文件名

在这里插入图片描述

less:查看文件内容

参考文章:Linux less命令:查看文件内容

使用 more 命令浏览文件内容时,只能不断向后翻看;而使用 less 命令浏览,既可以向后翻看,也可以向前翻看。为了方面用户浏览文本内容,less 命令还提供了以下几个功能:
在这里插入图片描述
less 命令的基本格式如下:

[root@localhost ~]# less [选项] 文件名

在这里插入图片描述

tail:显示文件结尾的内容

tail 命令用来查看文件末尾的数据,其基本格式如下:

[root@localhost ~]# tail [选项] 文件名

在这里插入图片描述
可以看到,使用 tail -n 3 /etc/passwd 命令和 tail -3 /etc/passwd 的效果是一样的。
在这里插入图片描述

grep:查找文件内容(三剑客)

参考文章:Linux grep命令详解:查找文件内容

grep:查找文件内容(三剑客)

参考文章:Linux sed命令完全攻略(超级详细)

grep:查找文件内容(三剑客)

参考文章:Linux awk命令详解

6. Vim 编辑器

三种工作模式

Vim文本编辑器, vi 的升级版。具有使用简单、功能强大、是 Linux 众多发行版的默认文本编辑器等特点。

  • 如未安装Vim编辑器,CentOS 中使用如下命令安装Vim:
yum install vim      # 此命令有时需要手动确认一些信息
yum -y install vim   # 全自动安装,省略手动确认部分

使用 Vim 编辑文件时,存在 3 种工作模式,分别是 命令模式(Command mode),输入模式 (Insert mode)和 底线命令模式(Last line mode),这 3 种工作模式可随意切换:
在这里插入图片描述

命令模式

  • 使用 Vim 编辑文件,默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置。还可以对文件内容进行复制、粘贴、替换、删除等操作。
  • 此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i 被当作了一个命令。
    在这里插入图片描述

输入模式

在这里插入图片描述

底线命令模式

  • 在命令模式下按英文 " : " 键,进入底线命令模式。此时 Vim 窗口的左下方出现一个 " : " 符号
    在这里插入图片描述
  • 指令执行后 Vim 会自动返回命令模式。如想直接返回,按 Esc 即可

对于新手来说,经常不知道自己处于什么模式,可以按一次 Esc 键返回命令模式。如果你多按几次 Esc 键后听到"嘀----"的声音,则代表你已经处于命令模式了。

可视化模式

在 Vim 命令模式下键入不同的键,可以进入不同的可视化模式,进行选中文本的操作:

命令 作用
v(小写) 字符可视化模式,选择文本的是以字符为单位的,(要一个个字符的选中要操作的文本)
V(大写) 行可视化模式,选择文本的选择是以行为单位的,(可以一行一行的选中要操作的文本)
Ctrl+v(组合键) 块可视化模式,可以选中文本的一个矩形区域作为目标文本:
以按下 Ctrl+v 位置作为矩形的一角,光标移动的终点位置作为它的对角。

在这里插入图片描述

Vim 快捷键

查找文本

快捷键 作用
/abc 从光标所在位置向前查找字符串 abc
?abc 从光标所在位置,向后查找字符串 abc
/^abc 查找以 abc 为行首的行
/abc$ 查找以 abc 为行尾的行
n 向同一方向重复上次的查找指令
N 向相反方向重复上次的查找指令

替换&替换

快捷键 作用
r 替换光标所在位置的字符(替换一个
R 从光标所在位置开始替换字符,按“Esc”可以结束(替换多个,类似windows的Insert
: s /a1 /a2 /g 将当前光标所在行的,所有 a1 替换为 a2
:n1,n2s/a1/a2/g 将文件中 n1 到 n2 行中,所有 a1 替换为 a2
:g/a1/a2/g 将文件中,所有 a1 替换为 a2

在这里插入图片描述

删除文本

快捷键 作用
x 删除光标所在位置的字符
dd 删除光标所在行
ndd 删除当前行(包括此行)后 n 行文本
dG 删除 光标所在行至文件末尾 的所有内容
D 删除光标位置到行尾的内容
:a1,a2d 删除 a1 行 至 a2 行 的文本内容

复制和粘贴文本

快捷键 作用
y 复制已选中的文本到剪贴板
yy 复制光标所在行板。此命令前加数字 n,可复制多行
yw 复制光标位置的单词
p(小写) 将剪贴板中的内容,粘贴到光标
P(大写) 将剪贴板中的内容,粘贴到光标

在这里插入图片描述

保存退出文本

Vim 的保存和退出,是在 底线命令模式 中进行的:

快捷键 作用
:wq 保存并退出 Vim 编辑器
:wq! 保存并 强制 退出 Vim 编辑器
:q 不保存就退出 Vim 编辑器
:q! 不保存,且强制退出 Vim 编辑器
:w 保存但不退出 Vim 编辑器
:w! 强制保存文本
:w filename 另存到 filename 文件
x! 保存文本并退出 Vim 编辑器(更通用的一个 vim 命令)
ZZ 直接退出 Vim 编辑器

光标以单词为单位移动

快捷键 作用
w 或 W 光标移动至下一个单词的单词首
b 或 B 光标移动至上一个单词的单词首
e 或 E 光标移动至下一个单词的单词尾
nw 或 nW n 为数字,表示光标向右移动 n 个单词
nb 或 nB n 为数字,表示光标向左移动 n 个单词

光标移动至行首、行尾

快捷键 作用
0 或 ^ 光标移动至当前行的行首
$ 光标移动至当前行的行尾
n$ 光标移动至当前行之后 n 行的行尾,n为数字

光标移动至指定字符

快捷键 作用
fx 光标移动至当前行中下一个 x 字符处
Fx 光标移动至当前行中上一个 x 字符处

光标移动到指定行

快捷键 作用
gg 光标移动到文件开头
G 光标移动至文件末尾
nG 光标移动到第 n 行,n 为数字
:n 编辑模式下的快捷键,可以将光标快速定义到指定行的行首

在这里插入图片描述

撤销和恢复撤销

命令模式下,撤销和反撤销快捷键如下:

快捷键 作用
u(小写) (undo)撤销一次对文本的修改( 类似 Windows 中 Ctrl + z)
Ctrl+R (Redo)恢复最近一次的撤销操作。(类似Windows 中 Ctrl +y)
U(大写) 第一次会撤销对光标所在行做过的全部操作,
第二次使用该命令会恢复对该行文本做过的所有操作。

Vim 键盘图

参考文章:Vim命令速查表
在这里插入图片描述

7. 用户和用户组

1)概述

  • 向管理员申请账户,才能使用系统资源。每个用户有唯一的 用户名和密码,登录成功默认进入自己的主目录。
  • 通过建立不同属性的用户,一方面可以合理地利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。
  • 用户组是具有相同特征用户的逻辑集合。
    在这里插入图片描述

UID 和 GID

  • 登陆 Linux 系统时,虽然输入的是用户名和密码,但 Linux 并不认识用户名,它只认识用户名对应的 ID 号(也就是一串数字)。Linux 将用户名与 ID 的对应关系,存储在 /etc/passwd 文件中。说白了,用户名并无实际作用,仅是为了方便用户的记忆而已。
  • Linux 中,每个用户的 ID 细分为 2 种:分别是用户 ID(User ID)和组 ID(Group ID),分别存储在 /etc/passwd/etc/group 文件中。这与文件的 属主 、 属组 两种属性相对应。

/etc/passwd

  • Linux 中 /etc/passwd 是系统用户配置文件,存储了所有用户的基本信息,并且所有用户都可以对此文件执行读操作。每行记录对应一个用户。
  • 每行用户信息都以 ":"划分为 7 个字段,每个字段的含义如下:
用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell

/etc/shadow

  • /etc/shadow (又称为“影子文件”),用于存储 Linux 中用户的密码。
  • 只有 root 用户拥有读权限,保证了密码的安全性
  • 具体含义参考:Linux /etc/shadow 内容解析
    在这里插入图片描述

/etc/group

  • /ect/group 文件是用户组配置文件,存放用户组的所有信息(是记录 GID 和 组名相对应的文件)。
  • 每一行各代表一个用户组, " : " 作为分隔符,分为 4 个字段:
组名:密码:GID:该用户组中的用户列表

在这里插入图片描述

/etc/gshadow

  • 组用户信息存储在 /etc/group 中,而组用户的密码信息存储在 /etc/gshadow 文件中
  • 每行代表一个组用户的密码信息,用 “:” 分隔为 4 个字段,含义如下:
组名:加密密码:组管理员:组附加用户列表

在这里插入图片描述

/etc/login.defs

  • /etc/login.defs 用于在创建用户时,对用户的一些基本属性做默认设置。
  • 指定用户 UID 和 GID 范围、用户的过期时间、密码最大长度。。。
    在这里插入图片描述

2)用户管理

useradd:添加新用户

在这里插入图片描述

passwd:修改密码
  • passwd: 修改用户密码,基本格式如下:
[root@localhost ~]#passwd [选项] 用户名

在这里插入图片描述

usermod:修改用户信息
  • usermod:修改 已存在用户 的信息,命令格式如下:
[root@localhost ~]#usermod [选项] 用户名

在这里插入图片描述

chage:修改用户密码状态 & 强制用户修改密码
  • chage:可以显示更加详细的用户密码信息(类似 passwd -S),也可以修改用户密码:
[root@localhost ~]#chage [选项] 用户名
userdel:删除用户

userdel :删除用户的相关数据。此命令只有 root 用户才能使用,基本格式:

[root@localhost ~]# userdel -r 用户名

在这里插入图片描述

id:查看用户的UID和GID

id 命令:查询用户的UID、GID 和附加组的信息:

[root@localhost ~]# id 用户名

在这里插入图片描述

su:用户间切换
  • su:用户间切换,命令格式如下:
[root@localhost ~]# su [选项] 用户名
  • 普通用户之间切换以及普通用户切换至 root 用户,都需要知晓对方的密码;从 root 用户切换至其他用户,无需知晓对方密码。
    在这里插入图片描述

su 和 su - 的区别

使用 su 命令时,有 - 和没有 - 是完全不同的- 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。我们知道,环境变量是用来定义操作系统环境的,因此如果系统环境没有随用户身份切换,很多命令无法正确执行。
在这里插入图片描述

whoami 和 who am i
  • whoami :打印当前执行操作的用户名
  • who am i :打印登陆当前 Linux 系统的用户名
  • 执行 whoami 命令,等同于执行 id -un 命令;执行 who am i 命令,等同于执行 who -m 命令。

在这里插入图片描述

3)用户组管理

groupadd:添加用户组

在这里插入图片描述

groupmod:修改用户组

在这里插入图片描述

groupdel:刪除用户组

在这里插入图片描述

gpasswd:把用户添加进组或从组中删除

在这里插入图片描述
在这里插入图片描述

newgrp:切换用户的有效组

在这里插入图片描述

8. 磁盘管理

df :查看文件系统硬盘使用情况

  • df 命令:用于显示 Linux 系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。
  • 与整个文件系统有关的数据,都保存在 Super block(超级块)中,而 df 命令主要读取的数据几乎都针对的是整个文件系统,所以 df 命令主要是从各文件系统的 Super block 中读取数据。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

du:统计目录或文件所占磁盘空间大小

  • 使用 ls -r 可以看到文件的大小的,但目录的大小基本都是 4KB。这是因为目录下的 子目录名子文件名 是保存到父目录的 block(默认大小为 4KB)中的,如果父目录下的子目录和子文件并不多,一个 block 就能放下,那么这个父目录就只占用了一个 block 大小。
  • du :统计文件目录及子目录和子文件 所占磁盘空间的实际大小:
    在这里插入图片描述
[root@localhost ~]# du
# 统计当前目录及所有子目录的磁盘占用量大小,但不统计子文件

[root@localhost ~]# du -a
# 统计当前目录的总大小,以及所有子文件、子目录 所占磁盘的大小。默认单位为 KB

[root@localhost ~]# du -sh
# 只统计磁盘占用量总的大小,同时使用习惯单位显示

在这里插入图片描述

mount:挂在设备

  • 所有的硬件设备必须挂载之后才能使用,只不过,有些硬件设备(比如硬盘分区)在每次系统启动时会自动挂载,而有些(比如 U 盘、光盘)则需要手动进行挂载。
  • 通过学习 Linux 文件系统,我们可以对挂载的含义进行引申: 挂载指的是将硬件设备的文件系统和 Linux 系统中的文件系统,通过指定目录(作为挂载点)进行关联。 而要将文件系统挂载到 Linux 系统上,就需要使用 mount 挂载命令。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    mount 挂在设备:
    在这里插入图片描述
    在这里插入图片描述

unmount:卸载已挂在的硬件设备

在这里插入图片描述

9. 进程管理

进程管理:http://c.biancheng.net/view/1061.html

概述

程序和进程

  • 程序:使用计算机语言编写的,可以实现一定功能,并且可以执行的代码集合
  • 进程:进程是正在执行中的程序。操作系统给这个进程分配一个 ID,称为 PID(进程 ID)。在操作系统中,所有可以执行的程序与命令都会产生进程。
  • 子进程:某些进程会产生一些新的进程,称为 子进程,而把这个进程称作父进程子进程是依赖父进程而产生的,如果父进程不存在,那么子进程也不存在了

手工启动进程

手工启动进程:指的是由用户输入命令直接启动一个进程,根据所启动的进程类型和性质的不同,其又可以细分为 前台启动后台启动 2 种方式。

  • 前台启动进程:这是手工启动进程最常用的方式,因为当用户输入一个命令并运行,就已经启动了一个进程,而且是一个前台的进程。此时系统其实已经处于一个多进程的状态(一个是 Shell 进程,另一个是新启动的进程)。
    在这里插入图片描述
  • 后台启动进程:进程直接从后台运行。用的相对较少,除非该进程非常耗时,且用户也不急着需要其运行结果的时候。
    在这里插入图片描述

调度启动进程

  • 在 Linux 系统中,任务可以被配置在指定的时间、日期或者系统平均负载量低于指定值时自动启动。
  • 例如,Linux 预配置系统任务的运行,使系统能够实时被更新;系统管理员也可以使用自动化任务,定期备份数据。

ps:查看正在运行的进程

博客:ps命令详解

psProcess Status):可以查看所有运行进程的详细信息。基本格式如下:

[root@localhost ~]# ps [选项]

在这里插入图片描述
常用的选项组合方式如下:

#查看系统中所有的进程,使用 BS 操作系统格式
[root@localhost ~]# ps aux

#查看系统中所有的进程,使用 Linux 标准命令格式
[root@localhost ~]# ps -le

# 只查看到当前 Shell 产生的进程
[root@localhost ~]# ps -l

# 查询相关信息:
[root@localhost ~]# ps-aux|grep mysql
[root@localhost ~]# ps -ef |grep mysql

ps -aux

在这里插入图片描述
在这里插入图片描述

ps -le

与 “ps aux” 一样, “ps -le” 命令也能看到系统中所有的进程,且看到的信息更加详细,比如父进程的 PID、优先级等。两个命令掌握其中一个就行。

在这里插入图片描述
在这里插入图片描述

pstree:查看进程树

pstree :以树形结构显示程序和进程之间的关系:

[root@localhost ~]# pstree [选项] [PID或用户名]

在这里插入图片描述

  • 使用 pstree 时,如果不指定 PID ,也不指定用户名称,则会以 init 进程为根进程,显示系统中所有程序和进程的信息;若指定 PID 或 用户名,则将以 PID 或指定命令为根进程,显示 PID 或用户对应的所有程序和进程。

  • init 进程是系统启动的第一个进程(PID 为 1),也是系统中所有进程的父进程
    在这里插入图片描述

  • 使用 pstree 查看某个用户都启动了哪些进程,以 mysql 用户为例:

[root@1ocalhost ~]# pstree mysql
mysqid---6*[{
    mysqid}]

kill :终止进程

kill 命令的执行原理是:向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作:

[root@localhost ~]# kill [信号] PID

在这里插入图片描述

killall :终止特定的一类进程

killall :通过程序的进程名来杀死一类进程,常与 ps、pstree 等命令配合使用:

[root@localhost ~]# killall [选项] [信号] 进程名

注意】:killall 的信号类型同 kill 一样。常用的选项有如下 2 个:

  • -i:交互式,询问是否要杀死某个进程;
  • -I:忽略进程名的大小写;
    在这里插入图片描述

10. 打包和压缩

  • 归档(打包)指的是将多个文件和目录集中存储在一个文件中
  • 压缩:利用算法对文件进行处理,从而缩减占用的磁盘空间。其基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。

tar:打包命令

tar :最常用的归档( 打包 )命令,可以将许多文件一起保存到一个单独的磁带或磁盘中进行归档。不仅如此,该命令还可以从归档文件中还原所需文件,也就是打包的反过程,称为 解打包

tar命令做 打包 操作

使用 tar 命令归档的包通常称为 tar 包(tar 包文件都是以“.tar”结尾的),基本格式为:

[root@localhost ~]# tar [选项] 源文件或目录

在这里插入图片描述
在这里插入图片描述

tar命令做 解打包 操作

当 tar 命令用于对 tar 包做 解打包 操作时,格式如下:

[root@localhost ~]#tar [选项] 压缩包

在这里插入图片描述
在这里插入图片描述

tar命令做 打包和压缩解压缩和解打包)操作

你可能会觉得 Linux 实在太不智能了,一个打包压缩,居然还要先打包成 “.tar” 格式,再压缩成 “.tar.gz” 或 “.tar.bz2” 格式。
其实 tar 命令是可以同时打包压缩的,前面的讲解之所打包和压缩分开,是为了让大家了解在 Linux 中打包和压缩的不同。
在这里插入图片描述

.zip 压缩与解压

.zip” 格式文件是 Windows 和 Linux 系统都通用的压缩文件类型,是一种相当简单的分别压缩每个文件的存储格式,几种主流的压缩格式(zip、rar等)之一。

zip 压缩

注意】zip 压缩命令需要手工指定压缩之后的压缩包名,注意写清楚扩展名,以便解压缩时使用

[root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表

在这里插入图片描述
zip 命令的基本使用:

// 压缩单个文件
[root@localhost ~]# zip ana.zip anaconda-ks.cfg

// 同时压缩多个文件到test.zip压缩包中, 文件用空格隔开
[root@localhost ~]# zip test.zip install.log install.log.syslog

// 使用 zip 命令压缩目录,需要使用“-r”选项
[root@localhost ~]# mkdir dir1            // 创建目录
[root@localhost ~]# zip -r dir1.zip dir1  // 压缩目录

unzip 查看和解压缩

[root@localhost ~]# unzip [选项] 压缩包名

在这里插入图片描述

// 不论是文件、目录压缩包,都可以直接解压缩
[root@localhost ~]# unzip dir1.zip

// 使用 -d 指定解压缩位置
[root@localhost ~]# unzip -d /tmp/ ana.zip

.gz 压缩与解压

gzip:压缩文件

  • gzip 命令只能用来压缩文件,不能压缩目录。即便指定了目录,也只能压缩目录内的所有文件。
  • 压缩得到的新文件,其扩展名通常标记为 “ .gz
[root@localhost ~]# gzip [选项] 源文件

命令中的源文件:当进行压缩操作时,指的是普通文件;当进行解压缩操作时,指的是压缩文件
在这里插入图片描述

  • 基本压缩:压缩文件生成,但是删除源文件。(只需指定源文件名,不需要指定压缩之后的压缩包名)
#压缩instal.log 文件
[root@localhost ~]# gzip install.log

[root@localhost ~]# ls       #压缩文件生成,但是源文件也消失了
install.log.gz
  • 保留源文件压缩
# 使用-c选项,但是不让压缩数据输出到屏幕上,而是重定向到压缩文件中,这样可以缩文件的同时不删除源文件
[root@localhost ~]# gzip -c anaconda-ks.cfg >anaconda-ks.cfg.gz

# 压缩文件和源文件都存在
[root@localhost ~]# ls
anaconda-ks.cfg     anaconda-ks.cfg.gz

在这里插入图片描述

gunzip:解压缩文件或目录

  • gunzip 用于解压被 gzip 压缩过的文件(扩展名为 .gz),( 也能用 gzip 自己: gzip -d 压缩包 ):
[root@localhost ~]# gunzip [选项] 文件

在这里插入图片描述

  • 直接解压缩文件(只会解压缩目录下的文件,而不会解打包),下面两条命令效果相同:
[root@localhost ~]# gunzip install.log.gz

[root@localhost ~]# gzip -d install.log.gz

在这里插入图片描述

.bz2 压缩与解压

" .bz2 "格式是 Linux 的另一种压缩格式。从理论上来讲," .bz2 "格式的算法更先进、压缩比更好;而 ".gz"格式相对来讲的时间更快。

bzip2 :压缩文件

  • bzip2 命令同 gzip 命令类似,只能对文件进行压缩(或解压缩),对于目录只能压缩(或解压缩)该目录及子目录下的所有文件。当执行压缩任务完成后,会生成一个以“.bz2”为后缀的压缩包:
[root@localhost ~]# bzip2 [选项] 源文件

在这里插入图片描述

【例 1】直接压缩文件,同时删除源文件  ".bz2"格式
[root@localhost ~]# bzip2 anaconda-ks.cfg

【例 2】压缩的同时,保留源文件。
[root@localhost ~]# bzip2 -k install.log.syslog

bunzip2:bz2格式的解压缩命令

  • bunzip2bzip2 -d 命令一样,都能解压“.bz2”格式的压缩包文件
  • bunzip2 命令只能用于解压文件,即便解压目录,也是解压该目录以及所含子目录下的所有文件:
[root@localhost ~]# bunzip2 [选项] 源文件

在这里插入图片描述

# 解压缩 .bz2 格式压缩包,下面两条命令效果相同:
[root@localhost ~]# bunzip2 anaconda-ks.cfg.bz2

[root@localhost ~]# bzip2 -d install.log.syslog.bz2

# 使用 bzcat 命令,不解压就可查看".bz2"格式的纯文本压缩包(和".gz"格式类似)
[root@localhost ~]# bzcat install.log.syslog.bz2

11. 环境安装

JDK (rpm安装)

  1. 下载地址:JDK官方下载
    在这里插入图片描述
  2. 安装java环境
java -version 检测当前系统是否存在Java环境 和windows命令一样
#如果有的话就需要卸载

rpm -qa|grep jdk 查看JDK版本信息

rpm -e --nodeps jdk_ 卸载

# 卸载完毕后可安装JDK
rpm -ivk rpm包 

在这里插入图片描述
3. 配置环境变量 :/etc/profile

JAVA_HOME=/usr/java/jdk1.8.0_351-amd64
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

export JAVA_HOME  CLASSPATH  PATH	# 导出这几个变量

】:使用冒号 “ : ”分开,不是分号“ ; ”
在这里插入图片描述
4. 使环境变量生效:

[root@localhost ~]# source /etc/profile

在这里插入图片描述
】如果环境变量配置错误,导致Linux基本命令失效,运行下面的命令:

export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin

Tomcat(解压缩安装)

  1. 官网地址:Apache Tomcat
    Tomcat下载
    在这里插入图片描述
  2. 上传到服务器中,自定义目录下(如 “/home/ide/”),解压缩
tar apache-tomcat-9.0.69.tar.gz
  1. 开启防火墙
     --zone 作用域
     --add-port-80/tcp 添加端口, 格式为:端口/通讯协议
     --permanent 永久生效,没有此参数重启后失效
    使用域名解析:如果端口是80 (http)或者443(https)可以直接访问;如果是9000 8080 ,就需要通过Apcahe或者Nginx做一下反向代理
# 开启防火墙端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent

# 重启防火墙
systemctl restart firewalld.service

# 查看所有开启的端口。如果是阿里云,需要配置安全组规则
firewall-cmd --list-ports
  1. 进入Tomcat的bin目录下,启动Tomcat
./startup.sh   #执行 

./shutdown.sh  #停止

docker(yum 安装)

  1. 检查 CentOS 版本(Linux各发行版本,命令不同)
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) 
  1. 安装准备环境
# yum install 安装命令 -y  所有的提示都为y
yum -y install 包名

yum -y install gcc
yum -y install gcc-c++
  1. 卸载以前的docker
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  1. 下载环境
yum install -y yum-utils \device-mapper-persistent-data \lvm2
  1. 使用国内阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 更新yum安装包
yum makecache fast
  1. 安装 docker ce
yum -y install docker-ce docker-ce-Cli containerd.io
  1. 启动docker
systemctl start docker
  1. 测试
docker version
docker run hello-world
docker images

在这里插入图片描述

常用命令

echo

grep

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37021857/article/details/127866226

智能推荐

数据结构与算法 - 07 二分搜索与贪婪_基础结果搜索数据结构贪心-程序员宅基地

文章浏览阅读250次。二分搜索 Binary Search 定义 又叫 折半搜索 在有序数组中查找某一特定元素的搜索算法 前提:数组必须有序 优点 时间复杂度:O(lgn),非常高效 又叫 对数搜索 缺点 要求待查找的数组或区间是排好序的 应用 数据是排好序的,且不会经常变动 代码 递归 非递归 贪婪 Greedy 定义 每一步都采用在当前状态下最好或最优的选择,从而希望导致结果是最好或最优的算法 优点 从局部考_基础结果搜索数据结构贪心

【个人网站开发 · 记录四】开发阶段一 —— 原生VuePress开发(上)手动搭建个人博客网站的详细记录_vuepress创建项目模板还是手动-程序员宅基地

文章浏览阅读929次。文章目录一. 第一部分1.1 xxx1.2 xxx二. 第二部分2.1 yyy2.2 yyy前言部分一. 第一部分1.1 xxx1.2 xxx二. 第二部分2.1 yyy2.2 yyy_vuepress创建项目模板还是手动

kali系统简单入门_kali快速入门-程序员宅基地

文章浏览阅读997次。kali基础操作命令作用及格式_kali快速入门

word 此文件来自其它计算机,问题解决: 此文件来自其他计算机,可能被阻止以帮助保护该计算机/WORD在试图打开文件时遇到错误……...-程序员宅基地

文章浏览阅读3.1k次,点赞2次,收藏6次。最近,在打开下载的office文档(包括word、excel、ppt等)时候,总是无法直接打开,错误提示如下:无论是邮件中的还是别的网站下载的,均提示该错误。后来搜索相关资料发现,修改其文件属性即可打开(属性---》解除锁定)。但是也不能每次下载文件都去修改呀,太费事了。原因分析:这一切都要从WindowsXP的SP2说起,在SP2之前,大概是2004年吧,由于当时互联网得到了一个比较大的发展,导..._此文件来自其他计算机可能被阻止

谷歌chorme浏览器版本降级_如何将googlecharme的版本降低-程序员宅基地

文章浏览阅读3.8k次。升级了谷歌最新版不习惯,如何降级版本未完待续。。电脑中的Chrome谷歌浏览器升级到了最新版本,但是有种种的不适应,如何能恢复到之前的旧版本呢?我们来看看操作步骤,而且无需卸载重装。怎么恢复Chrome 之前版本?1、关闭Chrome进程,打开chrome.exe所在目录,在Win8下的路径是(X:\Users\用户名\AppData\Local\Google\Chrom..._如何将googlecharme的版本降低

通过EDID信息,获取电脑显示器序列号_edid-decode查询显示器序列号-程序员宅基地

文章浏览阅读5k次。某天突发奇想,能不能通过软件把电脑主机和显示器绑定,于是研究了下,发现需要获取显示器的DDC信息,通过驱动层面获取难度比较大,网上查询了下,linux的driver里video中有相关代码段,通过一直可以搞定,不过没有尝试,最后通过注册表发现了一个键值也能达到目的,HKEY_LOCAL_MACHINE->SYSTEM->ControlSet001->Enum->Display中的第一项就是_edid-decode查询显示器序列号

随便推点

hbase问题记录_regionserver not connect-程序员宅基地

文章浏览阅读743次。1. [hbase]hadoop 异常记录 ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times #---------------------------------------------------------------------------------------------------_regionserver not connect

CAS单点登录原理解析(转载+补充)_cas的过滤器分析-程序员宅基地

文章浏览阅读241次。转自博客园前言前言1. 什么是单点登录单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。我们目前的系统存在诸多子系统,而这些子系统是分别部署在不同的服务器中,那么使用传统方式的session是无法解决的,我们需要使用相关的单点登录技术来解决。前言1.2 ..._cas的过滤器分析

写给入门看的Git的安装配置和使用_java git 安装配置-程序员宅基地

文章浏览阅读498次。1. 安装(Windows)1.1 首先需要下载 git 的安装包1.2 下载完成之后双击安装包进行安装,安装比较简单,一路 next 就行1.3 安装完成之后我们鼠标右击和开始菜单中都可以找到 git注:Git Bash 打开为 Linux 的命令行(使用Linux的命令),Git CMD 使用的是 windows 下的 CMD命令,Git GUI是Git提供的一个界面化的操作面板,按照自己喜好方式选择,个人建议 Git Bash,但是 git 命令是统一的无需纠结。1.4 测试安装打开G_java git 安装配置

cpuz测试分数天梯图_2020开学季之手机CPU性能天梯图、拍照天梯图(0903)-程序员宅基地

文章浏览阅读973次。2020开学季手机如何选之手机CPU处理器SOC性能天梯图、后置拍照和前置拍照排行天梯(0903)本天梯持续更新,敬请关注收藏。天梯图目录1. 手机CPU(soc)性能排行榜天梯(20200723)2. 手机后置拍照性能天梯(20200811)3. 手机前置拍照性能天梯(20200811)4. 手机后置视频拍摄性能天梯(20200811)5. 手机前置视频拍摄性能天梯(20200811)6. 手机..._cpuz测试排行榜

PCIe的capability扩展空间字段解释_pci_capability_pciexp-程序员宅基地

文章浏览阅读2.8k次。这是一段关于高级错误报告的信息,其中包含多个字段和值。_pci_capability_pciexp

PotPlayer 无损截取视频片段_potplayer录制怎么无损画质-程序员宅基地

文章浏览阅读4.3w次,点赞9次,收藏5次。PotPlayer 无损截取视频片段_potplayer录制怎么无损画质