作为一名开发人员,部署项目也需要操作Linux服务器。下面一些常用的linux命令,方便查看使用

Hot Key

按键

作用

Ctrl+L

清屏

Ctrl+C

强制终止程序

Ctrl+Insert

复制

Shift+Insert

粘贴

Ctrl+s

锁屏

Ctrl+q

解除锁屏

tab

自动补全

1. 文件管理命令

1.1 查看目录下文件 ls

 ls                                          # 仅列出当前目录可见文件
 ls -l                                       # 列出当前目录可见文件详细信息
 ls -hl                                      # 列出详细信息并以可读大小显示文件大小
 ls -al                                      # 列出所有文件(包括隐藏)的详细信息
 ls --human-readable --size -1 -S --classify # 按文件大小排序
 du -sh * | sort -h                          # 按文件大小排序(同上)

1.2 切换用户当前工作目录 cd

 cd           # 进入用户主目录;
 cd /         # 进入根目录
 cd ~         # 进入用户主目录;
 cd ..        # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
 cd ../..     # 返回上两级目录;
 cd !        # 把上个命令的参数作为cd参数使用。

1.3 创建新目录 mkdir

 mkdir images/                 #创建目录
 mkdir -p movies/2004/         #创建子目录时,递归创建父目录
 mkdir -m 700 /usr/meng/test   #创建目录的同时设置权限,其他人无权访问

1.4 删除空目录 rmdir

 rmdir www           #删除当前目录下,名为www的子目录
 rmdir -p www/Test   #删除子目录时,父目录为空,则亦删除

1.5 打印当前目录 pwd

 pwd

1.6 创建空文件 touch

 touch ex2       #当前目录下建立一个空文件ex2,大小为0
 touch -c ex2    #如果文件已经存在,则不创建该文件。避免意外覆盖现有文件

1.7 复制文件或目录 cp

