huyong

在前面我们介绍了通过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

相关文章: