Linux的常用命令大全(关联测试、Java后端开发、运维)

时间:2024-11-12 13:17:01

目录

一、Linux的简单介绍

1,Linux简介

2,Linux 构成

3,Linux 特性

二、在虚拟机上安装Linux系统

1,安装,挂载

2,用户界面

 3,终端

三、Linux常用命令

1,文件查找命令

2,打包压缩类命令

3,Linux进程管理

4,服务管理

5,Linux 用户管理  

6,软件安装 

7,Linux的其它命令


一、Linux的简单介绍

1,Linux简介:

Linux 是一种类Unix的操作系统。  类 类似 like 

GNU  GNU IS NOT UNIX  *软件计划 

GPL 通用公共许可协议   *软件  免费 开源

Linux  内核 (kernel)  诞生于1991年  作者  Linus Torvalds ,遵循GPL ,*软件。   

2,Linux 构成:  

          内核 kernel  +   shell 壳程序  +   实用管理工具 

        内核: 系统调度、进程控制、设备驱动、内存管理、文件管理...
        shell:  壳程序、用户界面、命令解释器、翻译官的角色。  Linux默认使用的bash 

3,Linux 特性:

        *软件 
        多用户
        可移植性
        ...

    主要应用场景:   作为服务器操作系统  

发行版: 基于Linux内核,加上系统管理等相关软件组合在一起构成的一个完成操作系统。 不同组织不同的企业发布的版本名称不一样。
    
    常见的Linux发行版: RedHat Suse Unbuntu Debian RedFlag CentOS ...

GUI  图形用户界面 , X-Window 
桌面  KDE  GNOME 

-------------------------------------------------------------


二、在虚拟机上安装Linux系统

    

1,安装,挂载

rhel5.4  RedHat Enterprise Linux 5.4  

    操作系统的光盘镜像:  rhel-server-5.

    计算机主板上CMOS BIOS  boot 


    硬盘:  sda sdb sdc 
    分区:  sda1 sda2 sda3 ....   sdc5
 
     挂载点:  文件系统上的目录 

     挂载:  将磁盘分区映射到文件系统目录上  

         mount /dev/sdb5 /home
         将第二块硬盘第5个分区 映射到  /home 目录       

     分区: 将硬盘划分多个区域
     Linux上至少有需要两个分区                                    文件系统      
                             根分区        挂载到/目录的分区      ext2/3/4  
                             交换分区                                swap                  

     文件系统:   磁盘分区上管理文件的规则和协议
     window:  FAT FAT32 NTFS 
     linux: ext2/3/4 xfs  swap 

     格式化:     向磁盘分区写入文件系统 


     根账号 root 
     密码: 123456 


2,用户界面:

        GUI图形界面:   
        CLI字符界面:  
            切换方式:  Ctrl+Alt+Fn (F1~F6)     Alt+Fn  Alt+F7 

 3,终端:

            虚拟终端:: /dev/tty1~tty6
             伪终端:     /dev/pts/1~pts/n  

        多用户系统

    备份、恢复  
 

-----------------------------------------------------------------------------------
 

三、Linux常用命令


1,文件查找命令


    可执行文件的查找
        which 
        whereis  


find  [查找范围] [查找条件]  查找所有文件  (在文件系统中遍历)
    查找范围 一个特定的目录 
    查找条件:
             -name  文件名
             -iname 文件名不区分大小写
             -size  文件尺寸  k M G  +n 大于 -n 小于  n 等于
             -user  文件的属主
             -group 文件的属组
             -perm  文件的权限,用数字来表示文件权限
             -type  文件的类型 c b d f l ... 
             -atime,amin  文件的访问时间 time 天  min 分
             -ctime,cmin  文件的修改时间
             ...

             条件组合:
                 逻辑操作:  与 -a    或 -o     非 not ,! 
             对找到的结果进行处理:
                 使用 {} 作为位置符号代表find找到的文件
                 -exec  ... \;   直接执行命令
                 -ok    ... \;   提示执行命令

locate 文件名,查找跟文件名相似的所有文件 
        从索引数据库去查找 /var/lib/mlocate/ 数据库每天仅更新一次 
        updatedb 手动更新