目标文件参数必须是一个已经存在的目录,否则将出现错误

 cp file.txt /path/to/destination/       #复制文件到指定目录
 cp –r test/ newtest                     #复制 test 目录下的所有文件到 newtest 目录
 cp -i /usr/men m*.c /usr/zh             #将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中,覆盖既有文件之前先询问
 cp -rfb ./* ../backup                   #递归强复制,将当前目录下所有文件,复制到当前目录的兄弟目录 backup 文件夹中

1.8 移动/重命名文件或目录 mv

 mv file.txt /home/office/                          #移动 file 文件到 /home/office 目录下
 mv file_2.txt file_3.txt file_4.txt /home/office/  #移动3个文件到 /home/office 目录下
 mv *.txt /home/office/                             #移动所有的 txt 文件到 /home/office 目录下
 mv directory_1/ /home/office/                      #移动目录到 /home/office 目录下
 mv file_1.txt file_2.txt                           #将文件 file_1.txt 改名为 file_2.txt
 mv directory_1/ directory_2/                       #将目录 directory_1 改名为 directory_2 
 mv -v *.txt /home/office                           #打印移动信息
 mv -i file_1.txt /home/office                      #如果已存在,则提示是否覆盖文件
 mv -uv *.txt /home/office                          #源文件比目标文件新时才执行更新
 mv -vn *.txt /home/office                          #不要覆盖任何已存在的文件
 mv -bv *.txt /home/office                          #复制时创建备份
 mv -f *.txt /home/office                           #无条件覆盖已经存在的文件

1.9 删除文件或目录 rm

 rm testfile.txt                       #删除文件 
 rm -r testdir                         #递归删除目录下的所有文件和目录
 rm -i test example                    #删除前先询问
 rm -r -i testdir                      #删除文件夹内的文件前,询问
 rm -f testfile.txt testfile_1.txt     #强制删除,忽略不存在的文件
 rm -rf testdir                        #强制删除 目录下的所有文件和目录
 rm -I file1 file2 file3               #删除多个文件仅提示一次
 rm -v [文件/目录]                      #删除并打印详情

1.10 编辑文本(命令行环境) vim

vim content.txt        #打开文件,如果文件不存在,则创建一个空文件并打开; 注:此时为命令模式。

命令模式: 通过各种快捷键操作当前文本。

输入模式: 可以编辑文本内容。

末行模式: 文末输入特定指令配置文件。

1.10.1 文本插入操作

i:  在当前光标的前面插入字符
a:  在当前光标的后面追加字符
o:  在当前光标的下一行行首插入字符
I:  在一行的开头添加文本
A:  在一行的结尾处添加文本
O:  在光标当前行的上一行插入文本
s:  删除当前光标处的字符并进入到插入模式
S:  删除光标所在处的行,并进入到插入模式
u:  撤销修改

1.10.2 文本查找

/string   正向查找
?string   反向查找
n   下一个
N   上一个

1.10.3 撤销修改、重做与保存

u:  撤销上一步的操作。
Ctrl+r:  反撤销
:U  恢复一整行原来的面貌(文件打开时的文本状态)
:q  若文件没有修改,直接退出
:q!  文件已经被修改,放弃修改退出
:wq  文件已经被修改,保存修改并退出
:e!  放弃修改,重新回到文件打开时的状态

1.11 查看文件内容 cat

cat ./1.log ./2.log ./3.log        #合并显示多个文件
cat -n test.log                    # 显示文件并在所有行开头附加行号
cat -b test.log                    # 显示文件并在所有非空行开头附加行号

1.12 分屏显示文件内容 less

b                   #向上翻一页
空格、f             #向下翻一页
回车                #向下翻一行
PgUp 与 PgDn        #进行翻页

/string   正向查找
?string   反向查找
n   下一个
N   上一个

1.13 显示文件末尾内容 tail

tail file         #(显示文件file的最后10行)
tail -n +20 file  #(显示文件file的内容,从第20行至文件末尾)
tail -c 10 file   #(显示文件file的最后10个字节)

tail -25 mail.log # 显示 mail.log 最后的 25 行
tail -f mail.log  # 等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
tail -F mail.log  # 等同于--follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪

1.14 查找文件/目录 find

find /home -name "*.txt"     #在/home目录下查找以.txt结尾的文件名
find /home -iname "*.txt"    #同上,但忽略大小写

1.15 查找文件/目录(更快、基于索引) locate

locate pwd    #查找和pwd相关的所有文件
updatedb      #新增文件搜索不到时,执行此命令更新索引

1.16 归档、压缩、解压 tar zip unzip

tar -cvf archive.tar file1 file2 directory       #将3个文件打包归档到 archive.tar 中
tar -xvf archive.tar                             #解包归档文件
tar -tvf archive.tar                             #列出归档文件中的目录和文件
tar -rvf archive.tar newfile                     #追加 newfile 到 archive.tar 中

tar -zcvf archive.tar.gz directory               #打包并gzip压缩 directory 目录下的所有目录文件到 archive.tar.gz 中
tar -zxvf example.tar.gz                         #gzip解压 example.tar.gz 

tar -cjvf archive.tar.bz2 directory              #bzip2 压缩
tar -xjvf archive.tar.bz2                        #bzip2 解压

tar -cJvf archive.tar.xz directory               #xz 压缩
tar -xJvf archive.tar.xz                         #xz 解压
zip -q -r html.zip /home/html                    #将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip
unzip test.zip -d /tmp                           #在 /tmp 目录下解压 test.zip 文件

2. 进程命令

2.1 查看进程 ps

ps -ef | grep java             #查看当前正在运行的java进程

2.2 结束进程 kill

kill PID                       #结束进程;等同 -15
kill -9 PID                    #强制、立即结束进程

2.3 实时系统监控 top

top

3. 辅助命令

3.1 查看命令历史 history

history                #列出全部历史命令
history  7             #列出最近的7条命令

3.2 发送网络请求 curl

3.3 下载文件 wget

wget -P /root https://example.com/file.tar.gz      #下载文件到指定目录
wget http://example.com/file.zip -O myfile.zip     #下载文件并重命名为 myfile.zip

3.4 后台运行程序 nohup

nohup java -jar server2.jar >> out.log &           #后台运行jar包,并输入日志到 out.log 文件中