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