狂神Linux笔记


Linux中一切皆文件

主要可以分为三大部分
1.文件:读写执行(查看,创建,移动,复制,编辑)
2.权限:(用户,用户组)
3.系统:(磁盘,进程)

Linux发行版本

在这里插入图片描述

Linux应用领域

今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位。

通常服务器使用两种组合方式:

  • LAMP(Linux + Apache + MySQL + PHP)
  • LNMP(Linux + Nginx + MySQL + PHP)

系统目录

1、一切皆文件
2、根目录/ ,所有的文件都挂载在这个节点下
在这里插入图片描述

目录解释

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

常用命令

shutdown(关机)

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

最后总结:不管是重启还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中,执行命令之后没有返回消息则表明运行成功

ls(列出文件)

ls #列出文件
ls -a #列出所有文件,包括隐藏文件
ls -l #列出文件,包括文件的权限、属主属组
ls -al #查看全部的文件包括隐藏文件的属性和权限

cd(切换目录)

cd /home #
cd / #回到根目录
cd ./ #回到当前目录,目录不变
cd ~ #切换到当前用户目录(根据用户来)
cd .. #返回上一级目录
pwd #显示当前所在目录的路径

mkdir(创建目录)

mkdir test #创建目录
mkdir -p test1/test2/test3 #递归创建目录
mkdir -m 731 test #创建目录,给这个目录赋予rwx-wx--x的权限

rmdir(删除目录)

rmdir test #删除目录
rmdir -p test1/test2/test3 #递归删除目录

rm(删除文件或目录)

-f #忽略不存在的文件,不会出现警告,强制删除!
-r #递归删除目录!
-i #互动,删除询问是否删除
rm -rf a.txt /#删除系统中的a.txt
rm -rf / #递归删除根目录下所有文件(删库跑路)

cp(复制文件或目录)

cp /root/install.sh /home #复制一个文件到另一个目录下
cp -i /root/install.sh /home #再次复制,询问是否覆盖

mv(移动文件或目录)

-f #强制
-i #覆盖询问
-u #只替换已经更新过的文件
mv /home/test/a.txt /home #移动文件
mv test test2 #重命名test文件夹

一、文件管理

1.文件属性

在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如:

在这里插入图片描述

第一个字符代表这个文件是目录、文件或链接文件等等:

  • 当为[ d ]则是目录

  • 当为[ - ]则是文件;

  • 若是[ l ]则表示为链接文档 ( link file );

  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );

  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。

后面的九个字符:
在这里插入图片描述

2.修改文件属性

chgrp(更改文件属组)

groupadd test #添加test组
chgrp test a.txt #修改a.txt的组为test

chown(更改文件属主)

useradd test #新建用户
chown test a.txt #修改a.txt的主为test

chmod(修改文件权限)

#x:4 y:2 z:1
chmod [-R] xyz 文件或目录

在这里插入图片描述

3.文件内容查看

Linux系统中使用以下命令来查看文件的内容:

  • cat 从第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行

cat(正着显示文件内容)

#-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
#-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
#-E :将结尾的断行字节 $ 显示出来;
#-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
#-T :将 [tab] 按键以 ^I 显示出来;
#-v :列出一些看不出来的特殊字符

cat [-AbEnTv] a.txt

tac(倒着显示文件内容)

tac a.txt

nl(带行号显示)

#-b :指定行号指定的方式,主要有两种:-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);-b t :如果有空行,空的那一行不要列出行号(默认值);
#-n :列出行号表示的方法,主要有三种:-n ln :行号在荧幕的最左方显示;-n rn :行号在自己栏位的最右方显示,且不加 0 ;-n rz :行号在自己栏位的最右方显示,且加 0 ;
#-w :行号栏位的占用的位数。

nl a.txt

more(分页显示)

#空格 (space):代表向下翻一页;
#Enter :代表向下翻『一行』;
#/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
#:f :立刻显示出档名以及目前显示的行数;
#q :代表立刻离开 more ,不再显示该文件内容。
#b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

more /home/a.txt

less(分页显示)

#空格 :向下翻动一页;
#[pagedown]:向下翻动一页;
#[pageup] :向上翻动一页;
#/字串 :向下搜寻『字串』的功能;
#?字串 :向上搜寻『字串』的功能;
#n :重复前一个搜寻 (与 / 或 ? 有关!)
#N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
#q :离开 less 这个程序

