Linux学习

本文深入介绍了Linux操作系统,包括其开源性质、Linux发行版如CentOS,以及远程连接工具如MobaXterm。讲解了Linux的多用户、多任务特性,免费性,以及常用命令如ls、cd、mkdir、mv、cp等。还涉及了文件权限、用户管理、网络配置、系统命令如ping、ifconfig和网络连接工具。此外,还涵盖了文件压缩、备份、进程管理和软件包管理工具如yum。
摘要由CSDN通过智能技术生成

操作系统是计算机硬件和软件资源的计算机程序。
嵌入式操作系统:Android(底层是Linux)
在这里插入图片描述

1、Linux概述

Linux是一个开源的操作系统。只是一个操作系统核心,硬件和软件的接口。

Linux的基本思想

  • 一切都是文件:系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等
  • 每个软件都有确定的用途

1.1 Linux的特点

  • 多用户、多任务。Linux支持多用户,每个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最重要的一个特点,Linux可以使多个程序同时并独立运行。
  • 完全免费。Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码

1.2 Linux发行版本

在这里插入图片描述

1.3 Linux远程连接

常见远程连接工具

  • FinalShell:功能强大,有颜值,好操作
  • XShell :个人免费、商用收费
  • Putty:免费开源
  • SecurCRT:收费
  • MobaXterm:免费

条件:

  • 服务器IP地址
  • 服务器的账号和密码

基本步骤:

  • 入职后需向相关人员(运维/开发)获取服务器IP地址及账号密码等信息
  • 配合远程连接工具,配置连接使用服务器即可

在这里插入图片描述

内核版本----主版本号.次版本号.修订次数
奇数版本(次版本号)—开发版本 2.5.1
偶数版本(次版本号)—稳定版本 2.6.1

安装linux系统所需要的环境

  • VMware Workstation-桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试、部署新的应用程序的最佳解决方案
  • CentOS-Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放原代码规定释出的源代码所编译而成
  • MobaXterm-远程安全终端软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNET软件。可通过互联网远程连接到Linux主机,方便通过远程方式与Linux服务器一起工作

桥接网络:在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。主机网卡和虚拟网卡的IP地址处于同一网段,子网掩码、网关、DNS等参数都相同
NAT网络:使用NAT模式可以实现虚拟系统里访问互联网。就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机所在的网络来访问公网,相当于是虚拟机把主机当成一个路由器,由主机给虚拟机分配IP地址,该IP地址只能由主机访问,同一局域网内其他电脑无法访问
仅主机模式:主机和虚拟机之间互相可访问,但虚拟机无法访问互联网,其他电脑也无法访问虚拟机

配置网络
1、cd /etc/sysconfig/network-scripts/
2、vi ifcfg-ens33配置
以IPV6开头的命令删除,ONBOOT=yes(自动启用网卡)
3、service network restart激活服务
4、ping www.baidu.com可以联网了
5、ifconfig查看虚拟机ip地址(CentOS7系统不支持ifconfig命令,需要yum install -y net-tools安装网络工具,默认可以用ip addr)
6、关闭防火墙:
sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

使用MobaXterm远程连接虚拟机

2、Linux常用命令

2.1 目录管理

在这里插入图片描述
Linux下的常用目录如下:
/:整个系统的根目录,一般根目录下只存放目录,是整个系统目录树的起点
/home:包含(普通)用户的文件,包括参数设置文件、个性化文件、文档、数据、EMAIL、缓存数据等
/mnt:软盘、硬盘、优盘等外设的预设挂载点
/tmp:临时文件。该目录一般会定期被系统自动清理干净
/opt:可选的应用程序,一般自己装的软件文件,比如tomcat、apache等可以放到该目录下

/ 根目录
“~” 当前用户的家目录(当前用户的家目录的路径信息,例如:用户为root,则相当于/root;用户为admin,相当于/home/admin)
“.” 当前目录
“…” 上一层目录

做好虚拟机的快照工作,虚拟机内的系统出问题后,可随时恢复。

查阅命令帮助信息

  • command --help
  • man command

相对路径和绝对路径

凡是路径信息以“./”或’…/'开头的均为绝对路径;
凡是路径信息以”/“或”~“开头的均为相对路径

(1)pwd
功能描述:打印用户当前所处的路径
在文本模式下,使用命令:

[root@localhost ~]#pwd

(2)cd
功能描述:改变用户所在目录
格式:cd 目录名
[root@localhost ~]#cd .. 返回当前目录的上一级目录
[root@localhost ~]#cd - 返回上次所在目录
[root@localhost ~]#cd 返回当前用户的主目录(/home/用户目录),用户登录时,默认目录就是用户的主目录
[root@localhost ~]#cd /home 用路径切换到home目录

(3)ls
功能描述:显示指定目录下的内容
格式:ls [参数] [目录或文件]
参数:
-a 列举目录中的全部文件,包含隐藏文件
-l 列举目录中的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等
-al 列举全部文件的详细信息
-r 逆向,从后往前列举目录中的内容
-R 递归,该选项递归地列举当前目录下所有子目录中的内容
-s 大小size,数据块
ls -l 1.txt 列举文件1.txt的所有信息

(4)mkdir
功能:创建一个目录
格式:mkdir 目录名
常用参数:-p 如果父目录不存在,则自动创建父目录,方便我们多级创建目录

(5)mv
功能:重命名目录、文件、文件剪切
重命名:mv 文件名 重命名文件名
剪切:mv 文件名 路径

(6)cp
功能:拷贝(复制)文件/目录,可结合通配符*使用
格式:cp 源文件 目标文件
例如:[root@localhost ~]#cp test.txt /home/dagou.txt 将当前目录下文件test.txt文件拷贝到路径/home文件夹下,并改名为dagou.txt
-i 互动:如果文件将覆盖目标中的文件,它会提示确认
-r 递归:复制整个目录、子目录以及其他(文件夹)
-v 详细:显示文件的复制进度
-f 覆盖已经存在的目标文件而不提示

2.2 文档编辑

(1)vi使用:命令模式、插入模式、编辑模式
功能:文件编辑命令,如果文件存在则打开该文件,如果文件不存在就创建一个新文件
格式:vi file_name
说明:上面的命令直接进入vi的命令模式

从命令模式进入编辑模式,需要按i键或a键
1)i插入文本 “INSERT”
2)a追加文本
使用ESC键可以从编辑模式进入命令模式
可执行的操作:
1):w 保存文件
2):wq 保存并退出
3):wq! 保存并强制退出
4):q 退出
5):q! 强制退出
6)dd 删除一行文字
7)x 删除一个字符
8):n 光标移至文本第n行
9)$ 光标移至文本的行尾
10)G 光标移至文本的末尾
11)/ 查找某个字符串 /sdb

(2)rm
功能:删除文件或目录,可结合通配符*使用
格式:rm [选项] 文件名
rm -i与rm作用相同,删除时会提示是否删除
-r 递归地删除目录下的内容,删除文件时必须加此参数
-f 强制删除,不会提示
删除当前目录下所有文件和文件夹:rm -rf *
"rm -rf / * ":删除根目录下所有文件(删库跑路、核弹命令)

(3)touch
功能:创建空白文件(不能插入内容)
语法:touch 文件名(可同时创建多个文件)
例如:touch 12.txt 13.txt 14.txt

管道

Linux允许将一个命令的输出可以通过管道 | 作为另一个命令的输入
常用的管道命令有:

  • less:分屏显示内容
  • grep:在命令执行结果的基础上查询指定文本

(4)grep
功能:完成对文本文件内容的模式查找,所谓模式查找就是支持正则表达式查找(在一堆文件中查找一个特定的字符串)
格式:grep [选项] 内容 文件名
例如:grep money text.txt 在text.txt文件中查找money字符串grep,grep查找区分大小写
常用参数:
-c 只输出匹配行的计数:grep -c 1998 data.f
-i 不区分大小写(只适用于单字符):grep -i sept data.f
-h 查询文件时不显示文件名:grep -h sept data*
-l 查询多文件时只是输出包含匹配字符的文件名:grep -l sept data*
-n 显示匹配行及行号:grep -n -i sept data.f
-v 显示不包含匹配文本的所有行:grep -v sept data.f

例:查找demo文件内容中包含mysql的信息

grep mysql demo
ls -al /usr/bin/ | grep mysql

