1、Linux命令介绍
Linux命令是对Linux系统进行管理的命令,目前大部分的服务器操作系统是Linux(如Red hat、Debian、Centos等等),如果想要定位一个问题或者迭代更新、部署环境时,就需要登录后台服务器去排查日志、操作。
1.1、Linux常用命令主要分类
- 浏览目录命令:cd、ls 、pwd
- 查看日志命令:cat、more、less、tail、head
- 目录操作命令:mkdir、rmdir
- 文件操作命令:touch、vi/vim、rm、cp、mv、tar
- 文件权限命令:chmod、chown
进程相关命令:ps+grep、kill
1.2、浏览目录命令:cd、pwd、ls
1.2.1、cd命令
cd(changeDirectory) 命令语法:
cd [目录名] # 说明:切换当前目录至指定的目录名。 cd / # 说明:切换根目录。 cd ~ # 说明:切换到当前用户的home目录。如root用户切换到/root,普通用户切换到:/home/当前用户名 cd .. # 说明:返回上一级目录1.2.2、pwd命令
pwd(print work directory) 命令用于查看当前工作目录路径
pwd # 查看当前路径1.2.3、ls命令
通过 ls 命令可以查看 linux 文件夹包含的文件,也可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。
ls(list) 命令语法:ls -a # 列出目录所有文件,包含以.开始的隐藏文件 ls -A # 列出除.及..的其它文件 ls -r # 反序排列 ls -t # 以文件修改时间排序 ls -S # 以文件大小排序 ls -h # 以易读大小显示 ls -l # 等于ll,显示会文件名,还会文件的权限、所有者、文件大小等信息详细列出来1.3、查看日志命令:cat、more、less、tail、head
cat、more、less、tail、head均可用来查看文件内容,主要区别有:
- cat是一次性显示整个文件的内容,适用于文件内容少的情况。
- more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。
tail 和 head分别显示文件的后几行和前几行内容。常用于大文件的截取。其中tail、cat在查看日志时比较常用。
1.3.1、cat命令
cat filename # 一次性显示filename文件内容 cat -n xx.log # 从1开始对所有输出的行数进行编号 cat xx.log | grep -A 5 '关键字' # 显示"关键字"及后5行 cat xx.log | grep -B 5 '关键字' # 显示"关键字"及前5行 cat xx.log | grep -C 5 '关键字' # 显示文件里匹配"关键字"字串那行以及上下5行1.3.2、more命令
功能和cat类似, more 会一页一页的显示,比较方便按页阅读,查询关键字功能比较弱。
more filename # 显示所有内容,按空格(space)下一屏,b(back)上一页,q(quit)/ctrl+c退出阅读1.3.3、less命令
less 与 more 比较类似,但是查询关键字更加灵活
q: 退出less 命令 回车键: 向下滚动一行 [pagedown]/空格: 向下翻一页 [pageup]/b: 向上翻一页 /关键字: 会向下查询关键字 ?关键字: 向上查询关键字 G/g: G翻到最后一行,g翻页到首行1.3.4、tail命令
主要用于显示指定文件末尾的内容,如:实时查看日志文件输出。
tail -f filename # 实时显示filename文件的内容 tail -n 5 filename # -n是默认会有的参数,不填也可以,显示filename文件的最后5行1.3.5、head命令
head 默认显示文件的开头 10 行。
head -n 15 filename # 显示前15行1.4、目录操作命令:mkdir、rmdir
1.4.1、mkdir命令
mkdir 命令用于创建文件夹。
mkdir test # 当前目录下创建名为 test的文件夹 mkdir -p /opt/test/t1/t # 在 opt 目录下创建路径为 test/t1/t 的目录,若不存在,则创建1.4.2、rmdir命令
从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。
注意:不能删除非空目录rmdir test/ # 删除 test/ 目录 rmdir -p test/t1/t # 递归删除 test/t1/t1.5、文件操作命令:touch、vi/vim、rm、cp、mv、tar
1.5.1、touch命令
修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件
touch testfile # 创建testfile,如果已存在会修改文件时间属性为当前系统时间1.5.2、vi/vim命令
vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
命令模式:
1、启动 vi/vim,便进入了命令模式。这时键盘输入会被vi/vim识别为命令,而不是输入字符。
2、基础常用的几个命令如下:
i # 切换到输入模式,以输入字符。
x # 删除当前光标所在处的字符。
shift + :(英文冒号) # 切换到底线命令模式,在最底一行输入命令。输入模式:
1、在命令模式下按下i就进入了输入模式
2、基础常用如下:
ENTER,回车键,换行
BACKSPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式底线命令模式:
1、在命令模式下按下shift + :(英文冒号)就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
2、基础常用命令如下:
q # 输入q后,回车退出程序;q!强制退出
w # 保存文件
x # 保存文件,退出程序;和wq一致1.5.3、rm命令
rm(remove)命令用于删除一个文件或者目录。这是个比较危险的命令,千万不要尝试 rm -rf / ,这和删库跑路没什么区别。
rm -i # 删除前逐一询问确认。
rm -f # 即使原档案属性设为只读,也直接删除,无需逐一确认。
rm -r # 将目录及以下之档案亦逐一删除。
rm -rm test/ # 直接删除test/ 目录和目录下所有文件,不会有确认提示1.5.4、cp命令
cp(copy file)命令主要用于复制文件或目录
常用:
cp file1 file2 # 复制source文件到指定目录并且重命名为filename
cp –r test/ test1 # 将当前目录 test/ 下的所有文件复制到新目录 test1 下参数:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。1.5.5、mv命令
mv(move file)命令主要用来重命名文件或目录,或者移动文件或目录。
1.5.6、tar命令
tar(tape archive )命令用于备份文件。通常和-z参数以gzip格式压缩文件一起使用
常用:
tar -zcvf test.tar.gz test.txt # 压缩 test.txt文件为test.tar.gz
tar -zcvf test.tar.gz test/ # 压缩 test目录下的所有文件以及文件夹,命名为test.tar.gz
tar -zxvf test.tar.gz # 解压缩test.tar.gz到当前目录
tar -zxvf test.tar.gz -C /opt # 解压缩test.tar.gz到/opt目录主要参数:
-c或--create 建立新的备份文件。
-C<目的目录>或--directory=<目的目录> 切换到指定的目录。
-f<备份文件>或--file=<备份文件> 指定备份文件。
-v或--verbose 显示指令执行过程。
-x或--extract或--get 从备份文件中还原文件
-z或--gzip或--ungzip 通过gzip指令处理备份文件。1.6、文件权限命令:chmod、chown
1.6.1、chmod命令
chmod(change mode)是控制用户对文件操作权限的命令。只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。
符号模式:
文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
| u | user | 文件所有者 |
|---|---|---|
| g | group | 文件所有者所在组 |
| o | others | 所有其他用户 |
| a | all | 所用用户, 相当于 ugo |
操作符号
| + | 为指定的用户类型增加权限 |
|---|---|
| - | 去除指定用户类型的权限 |
| = | 设置指定用户权限的设置,即将用户类型的所有权限重新设置 |
八进制语法:
chmod命令可以使用八进制数来指定权限。文件或目录(d)的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。
| r = 4 | 读 | 设置为可读权限 |
|---|---|---|
| w =2 | 写 | 设置为可写权限 |
| x = 1 | 执行权限 | 设置为可执行权限 |