less /home/a.txt

head(读前几行)

head -n 20 a.txt #读前20行

tail(读后几行)

tail -n 20 a.txt #读后20行

4.Linux 链接概念

硬链接

硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。

硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

[root@kuangshen /]# cd /home
[root@kuangshen home]# touch f1 # 创建一个测试文件f1
[root@kuangshen home]# ln f1 f2     # 创建f1的一个硬连接文件f2
[root@kuangshen home]# ln -s f1 f3   # 创建f1的一个符号连接文件f3
[root@kuangshen home]# echo "I am f1 file" >>f1
[root@kuangshen home]# cat f1
I am f1 file
[root@kuangshen home]# cat f2
I am f1 file
[root@kuangshen home]# cat f3
I am f1 file
[root@kuangshen home]# rm -f f1
[root@kuangshen home]# cat f2
I am f1 file
[root@kuangshen home]# cat f3
cat: f3: No such file or directory

总结:

  • f2是f1的硬链接,删除f1,f2无影响
  • f3是f1的硬链接,删除f1,f3无法使用

5.Vim编辑器

Vim通过一些插件可以实现和IDE的功能!,Vim是从Vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。尤其是Linux中,必须要会使用Vim (查看内容, 编辑内容,保存内容! )
简单的来说,Vi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
Vim则可以说是程序开发者的一项很好用的工具。

三种使用方式:
基本上Vi/Vim共分为三种模式,分别是
命令模式( Command mode) ,输入模式( Insert mode )底线命令模式( Lastline mode )

这三种模式的作用分别是:

命令模式

用户刚刚启动Vi/Vim ,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i ,并不会输入一个字符, i被当作了一个命令。
以下是常用的几个命令:

  • i切换到输入模式,以输入字符。
  • x删除当前光标所在处的字符。
  • :切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

输入模式

在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。

简单的说,我们可以将这三个模式想成底下的图标来表示:
在这里插入图片描述
具体按键:https://mp.weixin.qq.com/s/AndIwanhZ3Tlg0iQe8a4lQ

二、权限管理

1.用户账号的管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录ShelI等资源。

useradd(添加用户)

useradd -选项 用户名
-m:自动创建这个用户的主目录/home/cqh
-G:给用户分配组

[root@cqh home]useradd -m cqh  #创建一个用户
[root@cqh home]ls
install.sh cqhstudy cqh www  

理解一下本质: Linux中一切皆文件,这里的添加用户说白了就是往某一个文件中写入用户的信息了! /etc/passwd

[root@cqh home]cat /etc/passwd  #创建一个用户
cqh:x:1002:1002::/home/cqh:/bin/bash

userdel(删除用户)

userdel -r cqh #删除用户的时候把它的目录也删除掉

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。

su(切换用户)

在这里插入图片描述
在这里插入图片描述
1.切换用户的命令为:su username 【username是你的用户名哦】

2.从普通用户切换到root用户,还可以使用命令:sudo su

3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令

4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】

$表示普通用户

#表示超级用户,也就是root用户

2.用户密码的管理

passwd(设置密码)

passwd 选项 用户名

可使用的选项:

  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。

如果是超级用户,直接修改任意密码

# passwd kuangshen
New password:*******
Re-enter new password:******* #再输一次

普通用户,先要验证密码,才能修改

$ passwd 
Old password:******
New password:*******
Re-enter new password:*******

锁定账户,比如张三辞职了!冻结这个账号, 一旦冻结,这个人就登录不上系统了!

passwd -l cqh #锁定之后这个用户就不能再登录了
passwd -d cqh #把密码清空 这样也能防止用户登录

在这里插入图片描述

3.用户组管理

    属主、属组
 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(开发、测试、运维)。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
 用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

groupadd(新建用户组)

groupadd group1 #添加一个group1的用户组
groupadd -g 101 group2 #添加一个group2的用户组,指定组标识号为101,不指定的话自增1

groupdel(删除用户组)

groupdel group1

groupmod(修改用户组)

groupmod -g 102 group2 #将组group2的组标识号修改为102
groupmod –g 10000 -n group3 group2 #将组group2的标识号改为10000,组名修改为group3

newgrp (切换用户组)

#当前登录用户 cqh
$ newgrp root #切换为root

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。

拓展

1./etc/passwd(用户信息)

2./etc/shadow(用户密码)

3./etc/group(用户组信息)

