linux相关命令等等

我爱海鲸 2024-06-25 21:56:21 暂无标签

简介一些常用的命令以及一些liunx相关知识、cpu、ssh

 

            linux 操作系统 

 

一.linux 操作系统概述

 

    1.常见操作系统

       - 服务端操作系统 : linux、unix、windows server 

       - 单机操作系统 : windows(dos 、ucdos、win95、win98、win2000、xp、vista、win7、win8)

                         MAC 、linux(ubuntu)

       - 移动操作系统 Android、IOS 、Windows phone

    2.linux操作系统介绍

 

      - 为什么要学习linux操作系统 

        1. 大部分服务端都采用linux ,JEE部署到服务器中

        2. 一些企业和学校采用linux研发和教学 

3. 很多嵌入式开发 用linux  

        4. 云计算、大数据 是集群网  linux : centos 

      - 特点   

        1. 开放、开源、多用户的网络操作系统

2. 基于unix(unix-->minix-->linux(linus :林纳斯 芬兰 )),可以定制内核

3. 假如了GNU组织(自由软件组织 ,copyLeft) ,通过GPL(通用公共许可) 许可对外发布  

      - linux组成

         1. linux内核(linus 团队管理)

2. shell :用户与内核交互的接口

3. 文件系统 : ext3、ext4 等  windows 有 fat32  、ntfs 

4. 第三方应用软件 

 

      - linux操作系统版本   

        1. 内核版本 (linus 团队管理)  3.8

2. 发行版本  :一些软件公司以内核为基础,再添加一些软件和文档形成发行版本

   - red hat  : rhel ,centos

   - debian   : debian,ubuntu(桌面)

   - android  

二.安装linux系统

 

   1. vmware安装 : 创建虚拟机的软件 

      vitual box :oracle 公司提供

 

   2. 虚拟机安装

      - 直接安装

        - 创建虚拟机

- 安装ubuntu镜像

      - 打开虚拟机镜像: 虚拟机+操作系统(ubuntu)

        1. 打开*.vmx 文件

2. 用户名  haijin 密码  123

        

三.linux系统环境  

   默认有6个命令交互通道和一个图形界面交互通道,默认进入到的是图形界面通道

     命令交互模式切换:ctrl+alt+f1---f6

     图形交互界面 ctrl+alt+f7

   

   1.图形界面交互模式

     - terminal: 图形界面的命令终端,它是图形界面交互通道的延伸,要依赖于图形界面

                  

    

   2.命令交互模式 

      命令提示符:

      haijin@ubuntu:~$ 

        - haijin:用户名

- ubuntu :主机名

- ~  :路径 ,假如当前的路径正好是 该用户存放数据的根目录 ,则显示~

- $ :用户的类型  $代表普通用户  #  代表 超级用户

      

   3.linux文件系统 

 

    - 目录结构

    - 文件权限分析

      w :可写   r: 只读  x:可执行  - :无权限

      文件权限

       1. 字符表示法

         drwxr-xr-x

  第一个字符 :文件的类型  d :普通文件  - :文件夹  c :串口文件  l :连接文件

           2-4 字符  : 该文件的属主用户的权限 

   5-7  字符 : 与属主用户同一组的其他用户的权限

   8-10 字符 :  不同组的其他用户的权限

        2. 数字表示法

   -rw-r--r--   :文件的默认权限   644

   drwxr-xr-x   : 目录的默认权限  755  

     

四、linux的常用命令 

 

   1.注销、关机、重启

     - 注销 :logout :登出 、exit 

     - 关机 :

        shutdown - h  时间

  - h :关机

  - 时间 :

    1. now :马上

    2. 12.30 :指定具体时间

    3. 3  :几分钟以后

sudo : superuser do :由超级用户来执行该命令

   要配置sudo 命令 : 授权 哪些用户能执行哪些命令

    由超级用户配置  sudo 

     /etc/sudoers 

   sudo shutdown -h now    当前账号:itcast  

     - 重启 :

        shutdown -r  时间

  -r :restart 

   2.linux基本命令 :文件操作命令

    

     1. ls   : 查看目录内容

        - l :查看详细信息

- a :查看所有文件(隐藏)

        man :manual : 手工,帮助 ,帮助命令,好比windows help 