grep 从文件(文本文件)内容中检索字符串,把包含该字符串的行显示出来
    grep 关键字 文件名 
    -v  反显  
    -i  忽略大小写
    '^...'  以什么开头
    '...$'  以什么结尾
    '^$'  表示空行

du disk 文件  统计文件所占磁盘空间的大小
    du -sh  ...  

2,打包压缩类命令

    压缩:  将大的文件使用某种算法变成小的文件  
          *.rar *.zip *.z *.7z  ... 

        zip  
            zip *.zip 目标文件
        gzip  
            gzip 目标文件  --> *.gz 
        bzip2 
            bzip2 目标文件 --> *.bz2 

    解压:  将压缩文件还原成原始文件

        unzip *.zip 
        gunzip *.gz 
        bunzip2 *.bz2 

    打包:  将多个文件变成一个文件 

        tar   
            -c 打包 
            -x 解包
            -t 查看包的内容 
            
               -v 显示打包的过程信息
            -f 设置包名 *.tar 

            -z gzip 
            -j bzip2 

        tar -cvf *.tar 目标文件 

    解包:

        tar -xvf *.tar 

    查包: 

        tar -tvf *.tar 

    打包压缩 

        tar -czvf *.  目标文件
        tar -cjvf *.tar.bz2 目标文件

    解包解压缩
        tar -xzvf *. 
        tar -xjvf *.tar.bz2  

    *. = *.tgz 

    -C 指定tar解包的路径  

write 用户名 ,向本机的其他用户发送消息,Ctrl + C 结束  

ping ip地址或主机名  测试网络连通性 , 网络层 ICMP协议

ifconfig 显示网络配置信息 ip address 
    
    网卡配置文件:  /etc/sysconfig/network-scripts/ifcfg-eth0
    重启网络服务:      service network restart

shutdown -h now 立刻关机
    shutdown -h 10 在10分钟之后关机 
    shutdown -c 取消当前的关机进程

reboot 重启 

shell应用技巧
    命令补齐    tab键 
    命令历史:  history  方向键 ↑和↓ 选择历史命令, 或者是  !编号 
    命令别名 alias :
        alias cls=clear ; unalias cls ; alias
    输入输出重定向
         输出重定向
             >   覆盖
             >>  追加

             1>  标准输出重定向
             2>  错误输出重定向

         输入重定向 
              < 

    管道
    命令连接符
    命令替换符
 

-------------------------------------------------------------------------------------


3,Linux进程管理


    进程: 动态,程序运行的时候在内存中的映射;  
    程序: 静态,以文件的方式保存在磁盘上。

进程分为
    父进程
    子进程

    前台进程:  普通的程序直接在前台shell之上运行
    后台进程:  在命令后加入'&'即可  非交互式程序

    jobs: 查看后台运行的进程
        任务(工作)编号        状态     进程名 
    jobs -l 
        任务(工作)编号     进程编号pid      状态     进程名

    Ctrl+z 暂停当前进程到后台
    Ctrl+c 强制结束前台运行的进程 

    fg 工作编号  让此进程在前台运行  
    bg 工作编号  让此后台进程在后台运行 Stopped --> Running 

    ps aux 查看进程信息 (静态) 
    ps -elf 查看所有进程信息 (ppid父进程编号) 

    top    查看进程信息 (动态) 

    pstree 显示进程树
        -u 进程的用户信息
        -p 进程的pid  

    kill -9 pid  结束掉某个进程  

    killall -9 进程名
    pkill -9 进程名 
        w  查看所有登陆的用户信息 
        pkill -9 -t tty2   将登陆到tty2终端的用户踢下线  


Linux系统开机运行的第一个进程 
    init 
    /sbin/init   
    配置文件:   /etc/inittab

    Linux 运行级别

        # Default runlevel. The runlevels used by RHS are:
        #   0 - halt (Do NOT set initdefault to this)                                        关机
        #   1 - Single user mode                                                            单用户模式
        #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)        多用户模式不支持NFS
        #   3 - Full multiuser mode                                                            完全的多用户模式(字符界面)标准
        #   4 - unused                                                                        保留(未使用)
        #   5 - X11                                                                            图形界面 标准
        #   6 - reboot (Do NOT set initdefault to this)                                        重启 

        id:5:initdefault:

    可以通过修改配置文件 /etc/inittab 设置系统的运行级别
    还可以通过命令的方式设置:
        init 运行级别编号

    关机命令 
        init 0 
    重启命令 
        init 6 

    查看运行级别:
        runlevel
        who -r 
