本文就主要将linux常见命令总结一下,方便以后也会部分运维部署操作,不过命令能看懂,主要的部分有印象即可,这样方便知道往哪边查询。

远程SSH工具推荐finalshell或者MobaXterm都行,然后linux的安装就用VMware安装即可(如果以后工作应该就不用VMware了),推荐使用ubuntu,centos7也行。

Linux

/ 是所有目录的顶点 (./和末尾的/可以省略不写)

  • Linux 系统中的路径 /itheima 与 itheima 有区别吗?

    • /itheima 是绝对路径,是指根目录 / 下的 itheima 目录

    • itheima 是相对路径,是指当前目录下的 itheima 目录 类似./

目录操作命令

1.pwd

查看当前文件夹所属目录

2.ls

ls [-al] [dir]: 显示指定目录下的内容 ll /usr是查看根目录下的usr文件夹中的详细信息,如果不加/则是查找当前目录往下的指定目录 而且linux中不要看后缀名,只能看前边d才是目录-表示文件

其实-a大多都是将.隐藏文件都查看出来了

3.cd

  • 作用:用于切换当前工作目录,即进入指定目录

  • 语法:cd [dirName] (注意cd itcast | cd itcast/ | cd ./itcast含义都一样,用第一个即可)

  • 说明:

    • . 表示目前所在的目录

    • .. 表示目前目录位置的上级目录

    • ~ 表示用户的home目录

  • 举例:

    • cd .. 切换到当前目录的上级目录

    • cd ~ 切换到用户的home目录(普通的用户目录,而且展示也是~)

    • cd /usr/local 切换到/usr/local目录

    • cd - 切换到上一次所在目录

