转载原著
bilibili
安装包:位于VM主程序+共享Tools文件夹下。
安装教程
安装包
安装教程
经典安装教程
学生党白嫖阿里云服务器6个月
阿里云购买服务器
网址
2. 用户身份验证
注:查看操作系统用户名,linux系统命令:whoami
1.路劲的表示:
绝对路径 :/usr/share/man
相对路径:cd ../man 注:..表示上级目录
2.处理目录的常用命令
ls: 列出目录
cd:切换目录
pwd:显示目前的目录
mkdir:创建一个新的目录
rmdir:删除一个空的目录
cp: 复制文件或目录
rm: 移除文件或目录
mv: 移动文件与目录,或修改文件与目录的名称
touch:创建文件
echo "字符串" >>文件
3.ls(列出目录)
ls -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
ls -l : 长数据串列出,包含文件的属性与权限等等数据;(常用)
4.cp ( 复制文件或目录 )
# cp [-adfilprsu] 来源档(source) 目标档(destination)
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-r:递归持续复制,用於目录的复制行为;(常用)
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身。
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !
5.rm [-fir] 文件或目录
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
6. mv ( 移动文件与目录,或修改名称 )
#mv [-adfilprsu] 来源档(source) 目标档(destination)
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
chgrp:更改文件属组
chgrp [-R] 属组名 文件名
chown:更改文件属主,也可以同时更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
chmod:更改文件9个属性
chmod [-R] xyz 文件或目录 #chmod 770 filename ->rwxrwx--- 注:r:4 w:2 x:1
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行,选项与参数:-n 后面接数字,代表显示几行的意思!
tail 只看尾巴几行,选项与参数:-n 后面接数字,代表显示几行的意思!
注:空格翻页,enter翻行。
[root@kuangshen ~]# nl /etc/sysconfig/network-scripts/ifcfg-eth0
1DEVICE=eth0
2BOOTPROTO=dhcp
3ONBOOT=yes
[root@kuangshen etc]# more /etc/csh.login
--More--(28%) --# 重点在这一行喔!你的光标也会在这里等待你的命令
[root@kuangshen ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
[root@kuangshen ~]# tac /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
BOOTPROTO=dhcp
DEVICE=eth0
硬链接: ln f1 f2 # 创建f1的一个硬连接文件f2 f2产生一个f1的副本,但是内容同步。
软连接:ln -s f1 f3 # 创建f1的一个符号连接文件f3 f3是f1的快捷方式,指向同一个文本。
命令 | 搜索、替换 |
---|---|
/word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用) |
?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! |
N | ****这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 |
命令 | 删除、复制与粘贴 |
---|---|
u | 复原前一个动作。(常用) |
[Ctrl]+r | 重做上一个动作。(常用) |
dd | 删除游标所在的那一整行(常用) |
ndd | n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用) |
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
yy | 复制游标所在的那一行(常用) |
nyy | n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
p, P | p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用) |
命令 | 常用底线命令 |
---|---|
:q | 离开 vi (常用) |
:w | 将编辑的数据写入硬盘档案中(常用) |
:wq | 储存后离开,若为 :wq! 则为强制储存后离开 (常用) |
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与 set nu 相反,为取消行号! |
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
- 用户账号的添加、删除与修改。
- 用户口令的管理。
- 用户组的管理。
(1)useradd 选项 用户名
用户账号的管理工作主要涉及到用户账号的添加、修改和删除。
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。
#查看用户
[root@xiaodong /]# cat etc/passwd
[用户名@主机名 目录]#最高权限 $用户权限
参数说明:
选项 :
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-m 使用者目录如不存在则自动建立。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
用户名 :
指定新账号的登录名。
eg:[root@kuangshen home]# useradd -m kuangshen
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。
(2) Linux下如何切换用户
1.切换用户的命令为:su username 【username是你的用户名哦】
2.从普通用户切换到root用户,还可以使用命令:sudo su
3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令
4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】
$表示普通用户
#表示超级用户,也就是root用户
(3) 删除帐号
如果一个用户的账号不再使用,可以从系统中删除。
删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
删除一个已有的用户账号使用userdel命令,其格式如下:
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。
[root@kuangshen home]# userdel -r kuangshen
此命令删除用户kuangshen在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
(4) 修改帐号
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod命令,其格式如下:
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
例如:
# usermod -s /bin/ksh -d /home/z –g developer kuangshen
此命令将用户kuangshen的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
用户口令的管理
(5)用户口令的管理
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
命令的格式为:
passwd 选项 用户名
可使用的选项:
如果默认用户名,则修改当前用户的口令。
例如,假设当前用户是kuangshen,则下面的命令修改该用户自己的口令:
$ passwd
Old password:******
New password:*******
Re-enter new password:*******
如果是超级用户,可以用下列形式指定任何用户的口令:
# passwd kuangshen
New password:*******
Re-enter new password:*******
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
为用户指定空口令时,执行下列形式的命令:
# passwd -d kuangshen
此命令将用户 kuangshen的口令删除,这样用户 kuangshen下一次登录时,系统就不再允许该用户登录了。
passwd 命令还可以用 -l(lock) 选项锁定某一用户,使其不能登录,例如:
# passwd -l kuangshen
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
(1)增加用户组
groupadd 选项 用户组
可以使用的选项有:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
Linux系统中,每个用户的ID都有两种,即用户ID(User ID,简称UID)和组ID(Group ID,简称GID)
实例1:
# groupadd group1
此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。
实例2:
# groupadd -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。
(2)删除用户组
groupdel 用户组
例如:
# groupdel group1
此命令从系统中删除组group1。
(3)修改用户组
groupmod 选项 用户组
常用的选项有:
# 此命令将组group2的组标识号修改为102。
groupmod -g 102 group2
# 将组group2的标识号改为10000,组名修改为group3。
groupmod –g 10000 -n group3 group2
(4)切换组
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:
$ newgrp root
注:这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。
(5)用户管理相关文件
1. /etc/passwd文件 :记录用户基本属性 。
# cat /etc/passwd
xiaodong:x:1000:1000:xiaodong:/home/xiaodong:/bin/bash
usr:x:1001:1001::/home/usr:/bin/bash
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
注:系统中有一类用户称为伪用户(pseudo users) 这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。
常见的伪用户如下所示:
常见的伪用户如下所示:
伪 用 户 含 义
bin 拥有可执行的用户命令文件
sys 拥有系统文件
adm 拥有帐户文件
uucp UUCP使用
lp lp或lpd子系统使用
nobody NFS使用
2. /etc/shadow 文件:口令存储文件。
xiaodong::19051:0:99999:7:::
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
3. /etc/group文件:用户组所有信息 。
xiaodong:x:1000:xiaodong
docker:x:982:xiaodong
组名:口令:组标识号:组内用户列表
1. 概述
Linux磁盘管理好坏直接关系到整个系统的性能问题。
Linux磁盘管理常用命令为 df、du。
2. df
df命令参数功能:检查文件系统的磁盘空间占用情况。
将系统内所有的文件系统列出来!
如果 df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 列出
df [-ahikHTm] [目录或文件名]
选项与参数:
[root@kuangshen /]# df -h /etc
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 6.3G 32G 17% /
3. du
只列出当前目录下的所有文件夹容量(包括隐藏文件夹):
直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。
du [-ahskm] 文件或目录名称
选项与参数:
4. 磁盘挂载与卸除
根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载”
磁盘挂载语法:
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
测试:
# 将 /dev/hdc6 挂载到 /mnt/hdc6 上面!
[root@www ~]# mkdir /mnt/hdc6
[root@www ~]# mount /dev/hdc6 /mnt/hdc6
[root@www ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hdc6 1976312 42072 1833836 3% /mnt/hdc6
磁盘卸载命令 umount 语法:
umount [-fn] 装置文件名或挂载点
选项与参数:
卸载/dev/hdc6
[root@www ~]# umount /dev/hdc6
1. 基本概念
1、在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号!
2、每一个进程呢,都会有一个父进程!
3、进程可以有两种存在方式:前台!后台运行!
4、一般的话服务都是后台运行的,基本的程序都是前台运行的!
2. ps 查看当前系统中正在执行的各种进程的信息!
ps -x :
ps -aux查看所有的进程:
ps -auxlgrep mysql
ps -auxlgrep redis
ps -auxIgrep java
在Linux这个叫做管道符A|B # grep查找文件中符合条件的字符串!
3. 进程树
ps -eflgrep mysql 查看父进程
看父进程我们一般可以通过目录树结构来查看!
pstree -pu
4. 结束进程
kill -9 进程id 强制结束该进程
1. 安装软件一般有三种方式∶
1、jdk安装(rpm安装)
JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具
[root@kuangshen ~]# java -version #查看Java是否存在
[root@kuangshen /]# rpm -qa|grep jdk #检查Java jdk(-qa:显示当前系统中以RPM方式安装的所有软件列表)
[root@kuangshen ~]# rpm -e --nodeps jdk1.8.0_121-1.8.0_121-fcs.x86_64 # 卸载 -e --nodeps 强制删除
[root@kuangshen kuangshen]# rpm -ivh jdk-8u221-linux-x64.rpm #安装java rpm -ivh 安装包
注:rpm命令 JDK下载地址
2、环境变量配置
# 安装完成后配置环境变量 文件:/etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
# 保存退出
# 让新增的环境变量生效!
source /etc/profile
# 测试 java -version
[root@kuangshen java]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
1、安装好了Java环境后我们可以测试下Tomcat!准备好Tomcat的安装包!
下载地址
2、将文件移动到/usr/tomcat/下,并解压!
[root@kuangshen kuangshen]# mv apache-tomcat-9.0.22.tar.gz /usr
[root@kuangshen kuangshen]# cd /usr
[root@kuangshen usr]# ls
apache-tomcat-9.0.22.tar.gz
[root@kuangshen usr]# tar -zxvf apache-tomcat-9.0.22.tar.gz # 解压
3、运行Tomcat,进入bin目录,和我们以前在Windows下看的都是一样的
# 执行:startup.sh -->启动tomcat
# 执行:shutdown.sh -->关闭tomcat
./startup.sh
./shutdown.sh
4、确保Linux的防火墙端口是开启的,如果是阿里云,需要保证阿里云的安全组策略是开放的!
# 查看firewall服务状态
systemctl status firewalld
# 开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all # 查看全部信息
firewall-cmd --list-ports # 只看端口信息
# 开启端口
开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:systemctl restart firewalld.service
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
##(18)安装Docker(yum安装)
基于 CentOS 7 安装
官网安装参考手册:
确定你是CentOS7及以上版本
[root@192 Desktop]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
yum安装gcc相关(需要确保 虚拟机可以上外网 )
yum -y install gcc
yum -y install gcc-c++
卸载旧版本
yum -y remove docker docker-common docker-selinux docker-engine
# 官网版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置stable镜像仓库
# 错误
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
## 报错
[Errno 14] curl#35 - TCP connection reset by peer
[Errno 12] curl#35 - Timeout
# 正确推荐使用国内的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
安装Docker CE
yum -y install docker-ce docker-ce-cli containerd.io
启动docker
systemctl start docker
测试
docker version
docker run hello-world
docker images cker-logrotate \ docker-engine
5. 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
6. 设置stable镜像仓库
# 错误
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
## 报错
[Errno 14] curl#35 - TCP connection reset by peer
[Errno 12] curl#35 - Timeout
# 正确推荐使用国内的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
7. 更新yum软件包索引
yum makecache fast
8. 安装Docker CE
yum -y install docker-ce docker-ce-cli containerd.io
9. 启动docker
systemctl start docker
10. 测试
docker version
docker run hello-world
docker images