Linux基础命令

man 查询命令

man是一种查询帮助命令,当你不知道这么命令后的参数,可用man命令来查看。

例如下面我输出了"man ls" 查询ls-man的帮助文档(里面介绍了ls各种详细信息)。

[root@MR ~]# man ls
LS(1)                            User Commands                           LS(1)
NAME
       ls - list directory contents
SYNOPSIS
       ls [OPTION]... [FILE]...

-a, --all
              do not ignore entries starting with .
       -A, --almost-all
              do not list implied . and ..

echo 输出

echo 就是一个输出命令,可别小看这个输出命令,在后面脚本文件运用的可相当多。

例如下面我将输入echo的一些简单用法

[root@MR ~]# echo 123
123
[root@MR ~]# echo $SHELL
/bin/bash
[root@MR ~]# [ $USER = root ] && echo "Admin" || echo "User"
Admin   #在此解析此含义:此时用户是不是root,如果是,则输出“Admin”,反之则输出“user”

date 显示时间

date为显示时间命令,单独输入显示如下

[root@MR ~]# date
2019年 03月 13日 星期三 02:18:20 CST

哇,怎么才13号凌晨两点钟,现在才是北京时间14号18点50分啊

那我们就来更改一下吧

[root@MR ~]# date -s "20190314 18:50:00"
2019年 03月 14日 星期四 18:50:00 CST

reboot 重启

用于重启系统,这个就在此不演示

poweroff 关机

关机命令,但我习惯使用“shutdown +0” ,后面加几就代表几分钟后面关机,加0就是立马关机,例如下面我设置100分钟后关机

[root@MR ~]# shutdown +100
Shutdown scheduled for 四 2019-03-14 20:46:02 CST, use 'shutdown -c' to cancel.    #含义就是将在20点46分执行关机,如果你想取消请执行'shutdown -c'
[root@MR ~]# shutdown -c
Broadcast message from root@MR.ZLJ (Thu 2019-03-14 19:07:19 CST):
The system shutdown has been cancelled at Thu 2019-03-14 19:08:19 CST!
# 这里就提示了系统关闭已于2019-03-14星期四19:08:19 CST取消!

wget 下载

下载命令,后接下载地址,下面介绍一些常用的参数

[root@MR ~]# wget http://mirrors.aliyun.com/repo/Centos-6.repo
# 直接下载
[root@MR ~]# wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
# -O CentOS-Base.repo表示下载之后以CentOS-Base.repo来命名
[root@MR ~]# wget -r -p http://mirrors.aliyun.com
# -r -p递归下载网站里所有内容

ps 显示进程

含义:查看系统中进程状态

[root@MR ~]# ps
   PID TTY          TIME CMD
  3492 pts/0    00:00:00 bash
  3514 pts/0    00:00:00 ps
  # 单独输出是这样

上面主要用于查看哪些东西在运行,然后我们不要的可以用Kill+PID来结束

ps有三个常用参数:

-a:显示所有进程(包括其他用户的进程)

-u:用户以及其他详细信息

-x:显示没有控制终端的进程

大多数情况,我们都是将-a、-u、-x连在一起使用:-aux

下面我们来敲打吧。。。。

[root@MR ~]# ps -aux
  USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
  root          1  0.0  0.3  49988  6412 ?        Ss   15:01   0:01 /usr/lib/syste
  root          2  0.0  0.0      0     0 ?        S    15:01   0:00 [kthreadd]
  root          3  0.0  0.0      0     0 ?        S    15:01   0:00 [ksoftirqd/0]
  root          5  0.0  0.0      0     0 ?        S<   15:01   0:00 [kworker/0:0H]
  ......................以下省略好多条........................

? 这么多,让我看到猴年马月吗?

然而并不是,其实ps是与后面管道符搭配使用,用来抓取与某一个指定服务进程相对应的PID号码。

USER:进程的所有者TTY:所在终端
PID:进程ID号STAT:进程状态
%CPU:运算器占用率START:被启动的时间
%MEM:内存占用率TIME:实际使用CPU的时间
VSZ:虚拟内存使用量(KB)COMMAND:命令名称与参数
RSS:占用的固定内存量(KB)

上面这些含义我们只需要混一个脸熟就可以了,下面这就就需要我们详细的记住了:

R(运行):进程正在运行或在运行队列中等待

S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态

D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断

Z(僵尸):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放

T(停止):进程收到停止信号后停止运行

top 动态显示进程

动态监视进程活动与系统负载,我们亲切地称之它为强化版的windows中的任务管理器,怎么个强化法,往下看吧。