-------------------------------------------------------------------------------------------------

4,服务管理


服务:以后台守护进程方式运行的程序
        Deamon  

    sshd  远程登录的服务端 

    查看和改变服务的启动状态  
        chkconfig --list  查看服务的启动状态
        chkconfig --level 运行级别编号  服务名称 on|off  (下次启动时生效)


    服务的管理 (立即生效)
            service 服务名 status | stop | start | restart 
                            状态     停止    启动     重启 


    service sshd status 


apache web服务器   httpd 

查看本机的所有网络连接
    netstat -na  
    netstat -tunl  查看监听的端口

查看本机的所有磁盘及分区
    fdisk -l  

shell脚本 
    vim  
            

        #!/bin/bash
        echo 'Hello world!'
        pwd
        date
        for file in `ls /etc`; do
                echo "the file is ${file}"
        done

安装CentOS7版本 最小安装 Mini  
    yum方式去安装你需要的任何软件 
    ip addr  可以获取ip地址  

rhel5     init 管理系统启动
                            service 服务名 status | stop | start | restart 
centos7     systemd 
                            systemctl status|stop|start|restart 服务名 

                            systemctl stop firewalld  停止防火墙 
                            

-------------------------------------------------------------------------------------- 

   
5,Linux 用户管理  


    完全多任务多用户的操作系统

    用户信息配置文件
        /etc/passwd 
            root     根用户   uid 0
            bin...  伪用户   uid 1~499
            student 普通用户 uid 500 

        用户名:密码占位符:用户编号uid:组编号gid:用户描述信息:用户家目录:用户的shell

    用户密码配置文件
        /etc/shadow  

    用户组配置文件
        /etc/group 
        /etc/gshoadow 组密码文件 
        组名:组密码:组编号GID:组的成员用户

    添加用户
        useradd [-选项] 用户名
            -u uid
            -g gid 
            -d 家目录 
            -s 设置shell
            -c 描述信息
            -e 指定失效时间

    用户管理类命令:
        id 
        finger
        su switch user 切换用户 
            su - 用户名 # 载入该用户的环境变量 
        sudo 表示命令以root用户身份运行 
        who 查看当前系统登录的所有用户
        w   查看当前系统登录的所有用户 

    修改用户密码
        passwd 用户名  
        passwd -S 用户名 查看密码状态
    
    修改用户  
        usermod [-选项] 用户名 
        ... 

    删除用户
        userdel -r 用户名  删除用户(删除用户的家目录)

-----------------------------------------------------------------------------------


6,软件安装 

    源代码软件包
    二进制软件包
                RPM软件包: 红帽子公司的软件包的管理方式   *.rpm  ,大部分Linux发行版都是采用RPM方式管理软件包。

    挂载:  将存储设备映射到目录 

    /dev/sda3          /usr 
    /dev/cdrom         /mnt/cdrom 

    mount 设备文件名 目录  

    挂载光盘:
        mount /dev/cdrom /mnt/cdrom 

    卸载光盘:
        umount /dev/cdrom 
        umount /mnt/cdrom 

    查看磁盘及挂载情况 
        df -h  


查询rpm软件包  

        rpm -q  软件名     查看指定软件是否安装
        rpm -qa         查看本机已经安装的所有软件
        rpm -qi 软件名      查看软件的详细信息
        rpm -ql 软件名   查看软件的所有文件的列表
        rpm -qf 文件名   查看文件所属的软件包名 

安装rpm软件包
        rpm -ivh *.rpm 

        去掉警告
        rpm --import /etc/pki/rpm-gpg/R*

卸载rpm软件 
        rpm -e 软件名   

痛点:rpm包之间的依赖关系

    vim-enhanced软件包依赖vim-common软件包 

-------------------------------------------------------------------------------------

7,Linux的其它命令