(5)find
功能:通常在特定的目录下搜索符合条件的文件
格式:find 路径 -参数 [-print -exec -ok]
常用参数:
-name:按照文件名进行查找
-type:按照文件类型进行查找(-f文件 -d路径)
-perm:按照文件执行权限进行查找
例如:
查找文件

find /home -name "test*"
find . -name "test1.txt"
find . -type f -name "test"
find . perm 644

查找并执行命令

find /home -type f -name "test*" -exec ls -l {} \;  // 显示文件详细信息
find . -type f -name "test*" -exec rm {} \;  // 查找并删除文件(无确认)
find . -name "test*" -ok rm {} \;  // 查找并删除文件(有确认)
find /etc -name "pass" -exec grep "root" {} \;

2.3 文件管理

(1)cat
功能:会一次显示文件所有内容,适合查看内容较少的文本文件
格式:cat filename1 filename2
例如:在屏幕上显示整个文件的内容 cat 1.txt
常用参数:
-n:对所有输出行进行编号
-b:与-n相似,但对空白行不编号
-v:显示控制字符

(2)less
功能:用于分屏显示文件内容,每次只显示一页内容,适合于查看内容较多的文本文件
格式:less [参数] 文件
-N:对输出的所有行编号
操作键:

  • 空格键:显示手册页的下一屏
  • Enter/上下光标键:一次滚动手册页的一行
  • b:回滚一屏
  • f:前滚一屏
  • q:退出
  • /word:搜索word字符串

(3)more
功能:分页显示文件内容较多的文件信息
格式:more options filename
参数:
-num:每页显示多少行内容
+num:从多少行开始显示

(4)head tail
功能:从文件的首/尾进行查看,多用于查看日志文件内容(负责记录系统或程序运行过程信息的文件)
格式:
head 文件名:查看文件前10行内容
head 数字 文件名:查看文件特定前几行内容
tail 文件名:查看文件后10行内容
tail 数字 文件名:查看文件特定后几行内容
tail -f 文件名:实时监控文件内容,用于查看线上服务的运行日志,实时显示写入日志的信息(动态查看日志文件内容
参数:
-n:指定显示行数

(5)ln
软链接:ln -s 原文件名 链接文件名,类似于Windows下的快捷方式
硬链接:ln 原文件名 链接文件名,类似于复制文件
删除原文件,软链接文件会失效,硬链接文件不受影响
给demo文件创建链接文件名为ldemo:ln -s demo ldemo

2.4 文件权限

Linux中将文件的权限分为只读、可写、执行三种,分别以**r(read)、w(write)、x(execute)**表示
在这里插入图片描述

  • ①表示文件的类型,“d”表示该文件为目录,也就是通常意义的文件夹;“-”表示该文件是一般文件,“|”表示该文件为一个链接,也就是通常意义上的快捷方式
  • ②表示文件所有者的权限,其中r为读权限、w为写权限、x为执行权限(默认状态下文件是谁创建的谁就是所有者)
  • ③表示文件所属组的权限
  • ④表示其他人对该文件拥有的权限
  • ⑤表示链接数,即有多少链接是指向该文件的
  • ⑥表示文件拥有者
  • ⑦表示文件所属组
  • ⑧表示文件的大小
  • ⑨表示文件最后修改日期
  • ⑩表示文件名称

(1)chmod
功能:修改文件/文件夹权限
格式:chmod [-R] 权限 文件名/路径名(修改文件夹的权限时-R)
权限定义的两种方式
1)数字表示法
r-4,w-2,x-1
2)加减权限法
+:添加权限(w、r、x)
-:删除权限(w、r、x)
u:文件拥有者,g:文件所属组,o:其他人,a:所有人
chmod u+x*:为文件所有者添加执行权限
chmod g+rx*:为文件所属组添加可读可执行权限
chmod a-r*:为所有人删除可读权限
chmod gu-x*:为文件所有者和所属组去掉可执行权限

(2)chgrp
功能:为文件/文件夹修改所属用户组
格式:chgrp[-R] 组名 文件名/路径名

(3)chown
功能:为文件/文件夹修改文件所有者
格式:chgrp[-R] 用户名 文件名/路径名

(4)whereis
功能:查找系统文件的位置,通常用于系统自带二进制文件的查找。普通文件的查找应该使用find命令
格式:whereis 文件名

