VMware虚拟机
Xshell+Xftp
Linux 是一个开源、免费的操作系统,具有很强的稳定性、安全性、以及处理多并发的能力,目前大多数企业级应用甚至是集群项目都部署运行在 Linux 操作系统上,很多软件公司考虑到开发成本都首选Linux,Linux 在中国软件公司得到了广泛的使用。
Linux 的主要发行版本有以下几种:
Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain(蝶变)、Fedora、SuSE、OpenSUSE、红旗Linux(国产)。
我们使用 CentOS 进行学习。
vi 和 vim 是 Linux 提供的文本编辑器。
模式 | 进入方法 |
---|---|
正常模式 | vim 文件名 ,进入正常模式。若文件存在,则打开文件;若文件不存在,则新建并打开文件。正常模式下只能进行读操作。 |
编辑模式 | 在正常模式下,按a 或i ,进入编辑模式,按ESC ,退出编辑模式。在编辑模式下可以进行读写操作。 |
命令模式 | 在正常模式下,输入: ,进入命令模式。命令模式下,输入q :文件没有做任何修改时退出;wq :保存并退出;q! :不保存强制退出。 |
快捷键 | 功能 |
---|---|
yy |
复制光标所在行 |
nyy |
复制光标所在行向下 n 行(包括光标所在行) |
p |
粘贴到光标所在行的下一行 |
dd |
删除光标所在行 |
ndd |
删除光标所在行向下 n 行(包括光标所在行) |
u |
撤销上一次操作 |
/xxx |
搜索 xxx,在命令模式下使用 |
set nu |
显示行号,在命令模式下使用 |
set nonu |
关闭行号,在命令模式下使用 |
root 账户,具有 Linux 系统的最高权限,可以进行用户管理操作。
在 root 账户下,使用命令:
useradd 用户名
:添加用户。useradd -d /home/目录名 用户名
。passwd 用户名
:为用户设置密码。密码不能少于7位,不能过于简单,不能是单词的组合。userdel -r 用户名
:删除用户以及用户根目录。userdel 用户名
:只删除用户,不删除用户根目录。id 用户名
:查看用户信息。主要用于查看用户的组信息。su 用户名
:切换用户。从 root 切换到其他用户可以直接切换;从其他用户切换到 root 需要输入密码。组是 Linux 中,进行权限管理的基本方式。可以将具有相同权限的用户放在同一个组中,便于管理。
groupadd 组名
:新建组。groupdel 组名
:删除组。gpasswd -a 用户名 组名
:将用户添加到组中。gpasswd -d 用户名 组名
:将用户从组中删除。useradd -g 组名 用户名
:创建用户时指定用户所在组(此时不会创建默认组)。shutdown now
:立即关机。shutdown -h 时间
:定时关机。时间可以为数字,单位为分钟;也可以为具体时间,如17:00。shutdown -r now
:立即重启。shutdown -c
:取消上一条 shutdown 命令。reboot
:立即重启。sync
:把内存的数据同步到磁盘。man 命令名
:查看该命令的系统说明文档。分屏显示,Enter
:下一行,空格
:下一页,q
:退出。help 命令名
:查看该命令的开发注释。pwd
:查看当前所在目录的全路径。ls [选项] [目录名]
:查看指定目录下的所有目录和文件。
ls
:查看当前目录。ls /home
:查看 home 目录。ls -a /home
:查看 home 目录下 (包括隐藏和虚拟的) 所有目录和文件。ls -l /home
:以列表形式展示 home 目录下的所有目录和文件。ls -al /home
:以列表形式展示 home 目录下(包括隐藏和虚拟的)所有目录和文件。cd 目录名
:切换目录。cd /home/mcc
:进入 mcc 目录。cd mcc
:进入 mcc 目录。~
:绝对目录,当前用户的根目录。~ = /home/用户名。cd ~
:进入用户根目录。..
:相对目录,当前目录的上一级目录。cd ..
:进入上一级目录。.
:相对目录,当前目录。cd ./xxx = cd xxx
:进入当前目录下的 xxx 目录。mkdir [选项] 目录名
:创建目录。如,mkdir /home/mcc/dir
:创建 dir 目录。mkdir -p 目录名/目录名
:创建多级目录。mkdir -p dir1/dir2
:创建 dir1 和 dir2 目录。rmdir 目录名
:删除一个空目录。touch 文件名列表(多个文件名用空格隔开)
:创建一个或多个空文件。如,touch text1.txt text2.txt
。创建后,如果需要编写内容,可以用 vi 或 vim 打开。vi 或 vim 创建的文件会默认直接打开。如果需要创建之后马上打开编辑,可以使用 vi 或 vim 创建;如果只需要创建,不需要打开,可以使用 touch 创建。
cp [选项] sourceFile dest
:将 sourceFile 复制到 dest (复制单个文件)。如,cp text1.txt dir/textcp.txt
:将 text.txt 复制到当前目录下 dir 文件夹下,文件名为 textcp.txt。cp -r sourceDir dest
:将 sourceDir 以及其中的文件,复制到 dest (复制目录和目录中的文件)。如,cp -r dir /home/mcc
,将 dir 目录和其中的文件,复制到 /home/mcc 下。rm 文件名
:删除文件。会提示是否确认删除。rm -f 文件名
:强制删除文件。不提示是否确认删除。rm -r 目录名
:删除目录以及目录中的文件。会提示是否确认删除。执行流程:先进入到目录中,删除目录中的全部文件,再删除该目录。rm -rf 目录名
:强制删除目录以及目录中的文件。不提示是否确认删除。命令 | 结果 |
---|---|
mv file dir |
(1)dir 存在,将 file 移动到 dir 下。(2)dir 不存在,将 file 重命名为 dir。 |
mv dir1 dir2 |
(1)dir2 存在,将 dir1,包括其中的子目录和文件,移动到 dir2 下。(2)dir2 不存在,将 dir1 重命名为 dir2。 |
mv file1 file2 |
将 file1 重命名为 file2,若 file2 已经存在,则会将 file2 覆盖。 |
cat [选项] 文件名
:以只读形式,查看文件内容。cat -n 文件名
:显示行号。head 文件名
:默认查看文件的前 10 行内容。head -n num 文件名
:查看文件的前 num 行内容。如,head -n 5 test.txt
:查看 test.txt 的前 5 行内容。tail 文件名
:默认查看文件的最后 10 行内容。tail -n num 文件名
:查看文件的最后 num 行内容。如,tail -n 5 test.txt
:查看 test.txt 的最后 5 行内容。echo 输出内容
:在控制台输出变量或常量的内容。其中,变量要用$变量名
表示。如,echo $PATH
:输出环境变量值;echo Hello, Linux
:输出 Hello, Linux。查看命令 > 文件
:写入。将查看命令查出的结果保存到指定文件中。若文件不存在,则新建文件再保存;若文件存在,则直接保存。若两次操作指定的文件相同,则后一次查看的结果会覆盖前一次。如,ls > res.txt
:将当前目录下的所有目录名和文件名,保存到 res.txt 中。如果再执行,ls test.txt > res.txt
:则会覆盖文件中原有内容,将本次查看结果保存到 res.txt 中。查看命令 >> 文件
:追加。与 > 类似,只不过新的查看结果会追加在文件的原有内容之后,不会覆盖。日期与时间:
date
:查看系统的日期与时间。date +%Y
:查看年份。date +%m
:查看月份。date +%d
:查看日期。date '+%Y-%m-%d %H:%M:%S'
:以 年-月-日 时:分:秒 的格式查看系统日期和时间。date -S '年-月-日 时:分:秒'
:设置系统日期和时间。日历:
cal
:查看当前月份的日历。cal 年份
:查看某一年的日历。find:
find [搜索范围] [搜索标准] 关键字
:按条件搜索。-name
:按名称查找,默认,文件或目录所在的路径也在搜索范围之内。-size
:按大小查找。-user
:按用户权限查找。find *a*.txt = find -name *a*.txt
。其中,*
是 Linux 系统中的通配符。find *d*
。find /etc *.txt
。find /etc -size -5M -name *.txt
。find /etc -user mcc
。locate:
locate 关键字
:在 Linux 系统的目录树中查找满足条件的目录和文件。updatedb
,再使用 locate 命令查找。查看或搜索命令 |grep [选项] 过滤条件
:对查看或搜索的结果进行进一步过滤。-n
,显示匹配行的行号;-i
,匹配时忽略大小写。|
:管道符,表示将前一个命令的处理结果,传递给后面的命令处理。find *.txt |grep a
:查找名称包含 a 的 txt 文件。cat text.txt |grep -ni abc
:查找 text.txt 中的 abc(忽略大小写),并显示 abc 所在行号。gzip 被压缩文件名
:压缩单个文件,后缀名为.gz
,并删除被压缩的文件。gunzip gz压缩包名
:解压 gz 压缩包,解压完成后删除压缩包。zip 压缩包名 被压缩文件或目录列表
:压缩单个或多个文件和目录,后缀名为.zip
。不会删除被压缩的文件和目录。unzip 压缩包名
:将压缩包解压到当前目录下。原压缩包不会被删除。unzip 压缩包名 -d 解压目录
:将压缩包解压到指定目录下。tar -zcvf 压缩包名 被压缩文件或目录列表
:压缩一个或多个文件和目录,后缀名为.tar.gz
。不会删除被压缩的文件和目录。tar -zxvf 压缩包名
:将压缩包解压到当前目录下。原压缩包不会被删除。tar -zxvf 压缩包名 -C 解压目录
:将压缩包解压到指定目录下。在 Linux 系统中,每个用户都有一个主组,主组时是创建用户时必须要指定的,并且不能修改。每个用户可以有多个额外组,这些额外组表示用户的其他权限。
对于文件和目录来说,每个文件和目录都有自己的所有者和组,只有所有者和相同组的用户,才有操作权限。
chown 新的所有者 文件或目录名
:不会修改目录内的文件和目录的所有者。chown -R 新的所有者 文件或目录名
:修改文件或目录的所有者,包括目录内的文件和目录。chown [-R] 新的所有者:新的所在组 文件或目录名
:同时修改所有者和所在组。chgrp 新的所在组 文件或目录名
:不会修改目录内的文件和目录的所在组。chown -R 新的所在组 文件或目录名
:修改文件或目录的所在组,包括目录内的文件和目录。对于用户来说,一个用户只有一个主组,但可以有多个副组。
对于文件和目录来说,一个文件或目录只能有一个所有者,一个所在组。
文件和目录的权限:
类型 | 权限 |
---|---|
文件 | (1)读 read:查看文件,如 cat、more、less、head、tail 等。(2)写 write:编辑文件,如 vi、vim 等。(3)执行 execute:运行可执行文件(.sh 文件)。 |
目录 | (1)读 read:查看目录内容,如 ls 等。(2)写 write:在目录内创建、删除、重命名子目录或文件等。如 mkdir。(3)执行 execute:进入该目录,如 cd 等。 |
r
:读权限。w
:写权限。x
:执行权限。如果要修改一个文件或目录的权限,那么该用户必须具有对这个文件或目录的w
权限。
如果要删除一个文件或目录,那么该用户必须具有对这个文件或目录的上层目录的w
权限。
修改权限:
chmod
:修改文件或目录权限。u
、g
、o
、a
:分别对应所有者、同组用户、其他组用户、所有用户。+
、-
、=
:分别对应添加、删除、设置某个权限。r
、w
、x
:分别对应读、写、执行权限。chmod g-w test.txt
;chmod g-rw test.txt
;chmod g+x,o-r test.txt
。rwx 权限可以用数字的和来表示:r-4, w-2, x-1
若权限为读和写,则可以使用 6,来代替 rw。
注意,如果使用数字设置权限,则必须将 u、g、o 的权限同时设置,也就是说必须三组数字一起使用。
举例:
将 test.txt 所有者权限设置为 rwx,同组用户为 rw,其他用户没有任何权限:chmod 760 test.txt
。
获取 ip 地址,网关,DNS。如果是自己的电脑,按照下面的方法查看,如果是公司服务器,则公司会提供,只需设置进去就可以。
网络的配置文件在 /etc/sysconfig/network-scripts 目录下:cd /etc/sysconfig/network-scripts
配置完成后,要重启 Linux 系统,才会生效:reboot
。
查看进程:
查看 Linux 系统正在运行的进程:ps -ef
。
可以通过过滤功能,查看指定进程是否运行:ps -ef | grep xxx
。
关闭进程:
使用命令:ps -ef
,查看进程的 PID
使用命令:kill -9 PID
,关闭 PID 进程。
systemctl [start|stop|restart|reload|status|enable] 服务名称
start:开启服务。
stop:停止服务。
restart:重启服务。
reload:重新加载数据、配置文件等。
status:查看服务状态。
enable:将服务设置为开机启动。
防火墙服务:firewalld
rpm -qa
,查看是否安装 xxx 包:rpm -qa | grep xxx
。rpm -ivh xxx.rpm
。rpm -e 软件名称
。YUM 包基于 RPM 包,类似于 Maven,不需要处理软件包之间的依赖关系,通过执行 YUM 命令,系统会自动去 YUM 服务器上下载所有依赖。不需要预先将软件包下载到本地。
yum list installed
,查看是否安装 xxx 包:yum list installed | grep xxx
。yum install 软件名称
。yum remove 软件全名
。tar -zxvf jdk压缩包名称 -C 解压路径
,将 jdk 压缩包解压。profile
文件中进行环境变量的配置。JAVA_HOME=jdk安装路径
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib:.
export JAVA_HOME PATH CLASSPATH
reboot
或重新加载 profile 配置文件:source profile
。java -version
,查看 jdk 是否安装成功。tar -zxvf jdk压缩包名称 -C 解压路径
,将 tomcat 压缩包解压。startup.sh
文件,启动 tomcat 服务器。ps -ef | grep tomcat
,查看是否存在 tomcat 进程,如果存在,则代表已经启动了 tomcat 服务器。也可以在浏览器中,输入 http://localhost:8080,看能否访问到页面。systemctl stop firewalld
,之后在 Windows 的浏览器中输入:http://Linux的ip地址:8080
,就可以访问。yum list installed | grep mariadb
,如果安装了,需要卸载:yum remove mariadb全称
。tar -zxvf mysql压缩包名称 -C 解压路径
,将 mysql 压缩包解压。mv 原目录名 新目录名
,注意,新目录之前不能存在,否则会将原目录移动到新目录下,而不是重命名。这里假设重命名后的目录名为:mysqlDir。mkdir data
。该目录用来存放数据库文件,数据库的表等数据都放在 data 目录下。mysqld
命令的 Linux 用户:groupadd mysql
、useradd -g mysql mysql
。该用户专门用来执行 mysql 的 mysqld 命令,此命令用来初始化 msyql 的基本信息。./mysqld --initialize --user=mysql --datadir=/opt/mysqlDir/data --basedir=/opt/mysqlDir
。该命令执行后,会生成一个临时的 mysql 数据库 root 用户的密码,先将改密码记录下来,后续第一次登录 mysql 时需要使用。./mysql_ssl_rsa_setup --datadir=/opt/mysqlDir/data
,开启该功能。chown -R mysql:mysql /opt/mysqlDir/
、chmod 777 /opt/mysqlDir/
。./mysqld_safe &
,启动 mysql 服务,其中 & 表示后台启动。使用:ps -ef | grep mysql
,查看 mysql 服务是否启动成功。./mysql -u用户名 -p
,输入初始化密码,登录 mysql。其中,-u 表示使用哪个账户登录 mysql,-p 表示使用密码登录。show databases;
,第一次使用时,会提示修改密码。使用命令:alter user '用户名'@'主机域名或ip' identified by '新密码';
,如 alter user 'root'@'localhost' identified by 'mcc';
,修改用户密码。grant all privileges on *.* to 用户名@'%' identified by '密码';
,授权远程访问。其中*.*
的第一个*
表示所有数据库,第二个*
表示所有的数据表,% 表示 ip 地址,也可以指定具体的 ip 地址,如 root@localhost、[email protected] 等。flush privileges;
,刷新权限。systemctl stop firewalld
。可以使用:systemctl status firewalld
,查看防火墙是否关闭成功(Active inactive(dead))。./mysqladmin -u用户名 -p shutdown
,输入密码,关闭 mysql 服务。使用:ps -ef | grep mysql
,查看 mysql 服务是否关闭成功。