命令: man ls

     2. mkdir :创建目录 

          Desktop:

    - java

      - JEE : aa.txt  bb.txt  

      - Android

     3. cd  切换目录

        - cd ..  记得要加空格

- cd ./java  进入当前目录的子目录

- cd ../xxx  进入上一级目录的子目录

   tab :自动补全

     4. touch  :创建一个空白的普通文件

        touch aa.txt 

     5. echo  :把内容重定向到指定的文件中 ,有则打开,无则创建

     6. cat、more  :查看文件内容

        - cat :查看文件内容

- more :分页查看文件内容,按空格键换页

     

     7. cp、mv、rm   

        - cp :复制

   cp bj.txt ./java/jee

- mv :剪切、重命名

   1. 剪切 :mv aa.txt ../android/

   2. 重命名 :假如剪切的文件 存放在同一个目录中 ,则是重命名

       mv bb.txt cc.txt

 

- rm :删除文件或者文件夹

  -f : 假如要删除的文件不存在,也不提示

  -i : 删除前提示 ,默认不删除,要删除,输入y

  -d : 删除空白目录 

  -r :递归删除

     8. wc :word count :统计字符数

         154  233 3418 

- 154 :行数

- 233 :单词数

- 3418 :字符数

       命令: wc bj.txt

        

     9. ln :创建连接文件

        - 默认创建的是硬连接,好比复制 ,但是两个文件会同步 

   命令:ln ./java/android/aa.txt  aaa

- s :创建的是软连接

        

     10. pwd   :查看当前目录的绝对路径 

       

     11. 管道命令 |

       命令: ls -la | wc 

     12. 重定向

        - > :覆盖模式

命令:  echo "ww">aaa

- >>:追加模式

命令: echo "ww">>aaa

     13. passwd   :设置密码  ,ubuntu默认 root账号是没有开启 ,只要设置root密码即可开启

         sudo passwd root

 

     14. su  切换目录

         su root 

root用户切换到其他账号不需要密码

 

   3.linux 系统命令

     1.stat   :查看文件的详细信息

       stat bj.txt

     2.who与whoami

       who : 查看在线的用户

       whoami :查看当前自己的用户

     3.hostname : 显示主机名

       hostname

     4.uname  :显示系统信息

        -a :显示完整的系统信息

        

     5.top :显示当前耗时的进行的信息 ,每3秒刷新一次 

         cltr+c 中断 

     6.ps :显示当前进程的快照 

       - axu

     7.du :显示文件的大小信息 

     8.df :磁盘使用情况  disk free

     9.ifconfig :查看或者配置网卡信息 ,好比windows 的ipconfig

        ipv4:32位  2-32次方     ipv6  128位     是 ipv4  2-96次方倍数

设置虚拟机ip地址:

  1. 设置vmware的连接方式

     - 共享宿主机的ip地址,在网上邻居找不到

     - 桥接方式,需要单独设置ip,可以在网上邻居查找

  2. 图形界面设置ip地址 

      edit connection --》ipv4--》manual(手工设置)--》add  (ip地址,子网掩码)

          3.命令方式设置ip地址

     静态设置ip:

     sudo ifconfig eth0 192.168.15.122 netmask 255.255.255.0 

    

     10.ping  测试与目标主机连接情况

        

 

     11.clear  : 清除屏幕  windows: cls  

     12.man  :帮助命令

         man 命令

     13.kill  :杀死进程

        kill  pid 

     14.netstat  :网络连接详细信息

       

     15. useradd 

        - 查看用户信息

   sudo cat /etc/passwd