详细:https://mp.weixin.qq.com/s/AndIwanhZ3Tlg0iQe8a4lQ

三、系统管理

1.磁盘管理

Linux磁盘管理好坏直接关系到整个系统的性能问题。

Linux磁盘管理常用命令为 df、du。

  • df :列出文件系统的整体磁盘使用量

  • du:检查磁盘空间使用量

df(整体磁盘使用量)

df [-ahikHTm] [目录或文件名]

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

  • -k :以 KBytes 的容量显示各文件系统;

  • -m :以 MBytes 的容量显示各文件系统;

  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

  • -H :以 M=1000K 取代 M=1024K 的进位方式;

  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;

  • -i :不用硬盘容量,而以 inode 的数量来显示

# 将系统内所有的文件系统列出来!
# 在 Linux 底下如果 df 没有加任何选项
# 那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!
[root@iZ8vbiui8f5xtbf8jb9j1wZ ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs          930676       0    930676   0% /dev
tmpfs             941036       0    941036   0% /dev/shm
tmpfs             941036     552    940484   1% /run
tmpfs             941036       0    941036   0% /sys/fs/cgroup
/dev/vda1       41152812 2064504  37184600   6% /
tmpfs             188208       0    188208   0% /run/user/0
# 将容量结果以易读的容量格式显示出来
[root@iZ8vbiui8f5xtbf8jb9j1wZ ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           919M     0  919M   0% /dev/shm
tmpfs           919M  552K  919M   1% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        40G  2.0G   36G   6% /
tmpfs           184M     0  184M   0% /run/user/0
# 将系统内的所有特殊文件格式及名称都列出来
[root@iZ8vbiui8f5xtbf8jb9j1wZ ~]# df -aT
Filesystem     Type       1K-blocks    Used Available Use% Mounted on
sysfs          sysfs              0       0         0    - /sys
proc           proc               0       0         0    - /proc
devtmpfs       devtmpfs      930676       0    930676   0% /dev
securityfs     securityfs         0       0         0    - /sys/kernel/security
tmpfs          tmpfs         941036       0    941036   0% /dev/shm
devpts         devpts             0       0         0    - /dev/pts
tmpfs          tmpfs         941036     552    940484   1% /run
tmpfs          tmpfs         941036       0    941036   0% /sys/fs/cgroup
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/systemd
pstore         pstore             0       0         0    - /sys/fs/pstore
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/memory
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/cpuset
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/net_cls,net_prio
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/hugetlb
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/cpu,cpuacct
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/devices
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/pids
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/freezer
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/perf_event
cgroup         cgroup             0       0         0    - /sys/fs/cgroup/blkio
configfs       configfs           0       0         0    - /sys/kernel/config
/dev/vda1      ext4        41152812 2064508  37184596   6% /
systemd-1      autofs             0       0         0    - /proc/sys/fs/binfmt_misc
mqueue         mqueue             0       0         0    - /dev/mqueue
debugfs        debugfs            0       0         0    - /sys/kernel/debug
hugetlbfs      hugetlbfs          0       0         0    - /dev/hugepages
tmpfs          tmpfs         188208       0    188208   0% /run/user/0
# 将 /etc 底下的可用的磁盘容量以易读的容量格式显示
[root@iZ8vbiui8f5xtbf8jb9j1wZ ~]# df -h /etc
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  2.0G   36G   6% /

du(检查磁盘空间使用量)

du [-ahskm] 文件或目录名称

选项与参数:

  • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
  • -h :以人们较易读的容量格式 (G/M) 显示;
  • -s :列出总量而已,而不列出每个各别的目录占用容量;
  • -S :不包括子目录下的总计,与 -s 有点差别。
  • -k :以 KBytes 列出容量显示;
  • -m :以 MBytes 列出容量显示;
# 只列出当前目录下的所有文件夹容量(包括隐藏文件夹):
# 直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。
[root@iZ8vbiui8f5xtbf8jb9j1wZ ~]# du
4	./.ssh
8	./.pip
52	.
# 将文件的容量也列出来
[root@iZ8vbiui8f5xtbf8jb9j1wZ ~]# du -a
0	./.ssh/authorized_keys
4	./.ssh
4	./.pydistutils.cfg
4	./.bash_logout
4	./.tcshrc
4	./.viminfo
4	./.bash_profile
4	./.bash_history
4	./.bashrc
4	./.lesshst
4	./.pip/pip.conf
8	./.pip
4	./.cshrc
52	.
# 检查根目录底下每个目录所占用的容量
[root@iZ8vbiui8f5xtbf8jb9j1wZ home]# du -sm /*
0	/bin
146	/boot
0	/dev
34	/etc
1	/home
0	/lib
0	/lib64
1	/lost+found
1	/media
1	/mnt
1	/opt
du: cannot access ‘/proc/26353/task/26353/fd/4’: No such file or directory
du: cannot access ‘/proc/26353/task/26353/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/26353/fd/4’: No such file or directory
du: cannot access ‘/proc/26353/fdinfo/4’: No such file or directory
0	/proc
1	/root
1	/run
0	/sbin
1	/srv
0	/sys
0	/test
76	/tmp
1561	/usr
153	/var

通配符 * 来代表每个目录。

与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。

mount (磁盘挂载)

根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载”

mount /dev/hdc6 /mnt/hdc6 

unmount (磁盘卸载)

umount /dev/hdc6

2.进程管理

ps(查看进程信息)

1、在Linux中 ,每一个程序都是有自己的一个进程,每一个进程都有一个id号!
2、每一个进程呢,都会有一个父进程!
3、进程可以有两种存在方式:前台!后台运行!
4、一般的话服务都是后台运行的,基本的程序都是前台运行的

ps 查看当前系统中正在执行的各种进程的信息!
ps- xx:
  -a 显示当前终端所有的进程信息
  -u 以用户的信息显示进程
  -x 显示后台运行进程的参数

#ps -aux  查看所有进程
ps-aux|grep mysql  查看mysql相关进程
# | 在Linux中这个叫管道符   A|B
# grep 查找文件中符合条件的字符串

对于我们来说,这里目前只需要记住一个命令即可ps -xx|grep进程名字!过滤进程信息!
ps-ef :可以查看到父进程的信息

ps-ef|grep mysql 看父进程我们一般可以通过目录树结构来查看
#进程树
#pstree -pu
#-p 显示父id
#-u 显示用户组

在这里插入图片描述
结束进程:杀掉进程 等价于Windows结束任务

kill -9 pid

三种软件安装方式及服务器基本环境搭建

1.jdk安装(rpm安装)

1、rpm下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html

2、如果有安装openjdk 则卸载

[root@kuangshen ~]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
# 检查
[root@kuangshen ~]# rpm -qa|grep jdk
jdk1.8.0_121-1.8.0_121-fcs.x86_64
# 卸载 -e --nodeps 强制删除
[root@kuangshen ~]# rpm -e --nodeps jdk1.8.0_121-1.8.0_121-fcs.x86_64
[root@kuangshen ~]# java -version
-bash: /usr/bin/java: No such file or directory  # OK

3、安装JDK

# 安装java rpm
[root@kuangshen kuangshen]# rpm -ivh jdk-8u221-linux-x64.rpm

# 安装完成后配置环境变量 文件:vim /etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
export 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)

2.Tomcat安装(解压缩安装)

1、官网下载Tomcat的安装包!
2、将文件移动到/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

# 执行:startup.sh -->启动tomcat
# 执行:shutdown.sh -->关闭tomcat
./startup.sh
./shutdown.sh

4、确保Linux的防火墙端口是开启的,如果是阿里云,需要保证阿里云的安全组策略是开放的!

#按下列步骤配置
1.systemctl status firewalld
2.firewall-cmd --list-ports
3.firewall-cmd --zone=public --add-port=8080/tcp --permanent
4.systemctl restart firewalld.service
5.firewall-cmd --list-ports
# 查看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   #永久生效,没有此参数重启后失效

3.安装Docker(yum安装)

1.检测CentOS 7

[root@192 Desktop]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

2.yum安装gcc相关(需要确保 虚拟机可以上外网 )

yum -y install 包名
#yum install 安装命令 -y  所有的提示都为y
yum -y install gcc
yum -y install gcc-c++

3.卸载以前的docker

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

4.安装需要的软件包

yum install -y yum-utils \device-mapper-persistent-data \lvm2

5.设置stable镜像仓库

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6.更新yum软件包索引

yum makecache fast

7.安装Docker CE

yum -y install docker-ce docker-ce-Cli containerd.io

8.启动docker

systemctl start docker

9.测试

docker version
docker run hello-world
docker images

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>