Linux命令行实战

时间:2024-03-14 20:22:33

title: Linux命令行实战
date: 2018-3-31
tags:
- Linux

翻笔记,这里是一些日常使用到Linux的命令,记录在笔记,并反复看有利于帮助我们熟能生巧,就不需要每次都去网上找命令啦,温顾而知新,记多了发现命令也掌握了,自然而然。
TODO:发现之前的笔记比较零散,没有知识体系模块化,有时间还需要再改进一番!
还有一些内容分散在其他笔记,接下来再慢慢填充~

  1. vim hello.c
    编辑hello.c文件(按i进入编辑模式,按esc :wq!保存退出)

  2. gcc hello.c -o hello
    编译hello.c成系统可读的hello.o文件

  3. ./hello
    执行当前目录下的hello.o文件

  4. mount -v

  5. mount -l

  6. su
    切换用户为root,(切换其他用户:su username)

  7. cd /mnt

  8. mkdir -p /mnt/cdrom

  9. mount -t auto /dev/cdrom mnt/cdrom

  10. which is

  11. ls -a

  12. ls -F

  13. ls -m

  14. ls -r

  15. rpm -qa | grep jdk
    查看JDK信息
    Linux命令行实战

  16. java -version
    查看java版本

  17. yum -y remove java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
    卸载 java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

  18. cp -r jdk-8u121-linux-x64.tar.gz /usr/java
    拷贝当前路径下的文件jdk-8u121-linux-x64.tar.gz到 /usr/java路径下

  19. tar -zxvf jdk-8u121-linux-x64.tar.gz
    解压文件

  20. ln -s /usr/java/jdk1.8.0_121/ /usr/jdk
    创建快捷方式/usr/jdk

  21. source /etc/profile
    加载配置信息

  22. sudo shut down -r now
    关机重启

  23. echo $JAVA_HOME
    读取$JAVA_HOME值

  24. ls -l lib
    查看当前目录下lib文件的文件权限
    Linux命令行实战

  25. rm -rf /usr/java/jdk1.8.0_101
    删除/usr/java/jdk1.8.0_101其下的所有文件

  26. mv /usr/bin/java /usr/bin/java-1.8.0_0
    将 /usr/bin/java 改名为/usr/bin/java-1.8.0_0

  27. In -s $JAVA_HOME/bin/java /usr/bin/java
    将目录$JAVA_HOME/bin下的java文件链接到目录/usr/bin相对应的java文件,其中-s为符号连接(源:文件、目录),不是硬连接(源:文件)

  28. ls -l
    查看当前目录下的文件的所有权限
    Linux命令行实战

  29. chmod 777 TestJNI.java
    更改当前目录下TestJNI.java文件的权限
    r:4,w:2,x:1 => 组合变换(例子:[-rwxr-----]:4+2+1 4 0 => 740)
    [图片上传失败…(image-68fe6c-1587421742034)]

  30. whereis gcc
    查看是否有gcc这个软件,有的话,显示地址
    Linux命令行实战

  31. vi makefile
    编辑makefile文件(按i进入编辑模式,按esc :wq!保存退出)

  32. pwd
    获取当前路径

  33. cd ./java 设置路径为:当前路径下java文件夹的路径

  34. find . -iname aguicode
    在当前目录下查找“aguicode”的文件(-name不忽略大小写)

  35. find .
    查找当前目录下的所有文件

  36. ifconfig
    查看Linux下的IP地址
    Linux命令行实战

  37. rpm -qa |grep yum
    查看是否安装了yum,并含有那些包
    Linux命令行实战

  38. rpm -qa|grep yum|xargs rpm -e -nodeps
    不检查依赖,直接删除yum下的包

  39. ping IP地址
    查询IP地址与本机的连接情况

  40. enco $LD_LIBRARY_PATH
    获取library环境变量

  41. date
    查看当前时间

  42. nm -D libxxxJAVA.so.1.0.0
    显示二进制目标文件(库、可执行)的符号表

  43. ln -s libabc.so.1.0.0 libabc.so
    将当前路径下的libabc.so.1.0.0添加为快捷键 abc.so

  44. tar -xvf mysql-5.7.12-1.el6.x86_64.rpm-bundle.tar
    解压tar后缀的mysql安装包到当前目录

  45. uname -a
    查询Linux版本

  46. tail -f 300 catalina.out (cd $CATALINA_HOME/logs)
    查看tomcat的运行情况

  47. bash /home/xxxCRYPTO/setup.sh
    执行sh脚本

  48. rpm -qa | grep java
    查看是否有java

  49. chmod 777 xxx
    给xxx赋予777权限

  50. rpm xxx.rpm
    解压xxx.rpm
    Linux命令行实战

  51. ps aux | grep java
    查找当前linux环境下java的进程情况

  52. kill -9 24441
    杀掉24441进程
    Linux命令行实战

  53. getconf LONG_BIT
    查看linux的位数

  54. service iptables stop
    关闭防火墙

  55. ps qa| grep java
    查看当前linux环境下java的安装

  56. update-alternatives --config java
    显示已有的java安装

  57. rpm -qa|grep jdk
    查看自带的jdk

  58. rpm -e --nodeps java-1.6.0-openjdk-javadoc-1.6.0.35-1.13.7.1.el6_6.x86_6
    删除自带jdk
    Linux命令行实战

  59. netstat -tunlp
    查看端口与进程
    Linux命令行实战

  60. ps -ef |grep java
    查看java进程有没有被调用
    Linux命令行实战

  61. systemctl stop firewalld、systemctl status firewalld
    关闭防火墙

  62. lsof -i:80
    查看端口为80的进程
    Linux命令行实战

  63. netstat -tunlp
    查看所有端口的使用情况
    Linux命令行实战

  64. netstat -ntp|grep mysql
    查询mysql端口
    Linux命令行实战

  65. firewall-cmd --zone=public --add-port=443/tcp --permanent
    开启443端口

  66. cat /var/log/mysqld.log
    查看mysql当前日志

  67. date -s "20180911 14:53:30"
    修改系统时间

  68. top -d 2 -c -p 5449
    每隔2秒显示pid是5449的进程的资源使用情况,并显式该进程启动的命令行参数间

  69. ps auxw | head -1;ps auxw|sort -rn -k4|head -5
    显示cpu占用资源前5的资源

  70. netstat -n | awk ‘/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}’ 查看系统tcp的连接数

  71. uptime
    查看过去的1分钟、5分钟和15分钟内进程队列中的平均进程数量。(最好小于CPU数)

  72. uname -a
    查看系统内核版本号

  73. uname -r
    查看系统简单的内核版本号

  74. vmstat 2 3
    监控系统CPU状态
    r–运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU
    b–在等待资源的进程数,比如正在等待I/O、或者内存交换等。
    us—用户进程消耗的CPU 时间百分比。
    us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法。
    sy—内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多。
    根据经验,us+sy的参考值为80%,如果us+sy大于 80%说明可能存在CPU资源不足。
    Linux命令行实战

  75. cat /proc/cpuinfo |grep “physical id”|sort|uniq|wc -l
    查看系统物理CPU个数

  76. cat /proc/cpuinfo |grep “cpu cores”|wc -l
    查看系统CPU核数

  77. cat /proc/cpuinfo |grep “processor”|wc -l
    查看系统CPU逻辑个数

  78. iostat -x 1 5
    查看系统IO性能(每一秒显示1次,显示5次)

  79. jmap -heap pid
    查看JVM物理内存的占用情况(堆)

  80. jmap -histo pid
    查看JVM物理内存的详细情况(堆),包括类名、对象,占用大小

  81. jmap -histo 3916 | jmap -histo:live 3916 > jvm.histo.txt
    将正在使用的JVM打印到文本上

  82. docker exec -it mysql_5.7.19 bash
    在docker启动mysql

  83. docker start mysql_5.7.19
    在docker启动mysql

  84. docker ps
    查看docker下正在运行的镜像(需要注意的是CONTAINER ID)

  85. docker exec -it de9fa67527f6 /bash
    进入docker对应的CONTAINER ID镜像

  86. docker stop de9fa67527f6
    关闭docker对应的CONTAINER ID镜像(例如de9fa67527f6代表的是mysql,那么就是关闭mysql)

  87. docker images
    查看挂载在docker的所有镜像
    Linux命令行实战

  88. docker info
    查看docker的详细信息
    Linux命令行实战

  89. lscpi
    查看插口占用的情况
    Linux命令行实战

  90. dmidecode | grep -A16 "System Information$"
    查看主板型号

  91. dmidecode
    查看系统所有的硬件型号