Linux常用命令-持续更新中

Updated on with 925 views

工作中用到的常用命令

一个好用的网站
Linux命令大全
基本囊括所有的 Linux 命令
个人使用,因此仅收集开发过程中使用频率比较高的命令
现在

网络

  • 1.netstat 命令
    场景:知道某个应用的端口,找到该应用的 PID

netstat -tunlp|grep 2181

查询 8080 端口 tcp 连接数量

netstat -nat|grep -i 8080|wc -l

  • 2.lsof -i:端口号
    查看端口号是否占用,并且返回信息
lsof -i:8003

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Java 1792 root 49u IPv4 3134597 0t0 TCP *:webcache (LISTEN)

  • 3.curl 文件传输工具

curl 的功能比较强大 ,作为一款强力工具,curl 支持包括 HTTP、HTTPS、ftp等众多协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征

详细的可以查阅相关资料

例如:

curl -O https://github.com/java-decompiler/jd-gui/releases/download/v1.4.1/jd-gui-osx-1.4.1.tar

将该文件下载至本地并以原文件名进行保存

  • 4.wget 用来从指定的 URL 下载文件

wget https://github.com/java-decompiler/jd-gui/releases/download/v1.4.1/jd-gui-osx-1.4.1.tar
wget https://github.com/java-decompiler/jd-gui/releases/download/v1.4.1/jd-gui-osx-1.4.1.tar

下载该文件

系统

  • 1.df 命令
    显示磁盘的相关信息
    场景:服务器磁盘满了等等,如果有进行日常维护的话是不会出现这种问题的

df -lh
df -lh

Filesystem Size Used Avail Use % Mounted on
/dev/vda1 50G 5.3G 42G 12% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 920M 24K 920M 1% /dev/shm
tmpfs 920M 580K 919M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs 184M 0 184M 0% /run/user/0

  • 2.du 命令

显示每个文件和目录的磁盘使用空间

例如: 输出该目录下的文件总大小,以 M 为单位

du -sh
du -sh

  • 3.uname

例如:

uname -a
uname -a

输出系统的信息

Darwin zhaxiaoweideMacBook-Pro.local 18.2.0 Darwin Kernel Version 18.2.0: Thu Dec 20 20:46:53 PST 2018; root:xnu-4903.241.1~1/RELEASE_X86_64 x86_64

  • 4 chmod 用来变更文件或目录的权限

使用

ls -l

命令显示的内容如下,能够看到各个文件夹的权限:

-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc

以上输出详细说明:

- 10 个字符确定不同用户能对文件干什么
- 第一个字符代表文件(-)、目录(d),链接(l)
- 其余字符每 3 个一组(rwx),读(r)、写(w)、执行(x)
- 第一组 rwx:文件所有者的权限是读、写和执行
- 第二组 rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组 r--:不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1  因此 rwx=4+2+1=7
- 1 表示连接的文件数
- root 表示用户
- root 表示用户所在的组
- 1213 表示文件大小(字节)
- Feb 2 09:39 表示最后修改日期
- abc 表示文件名

改变权限的命令

chmod 改变文件或目录的权限 chmod 755 abc:赋予 abc 权限 rwxr-xr-x chmod u=rwx,g=rx,o=rx abc:同上 u= 用户权限,g= 组权限,o= 不同组其他用户权限 chmod u-x,g+w abc:给 abc 去除用户执行的权限,增加组写的权限 chmod a+r abc:给所有用户添加读的权限

  • 5 chown 改变某个文件或目录的所有者和所属的组

chown root ./abc
chown root ./abc

  • 6 chgrp 用来改变文件或目录所属的用户组

chgrp root abc
chgrp root abc

权限有关的命令在多用户环境下需要详细设置,很多不能直接使用权限较高的 roo 账户,因此需要设置相关权限,而且基于某些安全策略,也需要设置可读权限可执行权限用户组权限等等。

  • 7 ln 用来为文件创件连接

ln -fs python3 python
ln -fs python3 python

之前安装的是 python2,安装 python3 之后,使用如上命令建立软连接,使用 python3 作为 python 的默认版本。

监控

  • 1.top 命令
    显示系统进程列表信息
top

image.png


  • 2.free 命令
    显示系统使用和空闲的内存情况

 free -m 
free -m

Mem: 1838 500 328 0 1010 1141
Swap: 0 0 0

3.ps 命令
显示当前系统的进程状态

查询关键字包含 Java 的进程

ps  -ef | grep Java
ps -ef | grep Java

root 1792 1 2 Mar12 ? 19:11:05 /usr/local/java/jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat9/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat9 -Dcatalina.home=/usr/local/tomcat9 -Djava.io.tmpdir=/usr/local/tomcat9/temp org.apache.catalina.startup.Bootstrap start root 26294 1 0 Mar15 ? 00:33:32 /usr/local/java/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /data/zookeeper/bin/../build/classes:/data/zookeeper/bin/../build/lib/.jar:/data/zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/data/zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/data/zookeeper/bin/../lib/netty-3.10.6.Final.jar:/data/zookeeper/bin/../lib/log4j-1.2.17.jar:/data/zookeeper/bin/../lib/jline-0.9.94.jar:/data/zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/data/zookeeper/bin/../zookeeper-3.4.13.jar:/data/zookeeper/bin/../src/java/lib/.jar:/data/zookeeper/bin/../conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /data/zookeeper/bin/../conf/zoo.cfg root 28378 16201 0 18:18 pts/0 00:00:00 grep --color=auto Java

又例如

查询内存占用前十的进程

ps -auxf | sort -nr -k 4 | head -10

查询 CPU 占用前十的进程

ps -auxf | sort -nr -k 3 | head -10

文件

  • 1.cp 命令
    将目录下的所有文件拷贝到另外的文件夹

例如:

cp -r dir1/. dir2
  • 2.vi 命令 编辑文件内容

vi /etc/profile
vi /etc/profile

进入后按 i 进入编辑模式,编辑完成后输入冒号,输入 wq 进行保存并退出,或者输入 q!不保存退出。

  • 3.tail 命令 用于输出文件内容

例如:

tail -f error.log

显示该日志文件最新追加的内容,也就是打印实时日志

  • 4.touch 命令
touch test.txt

使用 vi 命令也可以新建文件

  • 5.rm 命令 删除操作不可恢复 慎重

例如:

rm -f myfile
  • 6.sed 命令 能够对文档内容进行编辑 能够配合正则表达式使用

例如:

sed -n
Responses