Java大神常用Linux命令整理一

40 阅读5分钟

1. cd

用来改变目录

案例

cd 进入用户的主目录

cd /etc  绝对目录模式

cd ./home  相对目录模式

cd home  相对目录模式

cd .. 返回上一级目录

2. ls

列表显示文件和目录

案例

ls

ls -a

ls -l

ls -ltr

ls -ltrah

  • l列表形式展示
  • a显示隐藏文件
  • tr 按时间顺序列出
  • h 显示 K KM 等单位

3. clear & pwd & id & echo

  • clear 清屏
  • pwd 显示当前所在目录
  • id 显示当前用户
  • echo 打印、输出
echo '$PATH'  
echo "$PATH"
echo $PATH

4.重定向 > & >>

  • > 输出覆盖
  • >> 输出追加

5.创建文件

  • 重定向 >>>
> a.txt
>> b.txt
echo "java" > a.txt
echo "Linux" >> b.txt
  • touch
#创建一个文件
touch test.txt
# 同时创建两个文件
touch test1.txt test2.txt
  • vi 和 vim
vi test.txt
vim test.txt

6.rm & rmdir

删除文件和目录

  • rmdir:用来移除空文件夹
  • rmdir -p:递归删除空目录
  • rm:用来删除文件或目录
  • rm -r:递归删除目录及其内容
rmdir -p a/b/
rm a.txt
rm -f a.txt
rm -rf test/

7.mkdir & man

创建目录

  • mkdir:用来创建空文件夹
  • mkdir -p:递归创建目录
mkdir test
midir -p test/py
  • man 即 manual(手册)
man 命令

8.mv

移动或者重命名文件与目录

  • mv: 移动文件,重命名文件
mv source_file dest_file
mv source_directory dest_directory
mv source_file dest_directory
mv -f source_file dest_file

9. cp

  • cp: 复制文件与目录
cp a.txt test/
cp –r test/ newtest/
cp -r source... directory

10.查看文件

查看或者编辑

  • vi & vim

查看

  • view
  • cat
  • head
  • tail
  • less
  • more

案例

vi test.txt
less test.txt
#循环读取
tail -f access.log 

11. ln

建立软链接、硬链接

软链接:

  • 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
  • 软链接可以跨文件系统,硬链接不可以
  • 软链接可以对一个不存在的文件名进行链接
  • 软链接可以对目录进行链接

硬链接:

  • 硬链接,以文件副本的形式存在。但不占用实际空间
  • 不允许给目录创建硬链接
  • 硬链接只有在同一个文件系统中才能创建

案例

#软链接
ln -s docker-compose dc
#硬链接
ln docker-compose dc

12. chgrp & chown

  • chgrp(change group):用于变更文件或目录的所属群组
  • chown(change owner):用于设置文件所有者和文件关联组

格式

chgrp 组名 文件或目录
chown 用户 文件或目录
chown :组名 文件或目录
chown 用户:组名 文件或目录

案例

#将access.log文件由root群组改为nginx群组
chgrp nginx access.log

#把httpd.pid的所有者设置root
chown root /var/run/httpd.pid

#将文件nginx.conf的拥有者设为nginx,群体的使用者nginx
chown nginx:nginx nginx.conf

#将当前前目录下的所有文件与子目录的拥有者皆设为nginx,群体的使用者nginx
chown -R nginx:nginx test/

13. ping

  • 检测主机

执行 ping 会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运行正常。

案例

ping baidu.com

#指定接收包的次数
ping -c 10 baidu.com

14.telnet

telnet 用于远端登录 telnet服务的默认端口是23

案例

#telnet默认端口23
telnet 192.168.10.100
#telnet https端口
telnet baidu.com 443
#telnet redis端口
telnet local.redisservice.com 6379

15.netstat

显示网络状态

案例

#显示系统端口使用情况
netstat -anp
#UDP类型的端口
netstat -nup
#TCP类型的端口
netstat -ntpl
#查询某个端口的状态
netstat -an | grep 端口
#统计已连接上的,状态为established
netstat -an | grep ESTABLISHED | wc -l

16. grep & 管道命令操作符 |

  • grep 查找文件里符合条件的字符串
  • | 管道命令操作符

案例

#查找包含test字符串的行
grep test audit.log
#递归查找
grep -r *PATH* /etc 
#查找不以#打头的注释行
grep -v ^# /etc/profile
#忽略大小写
grep -i test audit.log
#使用管道
ls -l | less
cat /etc/profile | grep PATH

17. scp从本地复制到远程

scp用于Linux系统之间复制文件和目录

使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的

使用GUI工具进行拷贝:Linux -> Windows -> Linux

格式

scp local_file remote_username@remote_ip:remote_folder 
或者 
scp local_file remote_username@remote_ip:remote_file 
或者 
scp local_file remote_ip:remote_folder 
或者 
scp local_file remote_ip:remote_file 
  • 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
  • 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;

复制目录命令格式

scp -r local_folder remote_username@remote_ip:remote_folder 
或者 
scp -r local_folder remote_ip:remote_folder 
  • 第1个指定了用户名,命令执行后需要再输入密码;
  • 第2个没有指定用户名,命令执行后需要输入用户名和密码;

案例

#从本地复制到远程拷贝文件
scp test.txt root@www.olive.com:/home/
scp test.txt root@www.olive.com:/home/test1.txt
scp test.txt www.olive.com:/home/
scp test.txt www.olive.com:/home/test.txt

#从本地复制到远程拷贝目录
scp -r /home/test/ root@www.olive.com:/home/rtest
scp -r /home/test/ www.olive.com:/home/rtest

18. scp从远程复制到本地

scp用于Linux系统之间复制文件和目录

格式

scp remote_username@remote_ip:remote_folder local_file
或者 
scp remote_username@remote_ip:remote_file local_file
或者 
scp remote_ip:remote_folder local_file
或者 
scp remote_ip:remote_file local_file
  • 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
  • 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;

复制目录命令格式

scp -r remote_username@remote_ip:remote_folder local_folder
或者 
scp -r remote_ip:remote_folder local_folder 
  • 第1个指定了用户名,命令执行后需要再输入密码;
  • 第2个没有指定用户名,命令执行后需要输入用户名和密码;

其实,只要将从本地复制到远程的命令的后2个参数调换顺序即可

案例

#从远程复制到本地
scp root@www.olive.com:/home/test.txt /home/test.txt
scp -r www.olive.com:/home/rtest/ /home/test

#scp命令使用端口号 8022
scp -P 8022 root@www.olive.com:/home/startup.sh /home/startup.sh