systemctl stop firewalld  停止防火墙 
systemctl status|stop|start|restart 服务名 Centos里面的状态/关闭/启动/重启服务
service 服务名 status | stop | start | restart    Redhad的状态/关闭/启动/重启服务
service iptables stop 停止防火墙
ip addr/address  获取IP地址
ifconfig  获取IP地址(需安装net-tools.x86_64工具包)
fdisk -l 查看本机所有磁盘及分区
netstat -na  查看本机的所有网络连接
netstat -tunl  查看监听的端口
kill -9 pid  结束掉某个进程
ps aux 查看进程信息 (静态)
top    查看进程信息 (动态)
ssh ip地址    远程连接服务器
Ctrl+z 暂停当前进程到后台
Ctrl+c 强制结束前台运行的进程 
jobs: 查看后台运行的进程(自己启动了哪个服务就有哪个服务)
jobs -l :查看后台运行的进程外加进程编号pid

yum list  package      --- rpm -qa   
yum list | grep install
yum install package    --- rpm -ivh 
yum search 命令  查看命令所在软件包,一般人容易记住命令忘记包名
yum info package  查询软件的详细信息
yum remove  package   --- rpm -e 
yum update package
yum repolist  查看yum源列表。。
(注:CentOS和RedHat支持yum,而Ubuntu不支持yum,只能用apt)

make 编译
make install 运行
df -h 查看光盘情况
eject -d 查看光盘物理地址(我们的显示为cdrom)
mount /dev/cdrom /mnt/cdrom 设备挂载命令
dd if=/dev/cdrom of=./ 制作光盘镜像
alias cls=clear;unalias cls 取别名和删除别名
wc(word count的缩写) -l行数 -w单词数 -c字符数
wget 下载文件
查询rpm软件包
        rpm -q  软件名     查看指定软件是否安装
        rpm -qa         查看本机已经安装的所有软件
        rpm -qi 软件名      查看软件的详细信息
        rpm -ql 软件名   查看软件的所有文件的列表
        rpm -qf 文件名   查看文件所属的软件包名 

rpm -ivh *.rpm 安装rpm软件包
rpm -e package 卸载rpm软件
注:无法解决rpm包之间的依赖关系
which 从path下查询可执行命令
whereis    从文件索引数据库下查询,可查命令地址及帮助文档
locate 数据库索引,使用的是绝对路径,可使用部分匹配
find 遍历磁盘(可指定路径),如果不指定路径,则效率很低
updatedb 手动更新数据库

grep 从文件(文本文件)内容中检索字符串,把包含该字符串的行显示出来
    grep 关键字 文件名 
    -v  反显  
    -i  忽略大小写
    '^...'  以什么开头
    '...$'  以什么结尾
    '^$'  表示空行

find  [查找范围] [查找条件]  查找所有文件  (在文件系统中遍历)
    查找范围 一个特定的目录 
    查找条件:
             -name  文件名
             -iname 文件名不区分大小写
             -size  文件尺寸  k M G  +n 大于 -n 小于  n 等于
             -user  文件的属主
             -group 文件的属组
             -perm  文件的权限,用数字来表示文件权限
             -type  文件的类型 c b d f l ... 
             -atime,amin  文件的访问时间 time 天  min 分
             -ctime,cmin  文件的修改时间
             ...

             条件组合:
                 逻辑操作:  与 -a    或 -o     非 not ,! 
             对找到的结果进行处理:
                 使用 {} 作为位置符号代表find找到的文件
                 -exec  ... \;   直接执行命令
                 -ok    ... \;   提示执行命令

du disk 文件  统计文件所占磁盘空间大小
du -sh 文件夹   统计文件夹总共占用磁盘空间大小

zip *.zip 目标文件 -->*.zip
gzip 目标文件  --> *.gz 
bzip2 目标文件 --> *.bz2 

unzip *.zip zip还原
gunzip *.gz gz还原
bunzip2 *.bz2 bz2还原

tar -czvf *.  目标文件  打包压缩
tar -cjvf *.tar.bz2 目标文件      打包压缩

tar -xzvf *.   解包解压缩
tar -xjvf *.tar.bz2  解包解压缩

注:*. = *.tgz 

ifconfig 显示网络配置(需先下载net-tools包)
ip addr/address  显示网卡配置

ifdown ens32  关闭ens32网卡
ifup ens32  启动ens32网卡
free 查看空闲内存
top 动态整体查看资源情况
sar CPU资源消耗
vmstat 内存相关消耗
iostat 磁盘相关消耗
netstat 网络使用情况
ps aux 和top相反,静态整体查看资源情况