[root@MR ~]# top
top - 20:30:05 up  5:28,  3 users,  load average: 0.00, 0.01, 0.05
Tasks: 407 total,   2 running, 405 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
KiB Mem:   1870760 total,   313124 used,  1557636 free,      780 buffers
KiB Swap:  2097148 total,        0 used,  2097148 free.   100424 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
     1 root      20   0   49988   6412   3716 S  0.0  0.3   0:01.62 systemd
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kthreadd
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.01 ksoftirqd/0
     5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:+
# 此时我这里就一个进程在启用,其余为0的都为停止或者等待为用户服务
# -20 所代表优先级最高

第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内负载情况,

第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数

第3行:用户占用资源百分比、系统内核占用资源百分比、正在占用的百分比、资源空闲百分比

第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量

第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量

pidof 后面接服务来查看PID

用于查询某个服务进程的PID,每个PID如同身份证一样是唯一的

[root@MR ~]# pidof top
3645

kill 终止PID

用于终止某个服务进程的PID

[root@MR ~]# kill 3685
[root@MR ~]# pidof top
[root@MR ~]#
#终止之后,我们在来查看,这里就看不到top正在运行了

killall终止服务所有PID

有些服务,它的进程PID值远远不止一个,怎样去结束他们呢,我们可用killall来终止这种服务,那么顾名思义,killall就是某个服务的全部进程

ifconfig 查看网卡配置

用于获取网卡配置与网络状态等信息

[root@MR ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:b6:10:19 brd ff:ff:ff:ff:ff:ff
    inet 192.168.233.132/24 brd 192.168.233.255 scope global dynamic eno16777736
       valid_lft 1290sec preferred_lft 1290sec
    inet6 fe80::20c:29ff:feb6:1019/64 scope link
       valid_lft forever preferred_lft forever
# 由于我使用的是文本界面,是不带GUI的,所以只能使用"ip a"供大家查看,具体可以在图形化界面中输入"ifconfig"查看

uname 查看内核信息

用于查看内核与版本信息,常常在后面接 -a

[root@MR ~]# uname
Linux
[root@MR ~]# uname -a
Linux MR.ZLJ 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux

uptime 显示top的第一行

查看系统的内核负载信息

[root@MR ~]# uptime
 21:22:18 up  6:20,  3 users,  load average: 0.00, 0.01, 0.05
   时间     运行了多久  开了几个终端       最近1分钟,5分钟,15分钟 
#此命令相当于top命令的第一行

free 查看内存信息

显示当前系统中内存的使用量信息

[root@MR ~]# free
             total       used       free     shared    buffers     cached
Mem:       1870760     327300    1543460       8752        792     113392
-/+ buffers/cache:     213116    1657644
Swap:      2097148          0    2097148

天啊!这是啥,我怎么看不懂,这要一个个的数单位吗?

其实不用,下面我将会 用"-h" 人性化的角度来显示

[root@MR ~]# free -h
            内存总量    已用量      可用量 进程共享的内存量 磁盘缓存的内存量 缓存的内存量
             total       used    free      shared          buffers        cached
Mem:          1.8G       319M    1.5G       8.5M             792K          110M
-/+ buffers/cache:       208M    1.6G
Swap:         2.0G         0B    2.0G

who 谁(此时为哪个用户)

用于查看当前登入主机的用户终端信息

[root@MR ~]# who
root     tty1         2019-03-12 22:34
root     pts/0        2019-03-14 19:44 (192.168.233.1)
# 我正在使用putty.exe 远程链接此系统

last 查看当前系统的登陆记录

用于查看所有系统的登录记录

[root@MR ~]# last
root     pts/1        192.168.233.1    Thu Mar 14 21:03 - 21:03  (00:00)
root     pts/1        192.168.233.1    Thu Mar 14 20:57 - 20:58  (00:00)
root     pts/1        192.168.233.1    Thu Mar 14 20:55 - 20:57  (00:01)
......................以下省略好多条........................
wtmp begins Wed Mar  6 16:48:05 2019
#于2019年3月6日星期三16:48:05开始

history 查看历史命令

用于显示历史执行过的命令

[root@MR ~]# history
    1  sudo useradd huangbichun
    2  cd huangbichun
......................以下省略好多条........................
  543  who
  544  last
  545  history

再次执行那一条命令可以用"!+数字 "

[root@MR ~]# !543
who
root     tty1         2019-03-12 22:34
root     pts/0        2019-03-14 19:44 (192.168.233.1)

清除历史命令可用"history -c"

[root@MR ~]# history -c
[root@MR ~]# history
    1  history

sosreport 收集系统信息

用于收集系统配置及架构信息并输出诊断文档

pwd 显示当前所在目录

显示用户当前所处的工作目录

[root@MR ~]# pwd
/root
[root@MR ~]# cd /home
[root@MR home]# pwd
/home

cd 切换目录

用于切换工作路径

[root@MR ~]# cd /home

ls 列出当前目录下的文件

用于显示目录中的文件信息

-a :查看全部文件(包括隐藏文件)

-l:查看文件的属性、大小等详细信息

[root@MR ~]# ls -a
.                .bash_history 
..               .bash_logout   .cshrc .tcshrc
2019-03-09-测试  .bash_profile   .viminfo
anaconda-ks.cfg  .bashrc         
[root@MR ~]# ls -l
总用量 24
drwxr-xr-x. 2 root root     6 3月  12 22:38 2019-03-09-测试
-rw-------. 1 root root   810 3月   6 16:33 anaconda-ks.cfg
[root@MR ~]# ls -al
总用量 68
dr-xr-x---.  5 root root  4096 3月  14 19:17 .
drwxr-xr-x. 17 root root  4096 3月  15 18:09 ..
drwxr-xr-x.  2 root root     6 3月  12 22:38 2019-03-09-测试
-rw-------.  1 root root   810 3月   6 16:33 anaconda-ks.cfg
-rw-------.  1 root root  7368 3月  14 22:16 .bash_history
-rw-r--r--.  1 root root    18 12月 29 2013 .bash_logout
-rw-r--r--.  1 root root   176 12月 29 2013 .bash_profile
-rw-r--r--.  1 root root   224 3月   7 21:59 .bashrc
-rw-r--r--.  1 root root   100 12月 29 2013 .cshrc
-rw-r--r--.  1 root root    15 3月   7 21:44 passwod
-rw-r--r--.  1 root root   129 12月 29 2013 .tcshrc
-rw-------.  1 root root  5656 3月  11 17:44 .viminfo

cat 查看文本文件(适用于短文本)

查看纯文本文件 (适合内容较少)

[root@MR ~]# cat CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
......................以下省略好多条........................

天啊!这么多,我只想要中间的一行,怎么办,没事,Linux中每一个命令都有参数,那么我们接下来看吧。

[root@MR ~]# cat -n CentOS-Base.repo
     1  # CentOS-Base.repo
     2  #
     3  # The mirror system uses the connecting IP address of the client and the
......................以下省略好多条........................
    61  enabled=0
    62  gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6

这样我们就可以清晰的看到有多少行数据了

more 查看文本文件(适用于长文本)

以百分比、翻页形式查看

[root@MR ~]# more CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
--More--(32%)

如果我们不想看,可以按下字母q退出,或者按ctrl+c

head 查看一定行数

默认下显示前十行,我们也可以输入-n 【输入一个数字】来查看你想要看到的前多少行

[root@MR ~]# head CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
......................以下省略7条........................
[root@MR ~]# head -n 1 CentOS-Base.repo
# CentOS-Base.repo

tail 查看一定行数

默认下只显示后十行,我们也可以输入-n 【输入一个数字】来查看你想要看到的后多少行

[root@MR ~]# tail CentOS-Base.repo
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
......................以下省略7条........................
[root@MR ~]# tail -n 1 CentOS-Base.repo
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6

tr 替换文本文件中的字符

用于替换文本文件文件中的字符

[root@MR ~]# cat 1
a b c d
[root@MR ~]# cat 1 | tr [a-d] [A-D]
A B C D

wc 用于统计文本文件的行数、字数、字节数

用于统计指定文本的行数、字数、字节数

-l 只显示行数

-w 只显示单词数

-c 只显示字节数

#例如我现在来统计刚才这个1文本
[root@MR ~]# wc -l 1
1 1
#1这个文本只有一行
[root@MR ~]# wc -w 1
4 1
#1这个文本只有4个单词
[root@MR ~]# wc -c 1
9 1
#1这个文本只有9个字节

stat 查看文件的时间

用于查看文件的具体储存信息和时间等信息

[root@MR ~]# stat 1
  文件:"1"
  大小:9               块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:68107948    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2019-03-16 18:12:24.024958722 +0800
最近更改:2019-03-16 18:12:24.024958722 +0800
最近改动:2019-03-16 18:12:24.025958722 +0800
创建时间:-

cut 按列来提取文本字符

以一列两列来提取文本里面的信息

-d 后接某一字节符号来设置间隔

-f 后接数字来提取多少列

[root@MR ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
......................以下省略........................

diff 用于对比文本文件的差异

用于对比文件的差异

[root@MR 12]# ls
a  A
[root@MR 12]# cat a
a b c d
[root@MR 12]# cat A
A B C D
[root@MR 12]# diff --brief a A
文件 a 和 A 不同

[root@MR 12]# diff -c a A
*** a   2019-03-16 18:24:24.139918637 +0800
--- A   2019-03-16 18:24:38.922917814 +0800
***************
*** 1 ****
! a b c d
--- 1 ----
! A B C D

touch 创建文本文件

用于创建文本文件,并且可以结合date创建以时间开头的文本文件

-a 只修改读取时间

-m 只修改修改时间

-d 同时修改读取时间又修改修改时间

[root@MR 12]# touch 5
[root@MR 12]# ls -l 5
-rw-r--r--. 1 root root 0 3月  16 18:29 5
[root@MR 12]# echo “132ewfwefwef” >> 5
[root@MR 12]# cat 5
“132ewfwefwef”
[root@MR 12]# ls -l 5
-rw-r--r--. 1 root root 19 3月  16 18:32 5
[root@MR 12]# touch -d "18:29" 5
[root@MR 12]# ls -l
总用量 4
-rw-r--r--. 1 root root 19 3月  16 18:29 5

mkdir 创建文件夹

用于创建空白的目录

-p 一次性创建多个目录

[root@MR 12]# mkdir 10
[root@MR 12]# ls
10  5
[root@MR 10]# mkdir -p a/{b,c/{d,e}}
[root@MR 10]# tree
.
└── a
    ├── b
    └── c
        ├── d
        └── e

5 directories, 0 files

cp 复制

复制命令 可以复制文件,也可以复制目录

-p 保留原始文件的属性

-d 若对象为“链接文件”,则保留该“链接文件”的属性

-r 递归持续复制(用于目录)

-i 若目标文件存在则询问是否覆盖

-a 相当于-pdr(p、d、r为上述参数)

[root@MR 10]# cp 1 2
[root@MR 10]# ls
1  2  a

mv 剪切(移动)

剪切文件或者移动文件或者将文件重命名

[root@MR 10]# mv 1 3
[root@MR 10]# ls
2  3  a

rm 删除

用于删除文件的命令,这个命令就不用我过多介绍吧

-r 删除目录

-f 强制删除

dd 类似于提取

按照指定大小和个数的数据块来复制文件或转换文件

if 输入的文件名称

of 输出的文件名称

bs 设置每个‘块’大小

count 设置要复制‘块’的个数

[root@MR ~]# dd if=/dev/sda of=111_file count=1 bs=125M
记录了1+0 的读入
记录了1+0 的写出
131072000字节(131 MB)已复制,3.35874 秒,39.0 MB/秒

file 查看文件类型

用于查看文件的类型

[root@MR ~]# file /home
/home: directory
[root@MR ~]# file 1
1: ASCII text

tar 压缩(解压)

-c 创建压缩文件

-x 解开压缩文件

-z 用Gzip压缩或解压

-v 显示压缩或解压的过程

-f 目标文件名

-C 指定解压到的目录

压缩:
[root@MR 12]# tar -czvf 10.tar.gz 10
10/
10/a/
10/a/b/
10/a/c/
10/a/c/d/
10/a/c/e/
10/2
10/3
[root@MR 12]# ls
10  10.tar.gz  5
解压至/home目录:
[root@MR 12]# tar xzvf 10.tar.gz -C /home
10/
10/a/
10/a/b/
10/a/c/
10/a/c/d/
10/a/c/e/
10/2
10/3
[root@MR 12]# ls /home
10  zhou

grep 在文本文件中执行关键词搜索

-d 将可执行文件(binary)当作文本文件(text)来搜索

-c 仅显示找到的行数

-i 忽略大小写

-n 显示行号

-v 反向选择—仅列出没有“关键词”的行

[root@MR 12]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
......................以下省略........................

find 按照指定的条件来查找文件

-name匹配名称
-perm匹配权限(mode为完全匹配,-mode为包含即可)
-user匹配所有者
-group匹配所有组
-mtime -n +n匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser匹配无所有者的文件
-nogroup匹配无所有组的文件
-newer f1 !f2 ent–>匹配比文件f1新但比f2旧的文件
–type b/d/c/p/l/f匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune忽略某个目录
-exec …… {};后面可跟用于进一步处理搜索结果的命令(下文会有演示)
[root@MR 12]# find /etc -name "host*" -print
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/avahi/hosts
/etc/selinux/targeted/modules/active/modules/hostname.pp
/etc/hostname
[root@MR 12]# find / -perm -4000 -print
/usr/bin/mount
/usr/bin/chage
/usr/bin/gpasswd
/usr/bin/newgrp
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/su
......................以下省略........................
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值