概述
Linux是一种自由和开放源码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布,在加上用户空间的应用程序之后,成为Linux操作系统。
Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括像提供GUI的X Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux 发行版,而不是自己选择每一样组件或自行设置。
- Linux发行版
Linux发行版指的就是通常所说的“Linux操作系统”,发行版为许多不同的目的而制作,包括对不同电脑硬件结构的支持,对普通用户或开发者使用方式的调整,针对实时应用或嵌入式系统的开发等等。目前,超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十多个。较为知名的有Debian、Ubuntu、Fedora、CentOS、Arch Linux和openSUSE等。
开始
VMWare+CentOS
- 安装VMWare
- 下载一个CentOS Linux的映像文件
- 安装即可
基本环境安装
jdk
- 创建一个目录方便管理
cd /usr/
mkdir java
- 下载
jdk-linux.tar.gz
包 - 想办法弄到
/usr/java/
目录下 - 解压
tar -xzvf jdk-8u202-linux-x64.tar.gz
- 编辑/etc/profile文件
vi /etc/profile
- 追加如下内容
- 使修改立即生效
source /etc/profile
- 查看JAVA_HOME的值
echo $JAVA_HOME
tomcat
- 移动到一个目录
cd /usr/java
- 下载
apache-tomcat.tar.gz
包 - 想办法弄到
/usr/java/
目录下 - 解压
tar -xzvf apache-tomcat.版本号.tar.gz
- 把解压出来的文件夹改个名字
mv apache-tomcat.版本号 tomcat
- 移动到tomcat目录
cd tomcat
bin/startup.sh && tail -f logs/catalina.out
启动即可- (关闭tomcat使用
bin/shutdown.sh
)
不小心开了多个tomcat怎么办?
- 使用
ps -ef|grep tomcat
查看tomcat是否再运行,第一个编号是该tomcat的进程pid - kill掉该进程
kill -9 <pid>
常用命令
基础命令
命令 | 描述 |
---|---|
uname –r | 显示内核版本 |
uname –m | 查看系统架构 |
halt | 停机 |
poweroff | 关闭电源 |
shutdown –h now | 关机 |
reboot | 重启 |
shutdown –r now | 重启 |
logout | 注销 |
exit | 退出 |
echo | 在终端显示命令行中键入的信息 |
clear | 清屏 |
命令 | 描述 |
---|---|
date +%Y%m%d | 显示日期 |
date +%H:%M | 显示时间 |
date -s "mm/dd/yyyy hh:mm:ss" | 修改日期时间 |
date +%Y%m%d --date="-1 day" | 得到昨天的日期 |
cal [month] [year] | 显示日历 |
命令 | 描述 |
---|---|
grep MemTotal /proc/meminfo | 检查内存空间 |
grep SwapTotal /proc/meminfo | 检查交换分区 |
free | 检查当前可用的内存和交换分区 |
df -h /usr | 检查磁盘共享空间 |
fdisk –l | 查看硬盘空间 |
cat /etc/issue | 软件版本与内核版本检测 |
rpm –qa|grep binutils | 检验binutils是否安装 |
命令 | 描述 |
---|---|
help | 显示Bash的命令列表 |
help <命令字> 如 help pwd | 获得单独的Bash命令的帮助信息 |
help -s <命令字> 如 help –s pwd | 只显示命令的格式信息 |
shell命令(内置命令)是Linux系统中使用频率最高的一类命令 。 注:Bash是Linux系统中默认使用的shell程序。
Linux系统中的大多数命令都属于非shell命令,即“外部命令”:<命令字> —help 无论是shell命令还是非shell命令,都提供手册页形式的帮助信息:man <命令字>,通过↑、↓、PgUp、PgDn、q键操作 信息页是Linux中提供的与手册页类似的另一种帮助信息的形式: info <命令字> 注意:直接输入info命令,显示info说明信息,通过↑、↓、PgUp、PgDn、q键操作
文件/目录操作
命令 | 描述 |
---|---|
pwd | 打印当前工作目录(print working directory) |
ls [-l] [参数] | 用于显示文件或目录信息 添加 -l 时,每行显示一个文件和目录信息(长格式)参数传入文件名,显示此文件信息/文件夹内容 不加 -l ,只显示文件名 |
ll | 等同于ls -l |
cd | 更换目录(change directory) 上级目录: ../ 当前目录: ./ 根目录: / |
mkdir <目录名> | 新建目录(make directory)-p 自动创建不存在的父目录可同时创建多个目录,用空格分隔 |
mv <源文件名> <目录名/新文件名> | 目录存在时,将文件移动到该目录 在时,重命名文件 |
rmdir <目录名> | 删除空目录(remove directory)-p 自动删除父目录可同时删除多个目录,用空格分隔 |
touch <文件名> | 新建空文件 当文件不存在时,创建大小为0的空文件 存在时,则只更新该文件的时间属性 |
rm <文件名> | 删除文件-r 可删除非空目录(recurse)-f 删除时不提示(force)-rf 强制删除可同时删除多个文件,用空格分隔 |
find <path> -name <file> | 在指定目录下查找指定文件 文件名中可用 * 和? 通配符* 表示0到多个字符? 表示一个字符 |
file <文件名> | 文件类型查看 Linux中无文件扩展名,无法知其文件类型,所以常用此命令 |
cp <文件名> <目标目录> | 复制文件-r 可将原目录及其子目录复制到目标目录可同时复制多个文件,用空格分隔 |
包安装/依赖管理
一般来说著名的 Linux 系统基本上分两大类:
- RedHat 系列:Redhat、Centos、Fedora 等
- Debian 系列:Debian、Ubuntu 等
命令 | 描述 |
---|---|
yum install 软件名称 -y | 安装(-y表示询问y/n时全部选择y) |
yum remove 软件名称 -y | 卸载 |
压缩解压
常用命令 | 描述 |
---|---|
tar -xzvf 文件名.tar.gz | 解压tar.gz |
tar -xvf 文件名.tar | 解压tar |
tar -xjvf 文件名.tar.bz2 | 解压tar.bz2 |
tar -xZvf 文件名.tar.Z | 解压tar.Z |
unrar e 文件名.rar | 解压rar,需要先下载rar for linux |
unzip 文件名.zip | 解压zip,需要先下载rar for linux |
常用命令 | 描述 |
---|---|
tar -cvf jpg.tar *.jpg | 将目录里所有jpg文件打包成jpg.tar |
tar -czf jpg.tar.gz *.jpg | 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz |
tar -cjf jpg.tar.bz2 *.jpg | 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2 |
tar -cZf jpg.tar.Z *.jpg | 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z |
rar a jpg.rar *.jpg | rar格式的压缩,需要先下载rar for linux |
zip jpg.zip *.jpg | zip格式的压缩,需要先下载zip for linux |
-
独立命令
-c
: 建立压缩档案-x
:解压-t
:查看内容-r
:向压缩归档文件末尾追加文件-u
:更新原压缩包中的文件 这五个独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。 -
可选命令
-z
:有gzip属性的-j
:有bz2属性的-Z
:有compress属性的-v
:显示所有过程-O
:将文件解开到标准输出 -
下面的参数-f是必须的
-f
: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
用户管理
命令 | 描述 |
---|---|
useradd <用户名> | 添加用户 |
passwd <用户名> | 修改用户密码 |
su <用户名> | 切换到一个用户 |
usermod [-L|-U] <用户名> | -L 锁住(lock) -U 解锁(unlock) |
userdel [-r] <用户名> | 删除用户 |
whoami 、who am i | 查看当前用户 |
who | 查看所有已登录用户 |
last | 查看所有登录用户记录 |
命令 | 描述 |
---|---|
groupadd <用户组名> | 添加用户组 |
useradd -g <用户组名> <用户名> | 创建用户时指定用户初始组 |
usermod -g <用户组名> <用户名> | 修改用户所在组 |
groups <用户名> | 查看用户所属组 |
groupdel <用户组名> | 删除用户组 |
命令 | 描述 |
---|---|
write <user> | 向指定用户发送信息(ctrl+d结束编辑) |
wall '<info>' | 向所有用户发送信息 |
mesg <n/y> | 拒绝或接收发送的信息(对于root管理员无效) |
- | 路径 |
---|---|
用户信息文件 | /etc/passwd |
用户密码文件 | /etc/shadow |
用户组信息文件 | /etc/group |
文件权限
文件信息表示
ll <文件名>
查看文件权限
得出如下信息
-rw-r--r-- | 1 | root | root | 0 | Jul 22 16:04 | testfile | |||
---|---|---|---|---|---|---|---|---|---|
- | rw- | r-- | r-- | 属主 | 属组 | 更新时间 | 文件名 | ||
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
权限数字表示
权限 | 执行 (--x) |
写 (-w-) |
执行+写 (-wx) |
读 (r--) |
读+执行 (r-x) |
读+写 (rw-) |
读+写+执行 (rwx) |
---|---|---|---|---|---|---|---|
数字 | 1 | 2 | 3(2+1) | 4 | 5(4+1) | 6(4+2) | 7(4+2+1) |
文件权限的设置
命令 | 描述 |
---|---|
chmod [ugoa][+-=][rwx] <文件> | 更改文件权限 例如chmod u+w testfile ugoa分别表示User、Group、Other、All |
chown <用户名> <文件> | 更改文件所有者:加 -R 是修改子目录 |
chgrp <组名> <文件> | 更改文件所属组 |
chown <用户名:组名> <文件> | 同时更改所有者和所属组 |
chmod的扩展使用
- 我们可以简写中间的部分为三个数字,分别表示User、Group、Other的权限
chmod a=rwx 文件
和chmod 777 文件
效果相同chmod ug=rw,o=r 文件
和chmod 664 文件
效果相同 - 若用
chmod 4755 文件
可使此程式具有root的权限,这个4表示其他用户执行文件时,具有与所有者相当的权限。 例如:root用户创建了一个上网认证程序netlogin,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令使其他用户也能运行netlogin。 但是netlogin执行时可能需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网。 这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。
防火墙相关
命令 | 描述 |
---|---|
systemctl status firewalld | 查看防火墙的状态 |
systemctl [start/stop/restart] firewalld | 开启/关闭/重启 |
service firewalld [start/stop/restart] | 开启/关闭/重启 |
firewall-cmd --zone=public --add-port=6379/tcp --permanent | 开放指定端口,记得重启防火墙 命令含义: –zone 作用域–add-port=6379/tcp 添加端口,格式为:端口/通讯协议–permanent 永久生效(没有此参数重启后失效) |
netstat -ntlp | 查看当前运行的所有tcp端口 |
netstat -ntulp |grep 6379 | 查看所有1935端口使用情况 |
文本查看与编辑
查看
命令 | 描述 |
---|---|
cat <文件名> | 查看全部 |
more <文件名> | 分屏查看:h(帮助)space(下翻屏)b(上翻屏)enter(下一行)q(退出) |
less <文件名> | 分屏查看:e(下一行)y(上一行)f(下翻页)b(上翻页)q(退出) |
head -5 | 查看文件前5行 |
tail -5 | 查看文件后5行 |
tail -f 文件 | 实时查看文件 |
vi操作
vi模式切换
基本操作
操作 | 描述 |
---|---|
h ← k ↑ j ↓ l → | 光标方向移动 |
ctrl+b 前一页 ctrl+u 前半页ctrl+f 后一页 ctrl+d 后半页 | 翻页操作 |
^ home 行首$ end 行尾w 后一个单词首字母b 前一个单词首字母e 后一个单词尾字母 | 行内快速跳转 |
【末行模式】:set [nu/nonu] | 显示/隐藏行号 |
gg 首行5gg 第5行G 尾行5G 第5行 | 行数跳转 |
操作 | 描述 |
---|---|
x 删除后一个字符X 删除前一个字符dd 删除光标所在行3dd 3D 删除光标所在行+后2行dw 删除光标至词首de 删除光标至词尾d$ 删除光标至行尾d^ 删除光标至行首 | 删除操作 |
u | 撤销操作 |
yy 复制光标所在行yw 复制光标所在单词y$ 复制光标至行尾y^ 复制光标至行首3yy 复制光标所在行+后2行[行号],[行数] yy 从某行开始+后[行数-1]行yG 复制光标至文尾y1G 复制光标至文首 | 复制操作 |
p 粘贴在光标所在行之后P 粘贴在光标所在行之前3p 向后粘贴3次3P 向前粘贴3次 | 粘贴操作 |
【末行模式】
查找:
由”/”或者”?”开始后跟一个word
按n键查找后一个
按N键查找前一个
替换:
set fileencoding=utf8
操作 | 描述 |
---|---|
vi 文件1 文件2 | 创建/打开多个文件 |
【末行模式】:args | 查看当前文件 |
【末行模式】:first | 第一个文件 |
【末行模式】:prev | 上一个文件 |
【末行模式】:next | 下一个文件 |
【末行模式】:last | 最后一个文件 |
评论