itcast:x:1000:1000:UbuntuA,,,:/home/itcast:/bin/bash

  - itcast:用户名

  - x :密码 :已经加密 ,密码存放在  /etc/shadow 

  - 1000: 账号id ,userId

  - 1000: 组id ,group id

          - UbuntuA,,,  :账号描述

          - /home/haijin :该账号存放文件的默认位置  ~

  - /bin/bash:该用户的shell脚本的解析方式  ,sh 、bash、rbash

 

        - 创建用户 

  sudo useradd lijun -d  /home/lijun   -s /bin/bash 

   -d :指定该用户的home 路径 

   - s :该用户的shell解析方式

  步骤:

    1. 创建 /home/lijun 目录

    2. 执行 useradd 命令

    3. 用 passwd 设置密码

    4. su 切换用户

 

 

       

 五、打包、压缩文件   

    windows : zip、rar    

    linux :gz ,bzip,zip

 

     1.tar :打包、拆包命令 

        tar - cxzjvf  <打包后的文件>   <欲打包的目录>

  - c :创建的一个归档文件 ,即打包文件夹

  - x :拆包

  - z :以gzip 格式压缩,默认压缩倍数 6倍  (0-9)

  - j :以bzip2格式压缩

  - v :显示打包或者拆包的文件信息

  - f : 后面紧接一个 归档文件

 

       - 打包文件

          tar -cvf news.tar  ./java   摘要  

       - 拆包文件

          tar -xvf news.tar

     2.gzip 、bzip2 压缩与解压

        1. 压缩文件

  gzip news.tar

2. 解压文件

  gzip -d news.tar.gz

    -d :解压

     3.打包及压缩 

       - 打包及压缩

          tar -czvf news.tar.gz ./java

       - 拆包及压解缩

          tar -xzvf  news.tar.gz

 

 六、软件管理 

    windows : .exe     安装 、卸载 

       安装:  mysql.exe  cc.exe   

       卸载 : 该软件唯一的标识  ,包名   alibaba

    android : *.apk   卸载 包名

    red hat :*.rpm 

    ubuntu  : 对debian的升级  *.deb 格式

 

 

     1.安装软件

       - dpkg :debian  package 

          离线安装:

  安装 : sudo dpkg - i  <文件名> 

    -i :install

   命令:sudo dpkg -i ./tree_1.6.0-1_i386.deb

  卸载 : sudo dpkg - r  <包名> 

    -r :remove

           命令:sudo dpkg -r tree

       - apt-get  :advance  package  tools 

         对dpkg命令的升级,在线安装

  安装 : sudo apt-get -install  <包名>

  卸载 : sudo apt-get -remove  <包名>

     2.vim 软件  :好比记事本 ,但是比记事本要强大  

        

1. 安装vim

2. 使用vim 

   操作模式:

     1. 一般模式 ,默认进入的一般模式,该模式不能编辑文档 ,只能查看

        按 i(insert)  进入 插入模式 

     2. 编辑模式、插入模式 

         该模式可以编辑文档,按esc 退出插入模式,进入到一般模式 

     3. 命令模式 :在 一般模式中按:进入命令模式

        - q: 安全退出,当没有操作该文档,则直接按q退出vim 

- q!:当修改了内容,但是不想保存,则q!强制退出

- wq :保存退出

- set number 显示行号

- set nonumber 取消行号显示

       

 

 

 七、搭建Java服务器,并且实现远程安全访问linux系统

    

    1.通过ssh实现安全远程访问linux系统 

       ssh :secure shell

         加密:

   1. 对称加密 (加密密钥与解密密钥相同)

      des 、aes

   2. 非对称加密(加密密钥与解密密钥不同)

      RSA :公钥、私钥 

