zoukankan      html  css  js  c++  java
  • 常用linux命令,开发必备-速收藏

    在前面我们介绍了通过VirtualBox安装Linux的方法,参考:

    一网打尽,一文讲通虚拟机VirtualBox及Linux使用

    本文我们将介绍在使用linux的过程中常用的一些Linux命令,掌握这些常用命令,对操作linux是非常的有帮助,本文基于CentOS7.6。

    linux版本

    常见执行Linux命令的格式是这样的: 命令名称 [命令参数] [命令对象]

    注意,命令名称、命令参数、命令对象之间请用空格键分隔。

    命令对象一般是指要处理的文件、目录、用户等资源,而命令参数可以用长格式(完整的选项名称),

    也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀

    linux内核

    目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

    已知linux

    1、系统服务管理

    1.1、systemctl

    Linux 服务管理两种方式service和systemctl

    systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl,systemctl命令兼容了service。

    systemctl 提供了一组子命令来管理单个的 unit,其命令格式为:

    systemctl [command] [unit]

    command 主要有:

    start:立刻启动后面接的 unit。

    stop:立刻关闭后面接的 unit。

    restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。

    reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。

    enable:设置下次开机时,后面接的 unit 会被启动。

    disable:设置下次开机时,后面接的 unit 不会被启动。

    status:目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。

    is-active:目前有没有正在运行中。

    is-enable:开机时有没有默认要启用这个 unit。

    kill :不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。

    show:列出 unit 的配置。

    mask:注销 unit,注销后你就无法启动这个 unit 了。

    unmask:取消对 unit 的注销。

    • 输出系统中各个服务的状态:
    systemctl list-units --type=service
    

    输出系统中各个服务的状态

    • 查看服务的运行状态:
    systemctl status firewalld
    

    查看服务的运行状态

    • 关闭服务:
    systemctl stop firewalld
    

    关闭服务

    • 启动服务:
    systemctl start firewalld
    

    启动服务

    • 重新启动服务(不管当前服务是启动还是关闭):
    systemctl restart firewalld
    
    • 重新载入配置信息而不中断服务:
    systemctl reload firewalld
    
    • 禁止服务开机自启动:
    systemctl disable firewalld
    

    禁止服务开机自启动

    • 设置服务开机自启动:
    systemctl enable firewalld
    

    设置服务开机自启动

    2、文件管理

    2.1、ls

    Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

    linux目录结构

    在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

    /etc: 这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

    /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

    值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

    /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

    语法:ls [-alrtAFR] [name...]
    
    • -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
    • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
    • -r 将文件以相反次序显示(原定依英文字母次序)
    • -t 将文件依建立时间之先后次序列出
    • -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
    • -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
    • -R 若目录下有文件,则以下之文件亦皆依序列出
    ls -l /
    

    显示指定工作目录下之内容

    2.2、pwd

    pwd(英文全拼:print work directory) 命令用于显示工作目录。

    执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。

    显示工作目录

    2.3、cd

    cd(英文全拼:change directory)命令用于切换当前工作目录。

    cd [dirName]
    

    其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

    另外,~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, .. 则表示目前目录位置的上一层目录。

    cd /usr/local
    

    切换当前工作目录

    查看当前目录

    2.4、date

    date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记。

    date '+%Y-%m-%d %H:%M:%S'
    

    显示或设定系统的日期与时间

    2.5、passwd

    用于设置用户密码:

    语法:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
    

    必要参数

    • -d 删除密码

    • -f 强迫用户下次登录时必须修改口令

    • -w 口令要到期提前警告的天数

    • -k 更新只能发送在过期之后

    • -l 停止账号使用

    • -S 显示密码信息

    • -u 启用已被停止的账户

    • -x 指定口令最长存活期

    • -g 修改群组密码

    • 指定口令最短存活期

    • -i 口令过期后多少天停用账户

      设置用户密码命令帮助

    passwd yonghu
    

    设置用户密码

    2.6、su

    su(英文全拼:swith user)命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。改变用户身份(切换到超级用户)

    语法:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
    
    事例:su -
    

    2.7、clear

    用于清除屏幕信息

    2.8、man

    显示指定命令的帮助信息:

    man ls
    

    显示指定命令的帮助信息

    2.9、who

    who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。

    • 查询系统处于什么运行级别:
    who -r
    

    查询系统处于什么运行级别

    • 显示目前登录到系统的用户:
    who -buT
    

    显示目前登录到系统的用户

    2.10、free

    显示系统内存状态(单位MB),会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

    语法:free [-bkmotV][-s <间隔秒数>]
    
    事例:free -m
    

    显示系统内存状态

    2.11、ps

    ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

    显示系统进程运行动态:

    ps -ef
    

    查看sshd进程的运行动态:

    ps -ef | grep sshd
    

    查看sshd进程的运行动态

    2.12、top

    查看即时活跃的进程,top命令是Linux下常用的性能分析工具,能够实时显示Linux系统中各个进程的资源占用状况,类似于Windows系统的任务管理器功能。

    top命令的语法格式:

    top [-] [d] [p] [q] [c] [C] [S] [s] [n]

    常用参数说明

    d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。

    p 通过指定监控进程ID,仅仅监控某个进程的状态。

    q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。

    S 指定累计模式

    s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。

    i 使top不显示任何闲置或者僵死进程。

    c 显示整个命令行而不只是显示命令名

    查看即时活跃的进程

    2.13、mkdir

    mkdir(英文全拼:make directory)命令用于创建目录。

    语法:mkdir [-p] dirName
    

    创建目录

    2.14、more

    more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

    如:用于文件过长时分页查看文件内容 每页10行查看core50test.out.log文件

    more -c -10 /root/app_data/data/logs/core50test/core50test.out.log
    

    more

    2.15、cat

    查看Linux启动日志文件,并标明行号:

    cat -Ab /var/log/boot.log
    

    查看Linux启动日志文件

    2.16、touch

    创建text.txt文件:

    touch text.txt
    

    创建text.txt文件

    2.17、rm

    rm(英文全拼:remove)命令用于删除一个文件或者目录。

    语法

    rm [options] name...
    

    参数

    • -i 删除前逐一询问确认。

    • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。

    • -r 将目录及以下之档案亦逐一删除。

    事例:

    • 删除文件:
    rm text.txt
    

    删除一个文件

    • 强制删除某个目录及其子目录:
    rm -rf testdir/
    

    img强制删除某个目录及其子目录

    2.18、cp

    将test1目录复制到test2目录

    cp -r /mydata/test1 /mydata/test2
    

    2.19、mv

    移动或覆盖文件:

    mv text.txt text2.txt
    

    3、压缩与解压

    3.1、tar

    tar(英文全拼:tape archive )命令用于备份文件。tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

    • 将/etc文件夹中的文件归档到文件etc.tar(并不会进行压缩):
    tar -cvf /root/mydata/etc.tar /etc
    
    • 用gzip压缩文件夹/etc中的文件到文件etc.tar.gz:
    tar -zcvf /root/mydata/etc.tar.gz /etc
    
    • 用bzip2压缩文件夹/etc到文件/etc.tar.bz2:
    tar -jcvf /root/mydata/etc.tar.bz2 /etc
    

    查看压缩结果

    • 分页查看压缩包中内容(gzip):
    tar -ztvf /root/mydata/etc.tar.gz |more -c -10
    

    分页查看压缩包中内容

    • 解压文件到当前目录(gzip):
    tar -zxvf /root/mydata/etc.tar.gz
    

    4、磁盘和网络管理

    4.1、df

    df(英文全拼:disk free) 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。

    df -hT
    

    显示文件系统磁盘使用情况统计

    4.2、du

    du (英文全拼:disk usage)命令用于显示目录或文件的大小。du 会显示指定的目录或文件所占用的磁盘空间。

    du -h --max-depth=1 ./*
    

    显示目录或文件的大小

    4.3、ifconfig

    显示当前网络接口状态

    显示当前网络接口状态

    4.4、netstat

    netstat 命令用于显示网络状态。利用 netstat 指令可让你得知整个 Linux 系统的网络情况。

    • 查看当前路由信息:
    netstat -rn
    

    查看当前路由信息

    • 查看所有有效TCP连接:
    netstat -an
    
    • 查看系统中启动的监听服务:
    netstat -tulnp
    

    查看系统中启动的监听服务

    • 查看处于连接状态的系统资源信息:
    netstat -atunp
    

    查看处于连接状态的系统资源信息

    4.5、wget

    wget是Linux中的一个下载文件的工具,wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上。

    对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。

    如果不能使用,请先安装wget

    yum install -y wget
    

    查看帮助手册

    wget --help
    

    查看wget帮助手册

    a、使用 wget 下载单个文件

    以下的例子是从网络下载一个文件并保存在当前目录

    在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。

    wget http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    

    使用 wget 下载单个文件

    b、使用 wget -O 下载并以不同的文件名保存

    wget -O wordpress.tar.gz  http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    

    **c、使用 wget -c 断点续传 **

    使用wget -c重新启动下载中断的文件:

    对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件

    wget -c https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    

    d、使用 wget -b 后台下载

    对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载

    [root@network test]# wget -b https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    

    你可以使用以下命令来察看下载进度

    tail -f wget-log
    

    5、软件的安装与管理

    5.1、rpm

    rpm(英文全拼:redhat package manager) 命令用于管理套件。 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

    • 安装软件包:rpm -ivh nginx-1.12.2-2.el7.x86_64.rpm

    • 模糊搜索软件包:rpm -qa | grep nginx

    • 精确查找软件包:rpm -qa nginx

    • 查询软件包的安装路径:rpm -ql nginx-1.12.2-2.el7.x86_64

    • 查看软件包的概要信息:rpm -qi nginx-1.12.2-2.el7.x86_64

    • 验证软件包内容和安装文件是否一致:rpm -V nginx-1.12.2-2.el7.x86_64

    • 更新软件包:rpm -Uvh nginx-1.12.2-2.el7.x86_64

    • 删除软件包:rpm -e nginx-1.12.2-2.el7.x86_64

      用法: rpm [选项...]
      -a:查询所有套件;
      -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
      -c:只列出组态配置文件,本参数需配合``"-l"``参数使用;
      -d:只列出文本文件,本参数需配合``"-l"``参数使用;
      -e<套件档>或--erase<套件档>:删除指定的套件;
      -f<文件>+:查询拥有指定文件的套件;
      -h或--``hash``:套件安装时列出标记;
      -i:显示套件的相关信息;
      -i<套件档>或--``install``<套件档>:安装指定的套件档;
      -l:显示套件的文件列表;
      -p<套件档>+:查询指定的RPM套件档;
      -q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
      -R:显示套件的关联性信息;
      -s:显示文件状态,本参数需配合``"-l"``参数使用;
      -U<套件档>或--upgrade<套件档>:升级指定的套件档;
      -``v``:显示指令执行过程;
      -vv:详细显示指令执行过程,便于排错。
      

    5.2、yum

    yum(Yellow dog Updater Modified)是CentOS中属于RPM前端软件包管理器,能从指定的服务器中下载RPM包,并自动分析和处理RPM包之间的依赖关系,最后将依次所依赖的软件包都安装了,而无需繁琐的一个一个安装。

    yum 语法

    yum [options] [command] [package ...]
    
    • options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。
    • command:要进行的操作。
    • package:安装的包名

    yum常用命令

    • 安装软件包: yum install nginx

    • 删除软件包命令:**yum remove **

    • 检查可以更新的软件包:yum check-update

    • 清除缓存命令:

      • yum clean packages: 清除缓存目录下的软件包
      • yum clean headers: 清除缓存目录下的 headers
      • yum clean oldheaders: 清除缓存目录下旧的 headers
      • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
    • 更新指定的软件包:yum update nginx

    • 在资源库中查找软件包信息:删除软件包命令:**yum remove **

      image-20210119113801647

    • 列出已经安装的所有软件包:yum info installed

    • 列出软件包名称:yum list nginx*

      列出软件包名

    • 模糊搜索软件包:yum search nginx

      模糊搜索软件包

    往期推荐

    一文讲通.NET Core部署到Windows IIS最全解决方案]

    .NET Core部署到linux(CentOS)最全解决方案,常规篇

    .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)

    .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)

    .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)

    一网打尽,一文讲通虚拟机VirtualBox及Linux使用

    全新跨平台版本.NET敏捷开发框架-RDIFramework.NET5.0震撼发布

    RDIFramework.NET敏捷开发框架助力企业BPM业务流程系统的开发与落地

    通过SignalR技术整合即时通讯(IM)在.NET敏捷开发框架中落地


    一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。

    RDIFramework.NET官方网站:http://www.rdiframework.net/

    RDIFramework.NET官方博客:http://blog.rdiframework.net/

    特别说明,框架相关的技术文章请以官方网站为准,欢迎大家收藏!

    RDIFramework.NET框架由海南国思软件科技有限公司专业团队长期打造、一直在更新、一直在升级,请放心使用!

    欢迎关注RDIFramework.NET框架官方微信公众号(微信号:guosisoft),及时了解最新动态。

    使用微信扫描二维码立即关注

    微信号:guosisoft

    作者: RDIFramework.NET
    出处:http://www.cnblogs.com/huyong/
    Email:406590790@qq.com
    QQ:406590790
    微信:13005007127(同手机号)
    框架官网:http://www.rdiframework.net/
    框架官网博客:http://blog.rdiframework.net/
    框架其他博客:http://blog.csdn.net/chinahuyong
                   http://www.cnblogs.com/huyong
    RDIFramework.NET基于全新.NET Framework与.NET Core的快速信息化系统开发、整合框架,为企业快速构建垮平台、企业级的应用提供了强大支持。
    关于作者:系统架构师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,在面向对象、面向服务以及数据库领域有一定的造诣。现主要从事基于 RDIFramework.NET 框架的技术开发、咨询工作,主要服务于金融、医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。
    如有问题或建议,请多多赐教!
    本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过微信、邮箱、QQ等联系我,非常感谢。

  • 相关阅读:
    SQL Union和SQL Union All用法
    background:url() 背景图不显示
    媒体查询_网页打印样式
    提示让IE8以下版本的浏览器去更新浏览器
    python_继承supper错误
    Django_xadmin_应用外键搜索功能错误
    Django_404_403_500页面处理
    Django_中国化
    Django_上传图片和模版获取图片
    Django_生产环境静态文件配置
  • 原文地址:https://www.cnblogs.com/huyong/p/14331125.html
Copyright © 2011-2022 走看看