常用实例:
chmod ugo+r file1.txt # 设置 file1.txt 文件为所有用户都可读取
chmod o+x file1.sh # 其他用户增加对 file1.sh 文件的可执行权限
chmod u-x file1.sh # 文件拥有者去除对 file1.sh 文件的可执行权限
chmod ug=rwx,o=x file.sh # 文件拥有者、用户组,其他用户执行权限 === chmod 771 file.sh
chmod 755 file1.sh # 设置文件拥有者可读、写、执行;用户组、其他用户读、执行权限drwxr-xr-x 3 root root 4096 12月 22 11:43 t3
-rw-r--r-- 1 root root 211 12月 22 13:44 t3.tar.gz
-rw-r--r-- 1 root root 160 12月 22 13:20 test01.tar.gz1.6.2、chown命令
chown(change owner)命令用于设置文件所有者和文件关联组。chown 需要超级用户 root 的权限才能执行此命令。
常用实例:
chown root start.sh # 设置 start.sh 的所有者为 root
chown :root start.sh # 设置 start.sh 的关联用户组为 root
chown root:root start.sh # 设置 start.sh 的所有者、关联用户组为 root1.7、进程相关命令:ps,grep、kill
1.7.1、ps,grep、kill
ps (process status)命令用于显示当前进程的状态。
grep命令用于查找文件里符合条件的字符串
kill 命令用于删除执行中的程序或工作,常用:kill -9 PID
常用:
ps -ef | grep 进程关键字 # 查找指定关键字的进程,会包含grep本身
# 查询结果的主要字段的含义
UID PID PPID C STIME TTY TIME CMD
root 1637 1 0 17:32 ? 00:00:00 /usr/bin/memcached -d -m 64 -u root -p 11211
ps -aux | grep 进程关键字 #查询结果的主要字段的含义 RSS占用内存kb单位
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 592 0.0 0.2 13292 7732 ? Ss 11:55 0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startupsps 的参数非常多, 在此仅列出几个常用的参数介绍
-e # 显示运行在系统上的所有进程
-f # 扩展显示输出
-au # 显示较详细的资讯
-aux # 显示所有包含其他使用者的进程,RSS占用内存kb单位2、搭建一个Tomcat web应用
2.1、Tomcat服务器基本介绍
Tomcat 是一个运行JAVA的免费开源的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用。可到官网下载(Linux:Core版本):https://tomcat.apache.org/
2.2、运行 Tomcat需要JDK的支持
以下方法二选一,Tomcat内配置的JDK会优先与环境变量,主要用于需要不同版本的JDK。可以在华为开源镜像站下载:https://repo.huaweicloud.com/java/jdk/
1、配置环境变量/etc/profile,source /etc/profile 立即生效
export JAVA_HOME=/opt/jdk1.8.0_25
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH2、在Tomcat内 bin/catalina.sh 文件添加JDK相应目录配置
export JAVA_HOME=/opt/jdk1.8.0_25
export JRE_HOME=/opt/jdk1.8.0_25/jre2.3、启动Tomcat服务
cd /opt/apache-tomcat-8.5.73/bin/
sh startup.sh # 启动命令
./start.sh # 有执行权限时,启动命令
cd /opt/apache-tomcat-8.5.73/logs
tail -f /catalina.out # 实时查看输出日志
# 当看到 Server startup 时表示Tomcat 启动完成了
org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8081"]
org.apache.catalina.startup.Catalina.start Server startup in 605 ms2.4、Tomcat目录作用:

bin # 启动服务的目录:Linux下是startup.sh
conf # 配置文件目录,主要配置server.xml
logs # 日志目录,主要查看catalina.out实时输出
webapps # 默认的web应用程序包存放目录2.5、server.xml主要配置项Connector、Host
为什么启动服务后默认的端口是8080,是在server.xml里配置的。
<!--
1、Connector:表示客户端和service之间的连接
2、port:是指服务器端要创建的端口号,并且会监听这个端口来自客户端的请求
3、protocol:规定了请求协议如HTTP、AJP协议等
4、connectionTimeout:请求超时的时间数(以毫秒为单位)
5、redirectPort:服务器http请求时收到SSL请求后重定向的端口号
-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
type="RSA" />
</SSLHostConfig>
</Connector>
-->
应用程序包存放目录,当appBase下war包名是ROOT时,访问不需要带上下文。
<!--
1、Host:表示一个虚拟主机
2、name:指定主机名,如果有公网服务ip解析的域名也可设置如:name="www.xxx.com"
3、appBase:应用程序基本目录,即存放应用程序的目录
4、unpackWARs:为true时,Tomcat会自动将WAR包解压,否则不解压,直接从WAR文件中运行应用程序
5、autoDeploy:如果为true,当Tomcat服务器在运行时,会监听appBase下的文件,有新的Web应用加入时,会自动发布这个Web应用。
-->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
</Host><!--
server.xml整体框架,需要深入了解的可以找其他资料继续学习
-->
<Server>
<Listener />
<GlobaNamingResources>
</GlobaNamingResources
<Service>
<Connector />
<Engine>
<Logger />
<Realm />
<host>
<Logger />
<Context />
</host>
</Engine>
</Service>
</Server>
评论