数字摘要:

   md5 sha1 

    

      

       1. 查看是否安装了ssh服务端与客户端

         sudo apt-cache policy openssh-client openssh-server

       2. 安装ssh 服务端与客户端软件

          sudo dpkg -i ./ssh/*

           

       3. 通过windows ssh客户端来访问linux服务端

          - putty :远程登录

  - winscp433setup.exe :文件传输

 

    2. 安装jdk

       进入 root用户

       实现步骤:

        1. jdk 存放在哪里  /opt

2. 把软件拷贝到/opt

3. 绿色软件,解压 

4.设置环境变量

   vim /etc/profile 

export JAVA_HOME="/opt/jdk1.6.0_39"

        export PATH="$JAVA_HOME/bin:$PATH"

5. 刷新配置 ,让配置生效

   source /etc/profile

6. 编写Demo.java,测试 

   -javac Demo.java

           - java Demo

 

    3. 安装tomcat 

       步骤:

        1. 安装在哪里 /opt

2. 拷贝、解压

   tar -xzvf  apache-tomcat.tar.gz

3. 运行

   - ./startup.sh

   - ./shutdown.sh

       

      

    4. 安装Eclipse

       步骤:

         1.安装在/opt

2. 拷贝、解压

   cp eclipse.tar.gz  /opt

   tar -xzvf  eclipse.tar.gz

  

重点:

  1.linux系统环境

     命令交互通道

     命名提示符

  2. linux 目录结构、文件权限

    drwxr-xr-x

  3. linux 命令

    - 开关机

    - 文件操作 

    - 系统命令

       1. top 2. who 3. ifconfig 4. ping 5. kill 6. man 7.clear 8.netstat

  4. 软件管理

     - dpkg :离线  .deb  .rpm  .apk 

     - apt-get :在线 

  5. 压缩解压

     tar -cxgzvf 打包后的文件 要打包的文件

  6. vim 的使用

     三种模式

  7. ssh理解 secure shell

  8. java开发环境搭建

2023-01-09 start

 如何在 Windows 和 Linux 上查找哪个线程cpu利用率最高?

windows上面用任务管理器看,linux下可以用 top 这个工具看。

找出cpu耗用厉害的进程pid, 终端执行top命令,然后按下shift+p (shift+m是找出消耗内存
最高)查找出cpu利用最厉害的pid号

根据上面第一步拿到的pid号,top -H -p pid 。然后按下shift+p,查找出cpu利用率最厉害的
线程号,比如top -H -p 1328

将获取到的线程号转换成16进制,去百度转换一下就行
使用jstack工具将进程信息打印输出,jstack pid号 > /tmp/t.dat,比如jstack 31365 >
/tmp/t.dat

编辑/tmp/t.dat文件,查找线程号对应的信息
或者直接使用JDK自带的工具查看“jconsole” 、“visualVm”,这都是JDK自带的,可以直接在JDK的bin目录
下找到直接使用

end

2023-04-03 start:

1. 使用 top 命令查看当前 CPU 使用率:

打开终端,输入 top 命令,可以看到当前 CPU 的使用率和哪个进程占用的 CPU 比较高。

```
$ top
```

2. 使用 jstack 工具查看 Java 进程的线程状态:

在终端输入以下命令,查看 Java 进程的线程状态:

```
$ jstack <pid>
```

其中 `<pid>` 是 Java 进程的进程号。 jstack 命令会输出 Java 进程内的所有线程信息,包括线程的状态、哪些方法当前正在执行等。

3. 使用 jstat 查看 JVM 的状态:

在终端输入以下命令,查看 JVM 的状态:

```
$ jstat -gc <pid> <interval> <count>
```

其中 `<pid>` 是 Java 进程的进程号,`<interval>` 是输出间隔时间(单位为毫秒),`<count>` 是输出次数。 jstat 命令会输出 JVM 的状态,包括内存使用情况、垃圾回收情况等。

4. 使用 jmap 命令查看 Java 进程的内存状况:

在终端输入以下命令,查看 Java 进程的内存状况:

```
$ jmap -histo <pid>
```

其中 `<pid>` 是 Java 进程的进程号。 jmap 命令会输出 Java 进程当前的内存使用情况。

5. 使用 jconsole 工具查看 Java 进程的运行状况:

jconsole 是一款 Java 监控和管理工具,可以通过图形界面以更直观的方式查看 Java 进程的运行状况。在终端输入以下命令启动 jconsole 工具:

```
$ jconsole
```

在打开的 jconsole 窗口中,选择目标 Java 进程,可以查看其运行状态、线程状态、内存使用情况等。 ♨

end

2023-08-25 start

之前一直用finallshell  但是吃内存太严重了,所以现在换成了下面这个

WindTerm ssh工具:

https://link.zhihu.com/?target=https%3A//github.com/kingToolbox/WindTerm/releases

 end

  2024-06-25 start:

基本命令

cd change directory:英文释义是改变目录)切换目录

pwd print working directory:显示当前工作目录的绝对路径)

ls lslist的缩写,查看列表)查看当前目录下的所有文件夹(ls 只列出文件名或目录名)

ll lllist的缩写,查看列表详情)查看当前目录下的所有详细信息和文件夹(ll 结果是详细,有时间,

是否可读写等信息)

touch touch:创建文件)创建文件

mkdir mkdir:创建目录) 创建目录

cat concatenate:显示或把多个文本文件连接起来)查看文件命令(可以快捷查看当前文件的内

容)(不能快速定位到最后一页)

more more:更多的意思)分页查看文件命令(不能快速定位到最后一页)

cd ../ ;跳到上级目录

cd /opt ;不管现在到那直接跳到指定的opt文件夹中

cd ~ ;切换当前用户的家目录。root用户的家目录就是root目录。

pwd

显示当前的绝对路劲

ls -a ;显示所有文件夹,隐藏文件也显示出来

ls -R ;连同子目录一起列出来

ll -a ;显示所有文件,隐藏文件也显示出来

ll -R ;连同子目录内容一起列出来

ll -h ;友好展示详情信息,可以看大小

ll -al ;即能显示隐藏文件又能显示详细列表。

touch test.txt ;创建test.txt文件

touch /opt/java/test.java ;在指定目录创建test.java文件

mkdir 文件夹名称 ;在此目录创建文件夹

mkdir /opt/java/jdk ;在指定目录创建文件夹

cat lj.log ;快捷查看文件命令

Ctrl + c ;暂停显示文件

Ctrl + d ;退出查看文件命令less lese:较少的意思)分页查看文件命令(可以快速定位到最后一页)

tail(尾巴) 查看文件命令(看最后多少行)

cpcopy单词缩写,复制功能)

mvmove单词缩写,移动功能,该文件名称功能)

rmremove:移除的意思)删除文件,或文件夹

find find:找到的意思)查找指定文件或目录

回车:向下n行,需要定义,默认为1行。

空格键:向下滚动一屏或Ctrl+F

B:返回上一层或Ctrl+B

q:退出more

less -m 显示类似于more命令的百分比。

less -N 显示每行的行号。(大写的N)

两参数一起使用如:less -mN 文件名,如此可分页并显示行号。

空格键:前下一页或page down。

回车:向下一行。

b:后退一页 或 page up。

q:退出。

d:前进半页。

u:后退半页

tail -10 ;文件名 看最后10行

cp /opt/java/java.log /opt/logs/ ;把java.log 复制到/opt/logs/下

cp /opt/java/java.log /opt/logs/aaa.log ;把java.log 复制到/opt/logs/下并且改名为

aaa.log

cp -r /opt/java /opt/logs ;把文件夹及内容复制到logs文件中

mv /opt/java/java.log /opt/mysql/ ;移动文件到mysql目录下

mv java.log mysql.log ;把java.log改名为mysql.log

-f或--force 强制删除文件或目录。删除文件不包括文件夹的文件

-r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并删除。

-rf 强制删除文件夹及内容

rm 文件名 ;安全删除命令 (yes删除 no取消)

rm -rf 强制删除文件夹及内容

rm -rf * 删除当前目录下的所有内容。

rm -rf /* 删除Linux系统根目录下所有的内容。系统将完蛋。vi VIsual:视觉)文本编辑器 类似win的记事本 (操作类似于地下的vim命令,看底下vim 的操

作)

vim VI IMproved:改进版视觉)改进版文本编辑器 (不管是文件查看还是文件编辑 按 Shift + 上或

者下可以上下移动查看视角)

| 管道命令(把多个命令组合起来使用)

* 表示0~多个任意字符。

find -name 文件名;按照指定名称查找在当前目录下查找文件

find / -name 文件名按照指定名称全局查找文件

find -name '*文件名' ;任意前缀加上文件名在当前目录下查找文件

find / -name '*文件名*' ;全局进行模糊查询带文件名的文件

输入”vim 文件名” 打开文件,刚刚时是”一般模式”。

一般模式:可以浏览文件内容,可以进行文本快捷操作。如单行复制,多行复制,单行删除,多行删除,(退

出)等。

插入模式:可以编辑文件内容。

底行模式:可以进行强制退出操作,不保存 :q!

可以进行保存并退出操作 :wq

按下”i”或”a”或”o”键,从”一般模式”,进入”插入模式(编辑模式)”。

在编辑模式下按”Esc” 即可到一般模式

在一般模式下按”:”,冒号进入底行模式。

在一般模式下的快捷键

dd ;删除一整行

X ;向前删除 等同于windowns系统中的删除键

x ;向后删除和大写x相反方向

Ctrl + f ;向后看一页

Ctrl + b ;向前看一页

u ;撤销上一步操作

/word ;向下查找word关键字 输入:n查找下一个,N查找上一个(不管是哪个查找都是全局查找 只不过

n的方向相反)

?log ;向上查找log关键字 输入:n查找上一个,N查找下一个

:1,90s/redis/Redis/g ;把1-90行的redis替换为Redis。语法n1,n2s/原关键字/新关键字/g,n1

代表其实行,n2代表结尾行,g是必须要的

:0 ;光标移动到第一行

:$ ;光标移动到最后一行

:300 ;光标移动到300行,输入多少数字移动到多少行

:w ;保存

:w! ;强制保存

:q ;退出

:q! ;强制退出

5dd ;删除后面5行,打一个参数为自己填写

5x ;删除此光标后面5个字符

d1G ;删除此光标之前的所有

d0 ;从光标当前位置删除到此行的第一个位置

yy ;复制

p ;在光标的下面进行粘贴

P ;在光标的上门进行粘贴grep grep :正则表达式)正则表达式,用于字符串的搜索工作(模糊查询)。不懂可以先过

yum install -y lrzsz 命令(实现winLinux文件互相简单上传文件)

tar (解压 压缩 命令)

ps process status:进程状态,类似于windows的任务管理器)

管道命令的语法:命令1 | 命令2 | 命令3。

单独使用:

grep String test.java ;在test.java文件中查找String的位置,返回整行

一般此命令不会单独使用下面列几个常用的命令(地下通过管道命令组合起来使用)

ps aux|grep java ;查找带java关键字的进程

ll |grep java ;查找带java关键字的文件夹及文件

#(实际上就是在Linux系统中下载了一个插件)下了了此安装包后就可以实现win系统到linux之间拉文件拉

文件

#等待下载完了就可以输入:

rz 从win系统中选择文件上传到Linux系统中

sz 文件名 选择Linux系统的文件复制到win系统中

常用的组合命令:

-z 是否需要用gzip压缩。

-c 建立一个压缩文件的参数指令(create) –压缩

-x 解开一个压缩文件的参数指令(extract) –解压

-v 压缩的过程中显示文件(verbose)

-f 使用档名,在f之后要立即接档中(file)

常用解压参数组合:zxvf

常用压缩参数组合:zcvf

解压命令:

tar -zxvf redis-3.2.8.tar.gz ;解压到当前文件夹

tar -zxvf redis-3.2.8.tar.gz -C /opt/java/ ;解压到指定目录

压缩命令:(注意 语法有点反了,我反正每次都搞反)

tar -zcvf redis-3.2.8.tar.gz redis-3.2.8/ ;语法 tar -zcvf 压缩后的名称 要压缩的

文件

tar -zcvf 压缩后的文件(可指定目录) 要压缩的文件(可指定目录)

常用组合:ps -ef 标准的格式查看系统进程

ps -aux BSD格式查看系统进程

ps -aux|grep redis BSD格式查看进程名称带有redis的系统进程(常用技巧)

//显示进程的一些属性,需要了解(ps aux)

USER //用户名

PID //进程ID号,用来杀死进程的

%CPU //进程占用的CPU的百分比

%MEM //占用内存的的百分比clear 清屏命令。(强迫症患者使用)

ifconfig命令

ping (用于检测与目标的连通性)语法:ping ip地址

free 命令 (显示系统内存)

top 命令

netstat 命令

VSZ //该进程使用的虚拟內存量(KB)

RSS //该进程占用的固定內存量(KB)

STAT //进程的状态

START //该进程被触发启动时间

TIME //该进程实际使用CPU运行的时间

kill 命令用来中止一个进程。(要配合ps命令使用,配合pid关闭进程)

(ps类似于打开任务管理器,kill类似于关闭进程)

kill -5 进程的PID ;推荐,和平关闭进程

kill -9 PID ;不推荐,强制杀死进程

用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。(一般是

用来查看的,很少更改)

如果此命令输入无效,先输入yum -y install net-tools

ifconfig

测试:

1、在Windows操作系统中

end

 

 

 

 

 

 

 

你好:我的2025