(5)which
功能:跟whereis类似,一般用于查找环境变量$PATH中指定的目录里查找符合条件的文件。常用来查找可执行命令(在Linux系统中,无论是自己安装的程序还是系统自带命令,本质上都是一个可执行程序,想要获取程序安装位置:which 程序名
格式:which 文件名

2.5 系统设置及网络相关命令

(1)echo
功能:显示字符串或将字符内容写入文本中
格式:echo 字符串内容
-e:让字符串中含有的转义字符生效

(2)重定向
功能:将本应显示在终断上的内容输出/追加到指定文件中
“>”:新建重定向(输出,会覆盖文件原有内容)
“>>”:追加重定向(追加,将内容追加到已有文件的末尾)
格式:文件流 > 文件名;文件流 >> 文件名

(3)netstat
功能:显示各种网络相关信息(一般需要root用户权限,才能看到更详细的端口信息)
常用命令:netstat -apn | grep 端口名
参数:
-t:列出TCP协议端口
-u:列出UDP协议端口
-n:不使用域名与服务名,而使用IP地址和端口号
-l :仅列出在监听状态网络服务(只有TCP有监听状态)
-a:列出所有网络连接
-r :列出路由列表
-p:显示 PID 和程序名

netstat -anptu:查看所有的进程和端口使用情况,一般用来查看端口被哪些程序使用,但是我们不单独使用
netstat -anptu | grep mysql:结合grep查找指定程序打开的端口,比如查找mysql正在使用的端口号

端口号
想要连接至计算机,需要使用IP地址,再想获取在计算机上运行程序,需要通过端口号。同一台计算机不能有多个程序同时使用同一端口号,因此在运行程序时,如果提示“端口号被占用”,那就需要先找到占用端口号的程序并结束掉,然后才能运行目标程序。
常见端口号:

  • HTTP:80
  • HTTPS:443
  • SSH:22
  • MySQL:3306

(4)lsof
功能:列出当前系统打开文件的工具,可以用于查看系统中正在使用端口的详细信息,一般需要root用户权限,才能看到更详细的端口信息
lsof -i:列出符合条件的进程,如果不给出条件,则默认显示所有进程打开的所有文件
lsof -i:3306:列出使用端口3306的进程信息,查看3306这个端口被哪个应用程序占用了

(5)ps
功能:查看系统进程信息
常用命令:ps -ef | grep tomcat 通过应用名称查找进程信息,一般关注进程ID(PID)
-a:显示终端上的所有进程,包括其他用户的进程
-u:显示进程的详细状态
-x:显示没有控制终端的进程
ps -aux:process status查看当前系统中正在执行程序的详细状况
ps -aux | grep nmon:通过查询系统内的所有进程信息,并配合grep命令进行信息过滤,最终通过获取程序名得到其对应的PID(进程ID)

(6)kill
功能:通过进程ID杀死对应的进程(通常用于强制退出程序)
常用命令:kill -9 进程ID

结束或关闭程序的基本步骤:
1)ps -aux | grep 程序名:获取目标程序的PID
2)kill -9 进程ID :强制结束或关闭对应软件程序

(7)top
功能:动态显示运行中的进程信息并且排序(命令行形式的“任务管理器”)

(8)ping
功能:测试网络连通性
基本格式:ping [-参数] IP或域名
参数:
-b:后面加入广播地址,用于对整个网段进行探测
-c:次数 用于指定ping的次数
在Linux中,ping命令会一直进行,使用CTRL+C终止

(9)ifconfig
功能:查看和设置网卡信息
(10)mail
功能:发送和接收电子邮件
(11)traceroute
功能:显示数据包到主机间的路径
(12)setup
功能:配置网络
(13)nslookup
功能:进行域名与IP地址解析
(14)route
功能:查看路由表条目

查看操作系统信息
查看当前系统内核版本信息:cat /proc/version
查看当前系统发行版本信息:cat /etc/redhat-release
不同系统的版本信息查看都是通过查看特定文件内容来获取,不同系统文件名可能不同;其它系统需要获取系统版本信息可以搜索:系统类型-内核版本/发行版本

重启与关机
reboot:重新启动操作系统,执行命令后立即重启操作系统
shutdown(poweroff):关闭操作系统,执行命令后提示1分钟后关闭操作系统
shutdown -r now:重启操作系统,shutdown会给别的用户提示
shutdown -h now:立刻关机,其中now相当于时间为0的状态
shutdown -h 20:25:定时关机
shutdown -h +10:系统再过10分钟后自动关机

