Linux操作系统常用命令以及如何快速搭建Tomcat应用

 ·  2021-01-12

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/t

    1.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)

uuser文件所有者
ggroup文件所有者所在组
oothers所有其他用户
aall所用用户, 相当于 ugo

操作符号

+为指定的用户类型增加权限
-去除指定用户类型的权限
=设置指定用户权限的设置,即将用户类型的所有权限重新设置

八进制语法:
chmod命令可以使用八进制数来指定权限。文件或目录(d)的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。

r = 4设置为可读权限
w =2设置为可写权限
x = 1执行权限设置为可执行权限

chmod.png
常用实例:

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.gz

1.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 的所有者、关联用户组为 root

1.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 startups

ps 的参数非常多, 在此仅列出几个常用的参数介绍

-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:$PATH

2、在Tomcat内 bin/catalina.sh 文件添加JDK相应目录配置

export JAVA_HOME=/opt/jdk1.8.0_25
export JRE_HOME=/opt/jdk1.8.0_25/jre

2.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 ms

2.4、Tomcat目录作用:

Tomcat目录.jpg

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>
 
评论
猪芳芳. All Rights Reserved.