Linux常用命令汇总

 

  Linux系统作web类项目服务器的首先系统,在从事web项目相关的开发、测试、运维等工作时,常用的Linux命令属于基本技能。

  本文将常见的Linux命令进行分类、汇总、说明,各命令较少涉及参数的使用,如需详细了解某个命令可以通过:

  

1.官网:https://www.linux.org/

2.参考:Linux常用命令大全

3.终端输入:man 命令 或: 命令 --help # 可查看帮助信息

 

Linux常用命令分类:

  系统状态显示:系统、内存、CPU、时间、联网等,服务器常规的信息查看命令

  系统工作命令:关机、重启、进程、下载、用户管理等,服务器工作相关的命令

  目录文件操作:切换目录、新建文件夹/文件、复制粘贴、剪切、删除、查找、备份、更改权限、制作软连接等

  文件内容操作:内容查看、编辑文件内容,简要介绍强大的vim编辑器

  磁盘相关操作:磁盘的查看、挂载、卸载等

  压缩解压操作:文件压缩、解压处理

  软件安装卸载:使用常用的包管理工具进行软件的安装、更新/升级、卸载等

  其他与web项目相关的命令:数据库、反向代理等

 

 

一、系统状态显示命令

 

  1、当前系统信息显示:

[ec2-user@ip-172-31-34-34 /]$ echo Hello,world!   # 先来惯例,echo:打印命令 

Hello,world!

 

 

[ec2-user@ip-172-31-34-34 ~]$ arch  # 显示内核架构
x86_64
[ec2-user@ip-172-31-34-34 ~]$ uname   # 显示内核信息
Linux
[ec2-user@ip-172-31-34-34 ~]$ uname -m   # 显示内核架构
x86_64
[ec2-user@ip-172-31-34-34 ~]$ uname -r   # 显示内核版本
4.14.77-70.59.amzn1.x86_64
[ec2-user@ip-172-31-34-34 ~]$ uname -a   # 内核具体信息
Linux ip-172-31-34-34 4.14.77-70.59.amzn1.x86_64 #1 SMP Mon Nov 12 22:02:45 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

[ec2-user@ip-172-31-34-34 ~]$ cat /proc/version   # 系统版本
Linux version 4.14.77-70.59.amzn1.x86_64 (mockbuild@gobi-build-64001) (gcc version 7.2.1 20170915 (Red Hat 7.2.1-2) (GCC)) #1 SMP Mon Nov 12 22:02:45 UTC 2018
[ec2-user@ip-172-31-34-34 ~]$ cat /etc/issue   # 系统发行版信息
Amazon Linux AMI release 2018.03
Kernel \r on an \m

 

  2、查看内存:

[ec2-user@ip-172-31-34-34 ~]$ free -m     # 参数m是指按照MB统计  可换成 b  k  m  g 

             total       used       free     shared    buffers     cached

Mem:           985        883        102          2         20         91

-/+ buffers/cache:        770        214

Swap:            0          0          0

 

  3、查看CPU情况:

[ec2-user@ip-172-31-34-34 ~]$ lscpu

Architecture:          x86_64

CPU op-mode(s):        32-bit, 64-bit

Byte Order:            Little Endian

CPU(s):                1

On-line CPU(s) list:   0

Thread(s) per core:    1

Core(s) per socket:    1

Socket(s):             1

NUMA node(s):          1

Vendor ID:             GenuineIntel

CPU family:            6

Model:                 63

Model name:            Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz

Stepping:              2

CPU MHz:               2400.110

BogoMIPS:              4800.11

Hypervisor vendor:     Xen

Virtualization type:   full

L1d cache:             32K

L1i cache:             32K

L2 cache:              256K

L3 cache:              30720K

NUMA node0 CPU(s):     0

 

[ec2-user@ip-172-31-34-34 ~]$ getconf LONG_BIT   # 位数

64

 

[ec2-user@ip-172-31-34-34 ~]$ uptime   # 查看负载信息

 11:19:29 up 23 days,  8:17,  1 user,  load average: 0.00, 0.00, 0.00

 

  4、当前系统日期和时间

[ec2-user@ip-172-31-34-34 ~]$ date    # 当前是UTC时区,修改时区可通过tzselect命令,或者直接修改/etc/sysconfig/clock配置文件,重启后生效

Thu Mar 21 10:03:55 UTC 2019       # 修改时间通过运行 date date 041217002007.00 然后执行clock -w 修改的时间格式是:月日时分年.秒

[ec2-user@ip-172-31-34-34 ~]$ cal 2019        # 显示2019年日历

                               2019                               

 

       January               February                 March       

Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa

       1  2  3  4  5                   1  2                   1  2

 6  7  8  9 10 11 12    3  4  5  6  7  8  9    3  4  5  6  7  8  9

13 14 15 16 17 18 19   10 11 12 13 14 15 16   10 11 12 13 14 15 16

20 21 22 23 24 25 26   17 18 19 20 21 22 23   17 18 19 20 21 22 23

27 28 29 30 31         24 25 26 27 28         24 25 26 27 28 29 30

                                              31     

 

   5、联网情况

[ec2-user@ip-172-31-34-34 ~]$ ifconfig

eth0      Link encap:Ethernet  HWaddr 06:3D:35:50:67:14  

          inet addr:172.31.**.**  Bcast:172.31.88.***  Mask:255.255.240.0   # 显示本地ip地址

          inet6 addr: fe80::ggg:35ff:fe50:6714/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1

          RX packets:1016816 errors:0 dropped:0 overruns:0 frame:0

          TX packets:996573 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:94653851 (90.2 MiB)  TX bytes:917494558 (874.9 MiB)

 

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:220729 errors:0 dropped:0 overruns:0 frame:0

          TX packets:220729 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:131542337 (125.4 MiB)  TX bytes:131542337 (125.4 MiB)

 

 

 二、系统工作命令

 

  1、关机、重启、注销登录:

[ec2-user@ip-172-31-34-34 ~]$ init .    # 或者  init 0  关机

[ec2-user@ip-172-31-34-34 ~]$ shutdow   # 关机

[ec2-user@ip-172-31-34-34 ~]$ poweroff   # 关机

[ec2-user@ip-172-31-34-34 ~]$ shutdow -h hours:minutes &  # 定时关机

[ec2-user@ip-172-31-34-34 ~]$ shutdow  -c  # 取消定时关机

[ec2-user@ip-172-31-34-34 ~]$ shutdow -r now  # 重启

[ec2-user@ip-172-31-34-34 ~]$ reboot  # 重启

[ec2-user@ip-172-31-34-34 ~]$ logout  # 注销登录

 

  2、用户管理:

[ec2-user@ip-172-31-34-34 ~]$ who    # 显示当前用户信息

ec2-user pts/0        Mar 21 09:01 (223.71.81.68)

[ec2-user@ip-172-31-34-34 ~]$ groups  # 查看当前用户的组内成员,关于用户组的操作不做介绍

ec2-user wheel

[ec2-user@ip-172-31-34-34 ~]$ hostname   # 主机名

ip-172-31-34-34

[ec2-user@ip-172-31-34-34 ~]$ w    # 显示当前活动的用户的具体信息

 10:28:12 up 23 days,  7:26,  1 user,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

ec2-user pts/0    223.71.81.68     09:01    1.00s  0.06s  0.00s w

[ec2-user@ip-172-31-34-34 ~]$ passwd 密码   # 修改当前用户的登录密码

[ec2-user@ip-172-31-34-34 ~]$ passwd user1 密码   # 修改user1的登录密码  只允许root用户修改

[ec2-user@ip-172-31-34-34 ~]$ last   # 显示登录记录

ec2-user pts/0        223.71.81.68     Thu Mar 21 09:01   still logged in   

ec2-user pts/0        223.71.81.68     Mon Mar 18 11:09 - 11:09  (00:00)   

 

  3、进程管理:

[ec2-user@ip-172-31-34-34 ~]$ ps aux    # ps 是常用的进程显示命令,通常和管道符(|)一起查询某个进程信息,ps参数很多,请自行参考:man ps

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root         1  0.0  0.2  19692  2372 ?        Ss   Feb26   0:02 /sbin/init

root         2  0.0  0.0      0     0 ?        S    Feb26   0:00 [kthreadd]

root         3  0.0  0.0      0     0 ?        I    Feb26   0:00 [kworker/0:0]

[ec2-user@ip-172-31-34-34 ~]$ ps aux|grep nginx   # 查看Nginx进程

root      9548  0.0  0.2  59952  2528 ?        Ss   Feb28   0:00 nginx: master process /usr/sbin/nginx

[ec2-user@ip-172-31-34-34 ~]$ top     # top 命令可以动态监视本都进程和系统负载信息   属于强化版的‘win系统任务管理器’

 

top - 10:38:48 up 23 days,  7:37,  1 user,  load average: 0.00, 0.00, 0.00

Tasks:  97 total,   1 running,  72 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1009432k total,   906100k used,   103332k free,    21796k buffers

Swap:        0k total,        0k used,        0k free,    94576k cached

 

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                               

    1 root      20   0 19692 2372 2048 S  0.0  0.2   0:02.81 init                                                   

    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                               

    3 root      20   0     0    0    0 I  0.0  0.0   0:00.00 kworker/0:0 

[ec2-user@ip-172-31-34-34 ~]$ pidof sshd    # 查看指定进程的 进程号(PID)

9916 9914 9722 9720 2577

[ec2-user@ip-172-31-34-34 ~]$ kill     # 结束进程命令  命令格式: kill 进程号(PID)

kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]   # kill 参数

[ec2-user@ip-172-31-34-34 ~]$ kill -9 9916   # 常用 -9 这个参数,来强制结束某一进程

[ec2-user@ip-172-31-34-34 ~]$ kill -l   # 这个命令列出所有数字含义,其中9是指忽略程序的等待情况(比如有的进程需要释放内存,释放的时间太长,导致kill阻塞),直接停止

 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

63) SIGRTMAX-1 64) SIGRTMAX

[ec2-user@ip-172-31-34-34 ~]$ killall httpd   # 结束整个进程树 命令格式:  killall 进程名

 

  4、文件下载: 

[ec2-user@ip-172-31-34-34 ~]$ wget 下载链接   # 下载文件,常用于源码包的下载

 

  

三、目录文件操作

 

  1、路径、目录操作:

[ec2-user@ip-172-31-34-34 ~]$ pwd     # 显示当前路径

/home/ec2-user

[ec2-user@ip-172-31-34-34 ~]$ cd /     # 切换到指定目录,命令格式: cd   绝对路径或者相对路径     其中  cd ..   返回上层目录,cd - 返回上次目录

[ec2-user@ip-172-31-34-34 /]$ ls       # 显示当前文件夹下的文件夹和文件,不含隐藏文件

bin   cgroup  etc   lib    local       media  opt   root  sbin     srv  tmp  var

boot  dev     home  lib64  lost+found mnt    proc  run   selinux  sys  usr

[ec2-user@ip-172-31-34-34 /]$ ls -al   #  ls 的参数很多  常用的有-a  显示所有文件夹和文件,含隐藏的   -l 显示具体信息

total 116

dr-xr-xr-x  25 root root  4096 Feb 26 03:02 .

dr-xr-xr-x  25 root root  4096 Feb 26 03:02 ..

-rw-r--r--   1 root root     0 Feb 26 03:01 .autofsck

-rw-r--r--   1 root root     0 Nov 20 05:50 .autorelabel

dr-xr-xr-x   2 root root  4096 Nov 16 23:06 bin

dr-xr-xr-x   4 root root  4096 Nov 16 23:07 boot

drwxr-xr-x   2 root root  4096 Feb 28  2014 cgroup

 

  2、新建、复制粘贴、剪切、删除操作:(操作文件时,必须是完整的文件名+文件格式,如:file.txt)

[ec2-user@ip-172-31-34-34 ~]$ mkdir aaa   # 创建文件夹

[ec2-user@ip-172-31-34-34 ~]$ touch aaa.txt  # 新建文件,指定文件格式,touch命令很强大,可以修改文件的创建、更新等时间

[ec2-user@ip-172-31-34-34 ~]$ ls

aaa  aaa.txt

[ec2-user@ip-172-31-34-34 ~]$ cp 路径1/file1 路径2/file2 # 复制文件夹或文件,将文件1复制到文件2,注意:两个文件(夹)的名字可以不一样,但是内容是一样的

[ec2-user@ip-172-31-34-34 ~]$ mv 路径1/file1 路径2/file2 # 移动文件夹或文件,将文件1移动文件2

[ec2-user@ip-172-31-34-34 ~]$ mv file1 file2 # 如果是同一个路径,则实现了重命名的功能

[ec2-user@ip-172-31-34-34 ~]$ rm 文件名  # 删除一个文件,rm 常用参数:-r 递归删除,删除文件夹使用   -f 强制删除

[ec2-user@ip-172-31-34-34 ~]$ rm -rf  文件夹  # 删除一个文件夹,常用-rf 

 

  3、文件查找:

[ec2-user@ip-172-31-34-34 ~]$ find 路径 -name 文件名  # 其中路径常用 / 表示从根目录开始查找,文件名可以是文件全称,也可使用通配符

[ec2-user@ip-172-31-34-34 ~]$ which mysql  # 常用于显示二进制的可执行程序文件的路径

/usr/bin/mysql

[ec2-user@ip-172-31-34-34 ~]$ whereis mysql  # 显示二进制文件的命令文件、源码等相关信息的路径

mysql: /usr/bin/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

 

  4、文件备份,强大的dd命令:

[ec2-user@ip-172-31-34-34 ~]$ dd if=文件 of=文件 count=1 bs=200M # 命令解释:if输入的文件名  of输出的文件名 bs设置每个块大小  count设置总块数

 

# 1、有个神奇的设备文件   /dev/zero,不占具体内存空间,但是可以提供无穷的数据,常用于创建随意大小的空文件,如:

dd if=/dev/zero of=/var/xx_file.txt count=1 bs=10M 

 

# 2、dd命令常用于制作系统镜像,如

dd if=/dev/cdrom of=linux_64.iso

 

 

  5、文件权限管理:

[ec2-user@ip-172-31-34-34 /]$ ls -al   #  使用ls可显示文件的权限

dr-xr-xr-x   4 root root  4096 Nov 16 23:07 boot

drwxr-xr-x   2 root root  4096 Feb 28  2014 cgroup

[ec2-user@ip-172-31-34-34 ~]$ chmod [参数] 权限 文件或文件夹  # 权限可以使用r w x,也可使用数字表示,如修改文件权限,需要使用-R参数,表示递归

[ec2-user@ip-172-31-34-34 ~]$ chmod -R 777 aaa # 将aaa文件夹权限改为 所有人、全部权限

 

 

四、文件内容操作:

内容查看、编辑文件内容,简要介绍强大的vim编辑器

 

  1、文件内容查看:

[ec2-user@ip-172-31-34-34 online]$ cat test.py   # cat 命令常用于查看小文件的内容

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

__author__ = "问道编程"

__date__ = "2018-06-04 16:59"

 

def application(venv, start_response):

    start_response('200 OK', [('Content-Type','text/html')])

    return [b"Hello World from uWSGI"]

[ec2-user@ip-172-31-34-34 online]$ more uswgi.log   # more 常用于大文件的查看,可使用空格键或回车向下翻页,有百分比提示

chdir() to /var/www/online

your processes number limit is 3867

your memory page size is 4096 bytes

detected max file descriptor number: 1024

lock engine: pthread robust mutexes

thunder lock: disabled (you can enable it with --thunder-lock)

--More--(0%)

 

 

[ec2-user@ip-172-31-34-34 online]$ head -n 5 uswgi.log   # head 常用于查看文件的前几行,命令格式:head -n 行数 文件名

*** Starting uWSGI 2.0.17 (64bit) on [Tue Jun 12 07:54:51 2018] ***

compiled with version: 5.5.0 on 12 June 2018 06:58:29

os: Linux-4.14.33-51.37.amzn1.x86_64 #1 SMP Thu May 3 20:07:43 UTC 2018

nodename: ip-172-31-40-62

machine: x86_64

[ec2-user@ip-172-31-34-34 online]$ tail -f uswgi.log  # tail 常用于查看文件的尾部,用法同head,但是tail有个强大的功能,tail -f 可以查看动态日志文件,可持续刷新

[ec2-user@ip-172-31-34-34 online]$ cat test.py | tr [a-z] [A-Z] # 将文件中的小写全部转换为大写,tr命令通常和|一起用,格式是  tr 原字符 目标字符

[ec2-user@ip-172-31-34-34 online]$ wc test.py  # 统计文件的 行数、字数、字节数,可选参数有 -l -w -c,单独显示行数、字数、字节数

  8  25 245 test.py

 

[ec2-user@ip-172-31-34-34 online]$ stat test.py  # 查看文件具体信息

  File: 'test.py'

  Size: 245       Blocks: 8          IO Block: 4096   regular file

Device: ca01h/51713d Inode: 656710      Links: 1

Access: (0777/-rwxrwxrwx)  Uid: (  500/ec2-user)   Gid: (  500/ec2-user)

Access: 2018-11-27 07:59:36.000000000 +0000

Modify: 2018-06-12 05:40:12.000000000 +0000

Change: 2018-11-27 08:41:48.066246190 +0000

 Birth: -

 

 

   2、使用vim编辑文件内容:

 

 

后续更新、、、、 

 

 

 

参考资料:https://blog.csdn.net/qq_31278903/article/details/83146031

 

 

 

 

 

 

 

  

 

 

  

 

问道,问道,道法自然,编程亦然。 作者:问道编程 浏览本文,如有些许收获,请点击推荐。 本站使用「署名 4.0 国际」创作共享协议,码字不易,如需转载或引用,需在文章明显位置注明作者及本文链接。
posted @ 2019-03-21 20:27  问道编程  阅读(519)  评论(0编辑  收藏  举报