运行程序:./程序名

nmon:是一个第三方的命令行形式的任务管理器工具,可以通过该工具获取Linux相关的资源信息(CPU/内存/硬盘/网络)
在这里插入图片描述

2.6用户管理

(1)切换账号:su
普通用户 -> root用户
su -:切换到root用户,需要输入root用户的密码
root用户 -> 普通用户
su - 用户名:切换到指定用户,无需输入密码

(2)查看用户
查看当前系统中所有登录用户信息:who -q
查看当前用户名:whoami

(3)退出登录账户:exit

  • 如果是图形界面,退出当前终端
  • 如果是使用ssh远程登录,退出登录用户
  • 如果是切换后的登录用户,退出则返回上一个登录账号

2.7 备份压缩命令

(1)gzip
功能:压缩/解压文件(gz后缀结尾)
格式:gzip 文件名:压缩为以gz为后缀的文件(将对每个文件进行单独压缩,不是压缩到一起)
gzip -d xxx.gz :解压缩xxx.gz文件

(2)tar
功能:压缩/解压文件(tar.gz后缀结尾)
文件压缩:tar -zcf 目标文件名.tar.gz 源文件名
文件解压:tar -zxf 目标文件名.tar.gz

(3)zip
功能:压缩文件/文件夹(zip后缀结尾),需要单独安装
常用命令:
zip xxx.zip 待压缩文件:将待压缩文件压缩为xxx.zip文件
zip -r xxx.zip 待压缩文件夹:将待压缩文件夹压缩为xxx.zip压缩文件

(4)unzip
功能:解压缩zip结尾的压缩文件
格式:unzip xxx.zip

(5)rpm包
rpm包的安装,rpm是centos官方提供的编译包,很多centos系统中的工具或依赖包都可以通过rpm包的形式来进行安装和升级
使用方式:
安装rpm包:rpm -ivh xxx.rpm
卸载rpm包:rpm -e xxx.rpm
更新rpm包:rpm -uvh xxx.rpm

yum软件包管理工具
yum(Yellow dog Updater,Modified)是一个在Linux系统中常用的软件包管理器。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁又好记。
常用命令:
yum list:列出所有可安装的软件清单
yum search:查找软件包
yum install <package_name>:安装指定软件
yum update <package_name>:更新指定软件
yum update:更新所有软件
yum remove <package_name>:删除软件包
在这里插入图片描述
apache-tomcat-8.5.42.tar.gz
jdk-8011-linux-i586.tar.gz
xampp-linux-1.6.7.tar.gz
(1)tar -zxf xampp-linux-1.6.7.tar.gz ----->lampp;
mv lampp /opt/;
./lampp start 启动(restart重启)
(2) ifconfig查看ip地址,在浏览器输入ip访问
(3)进入XAMPP数据库,添加用户root,密码为123456
(4)cd ~;ls -a(查看隐藏文件,以.开头).bash_profile环境变量文件;vi .bash_profile添加环境变量信息:
JAVA_HOME=/opt/java
CLASS_HOME = J A V A H O M E / b i n P A T H = JAVA_HOME/bin PATH= JAVAHOME/binPATH=PATH: H O M E / b i n : HOME/bin: HOME/bin:JAVA_HOME/bin
source .bash_profile生效;java、javac查看
(5)vi ~/.bash_profile添加环境变量信息:
CATALINA_HOME=/opt/tomcat
CATALINA_BASE=$CATALINA_HOME
source .bash_profile生效
cd tomcat/;
cd bin/ 在bin文件夹下启动tomcat:./startup.sh
./shutdown.sh关闭tomcat

Linux传输文件的方式

  • FTP:文件服务器,可实现文件的上传、下载、存储功能
  • scp:能够将不同主机的文件进行相互传输,使用简单方便
  • rz:用于Linux与Windows之间的文件上传
  • sz:用于Linux与Windows之间的文件下载
  • rsync:文件同步工具,结合inotify可以实现文件的同步、备份功能

Linux中find和grep的区别

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,它的使用权限是所有用户。
find是在目录结构中搜索文件,并执行指定的操作。此操作提供了相当多的查找条件,功能很强大。从指定的其实目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值