用户类型 主目录(Home Directory)路径 /home 的关系
普通用户(如 user1 /home/user1 主目录是 /home 的子目录
root 用户(管理员) /root 主目录与 /home 完全独立

4.mkdir

  • 作用:创建目录

  • 语法:mkdir [-p] dirName

  • 说明:

    • -p:确保父目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建

  • 举例:

    • mkdir itcast 在当前目录下,建立一个名为 itcast 的子目录

    • mkdir -p itcast/test 在 itcast 目录中创建 test 子目录,若 itcast 目录不存在,则建立一个

5.rm

  • 作用:删除文件或者目录

  • 语法:rm [-rf] name

  • 说明:

    • -r:将目录及目录中所有文件(目录)逐一删除,即递归删除

    • -f:无需确认,直接删除

  • 举例:

    • rm -r itcast/(/也可以省略,只不过tab补全时自动加上了) 删除名为 itcast 的目录和目录中所有文件,删除前需确认

    • rm -rf itcast/ 无需确认,直接删除名为 itcast 的目录和目录中所有文件

    • rm -f hello.txt 无需确认,直接删除 hello.txt 文件

6.history

查看历史记录,方便我们复制之前写过的指令

文件操作命令

注意以下命令不能对目录进行操作

1.cat

只适合查看小文件,否则容易刷屏,而且不能查看目录

  • 作用:用于显示文件的所有内容

  • 语法:cat [-n] fileName

  • 说明:

    • -n :由1开始对所有输出的行数编号 可以打印行号

  • 举例:

    • cat /etc/profile 查看/etc目录下的profile文件内容

2.more

  • 作用:以分页的形式显示文件内容

  • 语法:more fileName

  • 操作说明:

    • 回车键 向下滚动一行

    • 空格键 向下滚动一屏

    • b 返回上一屏

    • q或Ctrl+C 退出more

  • 举例: more /etc/profile 以分页方式显示/etc目录下的profile文件内容

3.head

  • 作用:查看文件开头的内容

  • 语法:head [-n] fileName

  • 说明:

    • -n :输出文件开头的n行内容

  • 举例:

    • head 1.log 默认显示1.log文件开头的10行内容

    • head -20 1.log 显示1.log文件开头的20行内容

4.tail

  • 作用:查看文件末尾的内容

  • 语法:tail [-nf] fileName

  • 说明:

    • -n :输出文件末尾的n行内容

    • -f :动态读取文件末尾内容并显示,通常用于日志文件的内容输出,比如我们的log4j就是追加模式写入日志

  • 举例:

    • tail 1.log 默认显示1.log文件末尾10行的内容

    • tail -20 1.log 显示1.log文件末尾20行的内容

    • tail -f 1.log 动态读取1.log文件末尾内容并显示(实时刷新)

5.echo

echo 111111111111111111 >> tlias.log 可以向指定文件输入内容

拷贝移动命令

1.cp拷贝

注意只是拷贝所以文件没有移动即没有消失,仍然可以ls查看到

  • 作用:用于复制文件或目录

  • 语法:cp [-r] source dest

  • 选项:

    • -r:如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件

  • 举例:

    • cp hello.txt itcast/ 将hello.txt复制到itcast目录中

    • cp hello.txt ./hi.txt 将hello.txt复制到当前目录,并改名为hi.txt

    • cp -r itcast/ ./itheima/ 将itcast目录和目录下所有文件复制到itheima目录下

    • cp -r itcast/* ./itheima/ 将itcast目录下所有文件复制到itheima目录下

2.mv移动或重命名

  • 作用:为文件或目录重命名、或将文件或目录移动到其它位置(第二个参数是已存在的目录执行移动)

  • 语法:mv source dest

  • 举例:

    • mv hello.txt hi.txt 将 hello.txt 改名为 hi.txt

    • mv hi.txt itheima/ 将文件 hi.txt 移动到 itheima 目录中

    • mv hi.txt itheima/hello.txt 将 hi.txt 移动到 itheima 目录中,并改名为 hello.txt

    • mv itcast/itheima/ 如果 itheima 目录不存在,将 itcast 目录改名为 itheima

    • mv itcast/itheima/ 如果 itheima 目录存在,将 itcast 目录移动到 itheima 目录中

打包压缩命令

tar

  • 作用:对文件进行打包、解包、压缩、解压

  • 语法:tar [-zcxvf] fileName [files]

  • 说明:

    • 包文件后缀为.tar表示只是完成了打包,并没有压缩

    • 包文件后缀为.tar.gz表示打包的同时还进行了压缩

  • 选项:

    • -z:z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压

    • -c:c代表的是create,即创建新的包文件 打包

    • -x:x代表的是extract,实现从包文件中还原文件 解包 (打包和解包互斥)

    • -v:v代表的是verbose,显示命令的执行过程

    • -f:f代表的是file,用于指定包文件的名称

打包

通常打包的时候就包含压缩了, 而且如果不想输出详细信息,-v可以省略,而且此时这些指令有顺序

  • tar -cvf hello.tar hello:将当前目录下所有文件打包,打包后的文件名为 hello.tar

  • tar -zcvf hello.tar.gz hello:将当前目录下所有文件打包并压缩,打包后的文件名为 hello.tar.gz

解包

  • tar -xvf hello.tar:将 hello.tar 文件进行解包,解包后的文件放在当前目录

  • tar -zxvf hello.tar.gz:将 hello.tar.gz 文件进行解压,解压后的文件放在当前目录

  • tar -zxvf hello.tar.gz -C /usr/local:将 hello.tar.gz 文件进行解压,解压到指定的 /usr/local 目录中

文本编辑命令

vim

虽然vi也可以,不过vim相当于升级版,并且编辑内容有醒目提醒

注意: vim 文件如果不存在,也会自动在当前目录创建

  • 输入vim后是处于命令模式状态(可以输入命令模式指令),此时不能直接编辑文件

  • 然后i,a,o随便输入一个进入插入模式开始编辑,写完之后需要先按下ESC退出到命令模式

  • 此时按下:进入底行模式然后可以输入命令了(注意此时:wq等就是一个整体,输入:后此时不会消失)

  • 底行模式想退出,可以把:删掉或者ESC都可以

查找命令

1.find

  • 作用:根据文件属性在指定目录下查找文件

  • 语法:find dirName -option fileName

  • 举例:

    • find . -name "*.log" 在当前目录及其子目录下查找.log 结尾文件

    • find /itcast -name "*.log" 在 /itcast 目录及其子目录下查找.log 结尾的文件

  • 一般根据name也就是文件名进行查找即可,也可以根据权限等不过用的不多

2.grep

  • 作用:从指定文件中查找指定的文本内容 (比cat更灵活一些,比如可以方便我们查找异常以及上下文)

  • 语法:grep [-inAB] word fileName

  • 选项:

    • -i:检索的关键字忽略(ignore)大小写

    • -n:显示关键字所在的这一行的行号

    • -A:输出关键字所在行及之后(After)的几行记录(如:-A5 表示输出关键字所在行之后的5行记录)

    • -B:输出关键字所在行及之前(Before)的几行记录(如:-B5 表示输出关键字所在行之前的5行记录)

  • 举例:

    • grep Hello HelloWorld.java 查找HelloWorld.java文件中出现的Hello字符串的位置

    • grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置

grep -in -A5 -B5 'exception' tlias.log
注意: 单引号也可以不加,不过如果有特殊字符$空格等则必须加上

find 与 grep 都是查找命令,两者之间的区别:

  • find 命令是根据文件的属性(如:文件名)来查找文件的

  • grep 命令是根据指定的关键字,来查找文件内容的

安装 JDK(只不过是清楚一下基本的步骤,因为用docker安装更加简单方便)

操作步骤: 1、使用 FinalShell 自带的上传工具将 jdk 的二进制发布包上传到 Linux [jdk-17.0.10_linux-x64_bin.tar.gz] 2、解压安装包,命令为 tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz -C /usr/local 3、配置环境变量,使用 vim 命令修改 /etc/profile 文件,在文件末尾加入如下配置

  • export JAVA_HOME=/usr/local/jdk-17.0.10

  • export PATH=$JAVA_HOME/bin:$PATH

4、重新加载 profile 文件,使更改的配置立即生效,命令为 source /etc/profile 5、检查安装是否成功,命令为 java -version

防火墙操作

Ubuntu 默认使用 ufw(想要适用就安装firewalld)所以下方命令不适用,不过centos适用

  • 查看防火墙状态(systemctl status firewalld、firewall-cmd --state)

  • 关闭防火墙(systemctl stop firewalld)

  • 开启防火墙(systemctl start firewalld)

  • 永久关闭防火墙(systemctl disable firewalld)

推荐做法:

  • 开放指定端口(firewall-cmd --zone=public --add-port=8080/tcp --permanent)

  • 关闭指定端口(firewall-cmd --zone=public --remove-port=8080/tcp --permanent)

  • 立即生效(firewall-cmd --reload)

  • 查看开放的端口(firewall-cmd --zone=public --list-ports)

注意:

  • 1、systemctl 是管理 Linux 中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作

  • 2、firewall-cmd 是 Linux 中专门用于控制防火墙的命令

  • 3、为了保证系统安全,生产服务器的防火墙不建议关闭

项目部署

以下是传统方式,如果用docker更加便捷

nginx 启动、停止、重新加载操作 ?

  • 启动:sbin/nginx

  • 停止:sbin/nginx -s quit

  • 重新加载:sbin/nginx -s reload

后端项目部署

  1. 执行maven的父工程中的package生命周期,对项目进行打包 【打包之前,先连接上服务器数据库,先测试通过】。

  2. 在linux服务器的/usr/local目录下,创建一个目录tlias-app,将jar包上传到服务器的 /usr/local/tlias-app 目录中。

  3. 然后在命令行执行命令,运行jar包 :java -jar xxxxxx.jar

上述执行运行jar包之后,会占用前台窗口,窗口关闭服务也就停了。可以使用 nohup 指令,后台运行服务,执行指令: nohup java -jar xxxxxx.jar &> tlias.log &

查看进程:ps -ef | grep xxxx

Linux 中的特殊符号:

  • |:管道符。将前面命令的输出,作为后面命令的输入。如:ps -ef | grep java

  • 与 >> :重定向符号。将前面的文本内容,输出到后面的文件中(> :覆盖重定向,>> :追加重定向)。 如:echo 'Hello Linux' > 1.log

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