初识Linux
1、Linux 全称 “GNU/Linux” 是一种免费,开源的操作系统,常作为服务器的操作系统使用。
2、Linux 内核最初只是由芬兰人林纳斯·托瓦兹 1991年25岁上大学时出于个人爱好而编写的。
3、Linux 英文解释为 Linux is not Unix
4、Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。
5、Linux还有一项最大的特色在于源代码完全公开,在符合GNU GPL(General Public License)的原则下,任何人皆可自由取得、散布、甚至修改源代码。是自由软件及开放源代码的代表。
Linux 现在泛指一类操作系统,具体的发行版本有:
Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
Linux 服务器是设计出来进行业务处理应用的,在网络和计算机系统当中有广泛的应用,可以提供数据库管理和网络服务等内容,是一种性能非常高的和开源的服务器,在我国的计算机系统的客户端当中,有很多采用的就是 Linux 系统,其使用的范围非常广泛,用户体验反应较好。
对于一些希望计算机应用性能比较高的单位而言,Windows 系统需要经常进行资源整合和碎片化管理,系统在配置的时候经常需要重新启动,这就无法避免产生停机的问题。同时,由于 Linux 系统的处理能力非常强悍,具备不可比拟的稳定性特征,因而 Linux 系统就不用经常进行重启,Linux 系统的变化可以在配置的过程中实现,所以 Linux 服务器出现故障的概率比较小,很多企业组织在计算机配置的过程中经常使用 Linux 系统,从而降低服务器发生崩溃的可能性,很多企业在配置 Linux 系统的时候,都是通过减少服务器的故障发生率,实现企业业务的高效运转。
1、整机安装
2、双系统并存安装
3、虚拟机安装
虚拟机的安装请查看博文 《虚拟机的安装与配置》
Linux系统的安装请查看博文《Linux安装配置详细教程》。
在阿里云、腾讯云、华为云 等云服务器上可直接购买专属的Linux服务器
目前国内 Linux 更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows。主要区别如下
比较 | Windows | Linux |
---|---|---|
界面 | 界面统一,外壳程序固定所有 Windows 程序菜单几乎一致,快捷键也几乎相同 | 图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux 的终端机是从 UNIX 传承下来,基本命令和操作方法也几乎一致。 |
驱动程序 | 驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的 Windows 下的驱动,也会比较头痛。 | 由志愿者开发,由 Linux 核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD 等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。 |
使用 | 使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。 | 图形界面使用简单,容易入门。文字界面,需要学习才能掌握。 |
学习 | 系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。 | 系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。 |
软件 | 每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。 | 大部分软件都可以自由获取,同样功能的软件选择较少。 |
Kernel(内核): 操作系统的核心,直接管理主机硬件,为众多应用程序提供硬件的安全访问接口。
Shell(壳): 为了使用者操作方便,操作系统为用户提供操作界面。操作界面分为图形界面和命令行式界面。Shell将用户的一系列操作转化为内核可以执行的指令。所以Shell又称为命令解释器
Linux : 为操作系统提供命令解释的解释器
软件、硬件、文档都属于文件,常用目录如下:
目录名称 | 说明 |
---|---|
/ | Linux系统根目录 |
/bin | 系统启动时需要的执行文件(二进制) |
/dev | 设备文件目录 |
/opt | 给第三方软件放置的目录。在以前的linux下我们放置在/usr/local下面 |
/tmp | 公用的临时文件存储位置 |
/etc | 操作系统的配置文件目录(防火墙、启动项) |
/mnt | 系统提供这个目录是让用户临时挂载其他的文件系统 |
/media | 放置可以删除的设备,包括软盘,光盘,dvd等都临时挂放在此 |
/home | 用户信息存放的目录,用户的默认工作目录 |
/usr | 程序和数据存放目录 |
/lib | 根文件系统上的程序所需的共享库,存放根文件系统程序运行所需的共享文件 |
/var | 包含在正常操作中被改变的文件:假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等 |
ls
(英文全拼:list files): 列出目录及文件名cd
(英文全拼:change directory):切换目录pwd
(英文全拼:print work directory):显示目前的目录mkdir
(英文全拼:make directory):创建一个新的目录rmdir
(英文全拼:remove directory):删除一个空的目录cp
(英文全拼:copy file): 复制文件或目录rm
(英文全拼:remove): 删除文件或目录mv
(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称man cp
显示当前目录的绝对路径:pwd
打开指定目录:cd [目录名]
返回上级目录:cd ..
显示目录中的文件 ls [-a],ll
新建文件目录:mkdir [文件夹名称]
递归新建多级目录:mkdir –p [文件夹名称]
删除文件或目录:rm –rf [目录或者文件]
删除前询问:rm ri [目录或者文件]
递归复制目录1的所有的文件和文件夹到目录2:cp –r [目录1][目录2]
执行复制操作时覆盖原有目录前询问用户:cp –ri [目录1][目录2]
将文件夹1名称更改问文件2:mv [文件1][ 文件2]
将目录1的文件移动到目录2:mv [目录1][ 目录2]
1、ls
仅罗列出当前文件名或目录名
2、ls -a
或者 ls -al
列出目录下的所有文件,包括以 . 开头的隐含文件。
3、ls -l
或者ll
列出文件的详细信息。
cd dir,dir为指定目录的路径,可以是绝对路径也可以是相对路径,如:
cd usr
cd /
是跳转到根目录,(根目录
是所有用户共享的目录)
cd
、cd ~
和cd $HOME
跳转到当前用户的家目录
root账户:
aiden账户:(所有普通用户的父目录都是Home目录)
在linux系统中经常有新建文件夹的需要,接下来使用mkdir
命令实现文件夹的创建操作:
mkdir aidenFile
mkdir file1 file2 file3 file4 file5
mkdir -p folders/subDirectory
mkdir -p {folder1,folder2,folder3}/subFolder
mkdir --help
-m
:在创建目录的同时设定权限
-p
:可新建多级文件夹,当路径中的某个目录已经存在时,跳过该目录继续创建下一级目录
-v
:显示创建目录的过程信息
-Z
:将每个创建的目录的SELinux 安全环境设置为CTX
使用rmdir
可以删除文件夹 you can delete a folder using rmdir
rmdir folder4
注意:删除的文件夹必须为空
rmdir folder5 folder6 folder6
注意:删除的文件夹必须为空
要删除其中包含文件的文件夹,我们将使用更通用的rm
命令,该命令使用-rf
选项删除文件和文件夹
rm
命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录全部删除。
注意: 使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm
命令可以用-i
选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。
rm -d
:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
rm -f
:强制删除文件或目录;
rm -i
:删除已有文件或目录之前先询问用户;
rm -r
或rm -R
:递归处理,将指定目录下的所有文件与子目录一并处理;
rm -v
:显示指令的详细执行过程。
首先在folders目录下创建
file1.txt
、file2.txt
两个文本文件,然后使用rm
命令删除file1.txt
,此时删除系统会有删除提示:rm:remove regular empty file ‘file1.txt’?
,这时输入y
可确认删除。
先创建一个mydir文件夹,在该文件夹内再添加一些文件夹和文件如下所示:
rm -rf mydir
rm -rf *
rm -rf !(1.txt)
rm -ri dir3
操作准备:
复制dir1目录中的1.txt文件到dir2目录:
cp dir1/1.txt dir2
复制dir1目录中的所有txt文件到dir3目录:
cp dir1/*.txt dir3
复制源文件夹dir1到目标文件夹dir2下:
cp -r dir1 dir2
cp -ri dir1/*.txt dir2
语法:
mv [选项] 源文件或目录 目标文件或目录
作用:
用来为文件或目录改名、或将文件或目录移入其它位置
参数说明:
--backup=[=CONTROL]
若需覆盖文件,则覆盖前先行备份
-b
当文件存在时,覆盖前,为其创建一个备份。功能类似于--backup,但是不需要接收参数
-f, --force
若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录,不进行提示
-i, --interactive
交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖
-n, --no-clobber
不覆盖现有的同名文件或目录;如果同时指定多个以下选项,-i, -f, -n,则只有最后一个生效
--strip-trailing-slashes
删除参数 SOURCE 中所有目录末端的斜杠
-S, --suffix=SUFFIX
为备份文件指定后缀,而不使用默认的后缀
-t, --target-directory=DIRECTORY
指定源文件要移动到的目标目录
-u, --update
当源文件比目标文件新或者目标文件不存在时,才执行移动操作
-v, --verbose
冗余模式执行 mv,解释 mv 命令的执行过程
--help
显示帮助信息并退出
--version
显示版本信息并退出
命令格式 | 运行结果 |
---|---|
mv source_file(文件) dest_file(文件) | 将源文件名 source_file 改为目标文件名 dest_file |
mv source_file(文件) dest_directory(目录) | 将文件 source_file 移动到目标目录 dest_directory 中 |
mv source_directory(目录) dest_directory(目录) | 目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory |
mv source_directory(目录) dest_file(文件) | 出错 |
将文件oldFile.txt名称更改为newFile.txt:
mv oldFile.txt newFile.txt
将
myInfo
目录放入myLogs
目录中
mv myInfo myLogs
将mydir目录下的所有文件和目录移到myFolder目录下命:
mv mydir/* myFolder
touch 文件名
cat -n 文件路径
通过n参数,在查看文件时可以显示出行号 cat会把整个文件内容输出到控制台,单纯使用cat查看文件内容时,相当与在读取文件,而不能修改文件,所以比较安全
cat 文件 | more
加上| more后,不会把整个文件的内容输出到控制台,而是把文件内容一部分输出到控制台,可以按回车键查看下一行,按空格查看下一页,按q键停止查看(适用于查看比较大的文件)
cat常用参数:
-n
:显示行数(空行也编号)
-s
:显示行数(多个空行算一个编号)
-b
:显示行数(空行不编号)
-E
:每行结束处显示$符号
-T
:将TAB字符显示为 ^I符号
-v
:使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e
:等价于”-vE”组合
-t
:等价于”-vT”组合
-A
:等价于 -vET组合
–help
:显示帮助信息
–version
:显示版本信息
cat语法:
cat [参数] [文件]
使用cat 查看
linux命令1.txt
文件信息,此时文件内的所有信息将会显示在控制台中:
使用
cat > hello.txt
实现创建并打卡文件,我们可以在里面写入一些文字,然后按回车键,最后按ctrl + d
快捷键退出cat编写状态.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o021NL0m-1658196776432)(E:\BDQN\BCSP\课件笔记\Linux\03-Linux入门.assets\1657854325475.png)]
使用cat -n 实现查看文件时,显示行号
语法:
head [参数] [文件]
参数:
-q
:隐藏文件名
-v
:显示文件名
-c<数目>
:显示的字节数。
-n<行数>
: 显示的行数。
分别查看文件的 前3行 和 前5行 的文本文件信息
语法
tail [参数]
显示
myfile.txt
文件的 最后10行:
tail myfile.txt
查看
myfile.txt
文件,最后24个字节:(UTF-8编码下中文占3个字节)
tail -c 24 myfile.txt
查看myfile.txt文件,如果该文件是一个实时进行日志记录的文件,总是显示后10行:
tail -f 10 myfile.txt
less运行时可以输入的命令有:
空白键
:向下翻动一页;[pagedown]
:向下翻动一页;[pageup]
:向上翻动一页;/字串
:向下搜寻『字串』的功能;?字串
:向上搜寻『字串』的功能;n
:重复前一个搜寻 (与 / 或 ? 有关!)N
:反向的重复前一个搜寻 (与 / 或 ? 有关!)q
:离开 less 这个程序;vi:一款功能强大的全屏幕文本编辑器
vm:是vi的增强版,完全兼容vi
模式
1.命令行模式(Command Mode)
2.插入模式(Insert Mode)
3.底行模式(Last Line Mode)
vi命令参数
参数名 | 解释 |
---|---|
:q : | 退出 |
:wq | 保存并退出 |
:w | 保存编辑内容 |
:q! | 强制退出 |
:wq! | 强制保存并退出 |
:set number 或:set nu | 显示行号 |
:set nonumber 或:set nonu | 取消显示行号 |
示例 1:打开或新建文件,并将光标置于第一行首
vi hello.txt
示例 2:打开文件,并将光标置于第n行首
vi +2 hello.txt
示例 3:打开文件,并将光标置于最后一行首
vi + hello.txt
示例 4:命令模式下显示行号
UID
:用户唯一标识GID
:用户分组唯一标识root用户
:Linux系统权限最高的用户su 用户名
whoami
groups
id
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ][-u ][用户帐号]
注意 useradd命令 添加用户时,当前登录的用户需要有相应的权限才能添加
useradd 用户名
添加一个新账号
yang
useradd 用户名 -u 520
passwd 用户名
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将
/etc/passwd
等系统文件中的该用户记录删除,必要时还删除用户的主目录
userdel [选项明] 用户名
常用命令: userdel -r 用户名
,它的作用是把用户的主目录一起删除此命令删除用户ztl在系统文件中(主要是/etc/passwd
, /etc/shadow
, /etc/group
等)的记录,同时删除用户的主目录。
注意: 当我们想删除某个用户的时候,出现 user xxx is currently used by process xxx
,可能的原因是你创建用户yun
之后,使用su命令切换到yun
用户下,之后又想删除yun
用户,使用su root
切换到root
用户下,使用userdel yun
。出现上述情况的根本原因在于切换回root
用户之后,yun
还被某个进程占用。
usermod -l [新用户名] [旧用户名]
usermod -g [新组名称] [用户名]
groupadd [组名]
要查看系统上存在的所有组,只需打开该
/etc/group
文件即可。此文件中的每一行代表一个组的信息。
使用
getent group
命令也是可以查看所有分组
groupadd -g [组GID] [组名]
使用者分类
U
:属主
G
:属组
O
:其他人
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
r :读(read) | 可读取文件内容 | 可列出目录内容 |
w :写(write) | 可以修改文件内容 | 可在目录创建、删除文件 |
x :执行(execute) | 可以作为命令执行 | 可访问目录内容 |
查看当前文件夹下文件、目录权限
d
:是目录而不是文件
rwx
:拥有者具有读
、写
、执行
的权限
chmod命令
语法:
chmod [选项] [参数]
选项
选项 | 说明 |
---|---|
-c | 当发生改变时,报告处理信息 |
-R | 处理指定目录以及其子目录下的所有文件 |
-f | 错误信息不输出 |
-v | 运行时显示详细处理信息 |
参数
=> 权限模式
+,-:赋予,收回权限
r,w,x:读,写,执行权限
示例: chmod u=rwx, g=rw, o=rw f01
=> 数字模式
使用三位二进制数表示
示例:chmod 777 –r f01
Linux授权模式分两种:
1、数字授权: chmod 753 –r F01
2、权限授权:chmod –r U+X,G+W F01
查看主机IP地址
ifconfig
启动网卡命令
ifconfig [网卡标识] up
关闭网卡命令
ifconfig [网卡标识] down
重写获取IP命令
dhclient
注意:安装软件时需要查看主机IP地址。另外,如果虚拟机中网路连接失败,可以通过命令获得IP地址。
执行步骤:
注意: 远程连接协议选择SSH,端口为22
使用Xftp远程连接Linux
注意:远程连接协议选择SFTP,默认端口为22
什么是进程?
进程是程序运行的动态描述
进程PID:Linux系统中进程的唯一标识
进程生命周期
查看进程命令
语法:
ps [选项]
选项:
选项 | 说明 |
---|---|
-a | 显示一个终端的所有进程,除了会话引线 |
-u | 选择有效的用户id或者是用户名 |
-x | 显示没有控制终端的进程,同时显示各个命令的具体路径 |
-f | 全部列出,通常和其他选项联用 |
-aux | 显示所有包含其他使用者的行程 |
-ef | 显示所有命令,连带命令行 |
示例:
ps –ef
ps -ef | grep ssh
作用:
ps命令用于查看当前正在运行的进程,最常用的方法是ps aux
,然后再通过管道使用grep
命令过滤查找特定的进程,再对特定的进程进行操作,其中grep
起到搜索作用。
查看所有进程里CMD是java的进程信息
ps -ef | grep java
表示
ps -aux | grep java
-aux
显示所有状态,通常用ps查看进程PID,用kill命令终止进程,例如:kill -9 [PID]
,-9表示强迫进程立即停止。
进程的相关信息:
UID
:用户ID、但输出的是用户名
PID
:进程的ID
PPID
:父进程ID
C
:进程占用CPU的百分比
STIME
:进程启动到现在的时间
TTY
:该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程
CMD
:命令的名称和参数
停止进程命令
语法:kill [信号] PID
信号 | 含义 |
---|---|
0 | 程序退出时收到该信息 |
1 | 挂掉电话线或终端连接的挂起信号,会造成某些进程在没有终止的情况下重新初始化 |
2 | 表示结束进程,但并不是强制性的。常用的 Ctrl+C 组合键发出一个kill -2 的信号 |
3 | 退出 |
9 | 杀死进程,即强制结束进程 |
11 | 段错误 |
15 | 正常结束进程,是kill 命令的默认信号 |
kill -9 1829
清屏命令
clear
查询命令详细参数命令:
man [命令名称]
挂载命令:
mnt [设备名称] [挂载点]
第一步在根目录下创建一个mnt文件夹
cd /
mkdir mnt
第二步插入U盘
在虚拟机界面选择接入Linux
第三步:查看U盘分区名 sudo fdisk -l
第三步:sudo mount /dev/sdb1 /mnt
远程连接服务SSH相关命令
ssh [-l loginname] [-p port] [user@]hostname
通过SSH客户端,可以连接到运行SSH服务器的远程机器上,即用于远程登录Linux主机
查看更详细信息的命令:
ssh -h
Linux下软件一般都经过压缩
主要格式: rpm
、tar
、tar.gz
、tgz
安装、卸载软件
=>tar(Tape ARchive)
Tar工具
为Linux文件和目录创建档案,进行压缩、解压、备份
=>rpm(RedHat Package Manager)
rpm软件包的管理工具
对rpm形式的软件包进行安装、卸载、升级、查询、校验
=>yum(Yellow dog Update,Modified)
基于rpm包管理的Shell前端软件包管理工具
从指定的服务器自动下载rpm包,并安装
自动处理依赖性关系,一次安装所有依赖的软件包
tar
:解压安装安装包格式:tar
、tar.gz
、tar.bz
安装软件包:tar –zxvf [包名]
rpm
:直接安装安装包格式:rpm
安装软件包:rpm –ivh 软件包路径
卸载软件包:rpm –e 软件包全名
yum
:在线安装安装软件包:yum -y install subversion
卸载软件包:yum -y remove subversion
软件环境: CentOS 7.9(Linux)、Windows 10、Xftp 6.0
安装方式: rpm安装
软件版本: JDK1.8.x
安装步骤:
软件环境: CentOS 7.9(Linux)、Windows 10、Xftp 6.0
安装方式: tar安装
软件版本: Tomcat 9
安装步骤
注意事项: 如果Tomcat未启动,则首先检查防火墙是否打开,之后查看端口是否打开由于Tomcat依赖于JDK环境,因此,安装前必须确认本机已经安装JDK环境。
软件环境: CentOS 7.9(Linux)、Windows 10、Xftp 6.0
安装方式: rpm安装
软件版本: MySQL 8.0.x
安装步骤:
注意事项:
MySQL远程登录是否成功的两个要素:
3306端口是否打开
MySQL是否授权远程登录
最后附上Linux命令大全图一张