系列文章目录
Java常用Linux命令集合
程序员入职必备技能 Oracle安装+局域网服务+内网穿透
2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)
Window下的Jenkins实战,一学就会,一看就懂
Linux 常用命令集合
文章目录
一 基本知识了解
1.1 目录结构
/bin
: 存放二进制可执行文件,常用命令一般都在这里/etc
: 存放系统管理和配置文件/home
: 存放所有用户文件的根目录,是用户主目录的基点/usr
: 用于存放系统应用程序/opt
: 额外安装的可选应用程序包所放置的位置/proc
: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息/root
: 超级用户(系统管理员)的主目录/sbin
: 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序/dev
: 用于存放设备文件/mnt
: 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;/boot
: 存放用于系统引导时使用的各种文件/lib
: 存放着和系统运行相关的库文件/tmp
: 用于存放各种临时文件,是公用的临时文件存储点/var
: 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等/lost+found
: 这个目录平时是空的
1.2 对比
1.3 Linux 链接概念
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。
情况下,ln
命令产生硬链接。
- 硬链接:两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问
- 软连接:A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
二 常用命令
2.1 关机命令
sync
:将数据由内存同步到硬盘中shutdown
: 关机指令shutdown –h 10
: 这个命令告诉大家,计算机将在10分钟后关机shutdown –h now
:立马关机shutdown –h 20:25
;系统会在今天20:25
关机shutdown –h +10
: 十分钟后关机shutdown –r now
:系统立马重启shutdown –r +10
: 系统十分钟后重启reboot
: 就是重启halt
: 关闭系统
最后总结一下,不管是重启系统还是关闭系统,首先要运行 sync
命令,把内存中的数据写到磁盘中。
2.2 基本命令
ls
: 列出目录cd
:切换目录pwd
:显示目前的目录mkdir
:创建一个新的目录rmdir
:删除一个空的目录cp
: 复制文件或目录rm
: 移除文件或目录mv
: 移动文件与目录,或修改文件与目录的名称df
: 显示磁盘空间使用情况du
: 也是查看使用空间的,但是与df
命令不同的是Linux du
命令是对文件和目录磁盘使用的空间的查看cat
: 用于连接文件并打印到标准输出设备上tac
:从最后一行开始显示,可以看出 tac 是 cat 的倒着写!nl
: 显示的时候,顺道输出行号!more
: 一页一页的显示文件内容less
: 与 more 类似,但是比 more 更好的是,他可以往前翻页!head
: 只看头几行tail
:只看尾巴几行useradd
:添加用户,还有删除用户,修改用户,密码管理
详细用法
- ls
ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
- cd
cd / 进入该目录
cd ~ 进入 “home” 目录
cd .. 退回上一层目录
- mkdir
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
- cp
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-p:**连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-d:**若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-r:**递归持续复制,用於目录的复制行为;(常用)
-f:**为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:**若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:**进行硬式连结(hard link)的连结档创建,而非复制文件本身。
-s:**复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:**若 destination 比 source 旧才升级 destination !
- rm
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
- mv
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
- df
-a 全部文件系统列表
-h 以方便阅读的方式显示信息
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地磁盘
-T 列出文件系统类型
- du
-a 显示目录中所有文件大小
-k 以KB为单位显示文件大小
-m 以MB为单位显示文件大小
-g 以GB为单位显示文件大小
-h 以易读方式显示文件大小
-s 仅显示总计
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
- cat
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
- nl
- -b :指定行号指定的方式,主要有两种:-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);-b t :如果有空行,空的那一行不要列出行号(默认值);
- -n :列出行号表示的方法,主要有三种:-n ln :行号在荧幕的最左方显示;-n rn :行号在自己栏位的最右方显示,且不加 0 ;-n rz :行号在自己栏位的最右方显示,且加 0 ;
- -w :行号栏位的占用的位数。
2.3 权限命令
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定,在Linux中我们可以使用ll
或者ls –l
命令来显示一个文件的属性以及文件所属的用户和组。
- 当为[ **d** ]则是目录
- 当为[ **-** ]则是文件;
- 若是[ **l** ]则表示为链接文档 ( link file );
- 若是[ **b** ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
- 若是[ **c** ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
接下来的字符中,以三个为一组,且均为『rwx』
的三个参数的组合。其中,[ r ]代表可读(read)
、[ w ]代表可写(write)
、[ x ]代表可执行(execute)
,要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]
而已。从左至右用0-9这些数字来表示。第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。
-
第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限
-
第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限
-
第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限
-
chgrp
:更改文件属组
-u :目录或者文件的当前的用户
-g :目录或者文件的当前的群组
-o :除了目录或者文件的当前用户或群组之外的用户或者群组
-a :所有的用户及群组
chmod
:更改文件9个属性
-c 显示更改的部分的信息
-R 处理指定目录及子目录
2.4 Vim命令
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line 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
键可随时退出底线命令模式。
2.5 网络通讯命令
ifconfig
: 用于查看和配置 Linux 系统的网络接口iptables
: ,是一个配置 Linux 内核防火墙的命令行工具。功能非常强大,对于我们开发来说,主要掌握如何开放端口即可。 (iptables -A INPUT -p tcp --dport 80 -j ACCEP
)netstat
: 用于显示网络状态ping
: 用于检测主机telnet
: 用于远端登入
2.6 系统命令
date
: 显示或设定系统的日期与时间free
: 显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存kill
:结束掉某进程ps
:用来查看当前运行的进程状态
-A 显示所有进程
a 显示所有进程
-a 显示同一终端下所有进程
c 显示进程真实名称
e 显示环境变量
f 显示进程间的关系
r 显示当前终端运行的进程
-aux 显示所有包含其它使用的进程
rmp
: 命令用于管理套件top
: 显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等
2.7 解压命令
tar
: 用来压缩和解压文件。tar 本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。
-c 建立新的压缩文件
-f 指定压缩文件
-r 添加文件到已经压缩文件包中
-u 添加改了和现有的文件到压缩包中
-x 从压缩包中抽取文件
-t 显示压缩文件中的内容
-z 支持gzip压缩
-j 支持bzip2压缩
-Z 支持compress解压文件
-v 显示操作过程
压缩
tar -zcvf log.tar 1.log,2.log 或tar -cvf log.*
解压
tar -zxvf /tmp/etc.tar.gz /etc
2.8 防火墙基本命令
# 查看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.1 redis的安装
- 安装
gcc
yum install cpp
- 下载
wget http://download.redis.io/releases/redis-4.0.11.tar.gz
- 解压
tar xzf redis-4.0.11.tar.gz
- 复制
cp -r redis-4.0.11 /usr/local/redis
- 生效
make
- 修改config
daemonize yes
- 启动服务端
./src/redis-server
- 连接测试
./src/redis-cli
- 思考,可以设置开机自启吗?
3.2 docker安装
#1.卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#2.需要的安装包
yum install -y yum-utils
#3.设置镜像的仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#默认是从国外的,不推荐
#推荐使用国内的
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum软件包索引
yum makecache fast
#4.安装docker相关的 docker-ce 社区版 而ee是企业版
yum install docker-ce docker-ce-cli containerd.io
#5、启动docker
#root用户
systemctl start docker
#非root用户
sudo systemctl start docker
#6. 使用docker version查看是否按照成功
docker version
#7. 测试
docker run hello-world
[root@shu /]# docker run hello-world
3.3 Tomcat安装
- 安装好了Java环境后我们可以测试下Tomcat!准备好Tomcat的安装包!
- 将文件移动到
/usr/tomcat
/下,并解压
[root@]# mv apache-tomcat-9.0.22.tar.gz /usr
[root@]# cd /usr
[root@]# ls
apache-tomcat-9.0.22.tar.gz
[root@]# tar -zxvf apache-tomcat-9.0.22.tar.gz # 解压
- 运行Tomcat,进入bin目录,和我们以前在Windows下看的都是一样的
# 执行:startup.sh -->启动tomcat
# 执行:shutdown.sh -->关闭tomcat
./startup.sh
./shutdown.sh