本节内容

基础命令二:

1.      alias:查看和设置别名(alias:别名)

alias 'ren=ls -ld'

\ren 可不取消别名,执行ren原本的命令

2.      unalias:取消别名

unalias ren

3.      uname:查看系统信息

-r:查看内核(release释放、发布--显示操作系统发行版本)

-a:查看所有信息

4.      hostname:查看和设置主机名(立即生效,但是重启失效)

hostname ren

5.      hostnamectl set-hostname ren (立即生效,重启也生效)

6.      history:显示历史命令(1000)

grep -i "hist" /etc/profile  #在这个文件中可以进行设置

HISTSIZE=1000

!缩写(后面 + 某个字母(命令首字母),

可执行最近第一个以该字母开头的命令(history中从下往上数))

7.      which:显示命令的路径

8.      wc:统计信息

-l: 统计行数(line)

-c: 统计字符数(character)

-w: 统计单词(word)

9.      w: 显示当前登陆的用户信息

USER  TTY  FROM   LOGIN@  IDLE   JCPU   PCPU WHAT

10.   who:显示正在登陆的用户

11.   whoami:显示当前登陆的用户(who am i)

12.   ping:测试主机在线

-c: count  指定发送包的次数

-i: intervel  间隔时间

-w: wait  超时等待时间

13.   kill: 终止进程

kill -15/-9 PID (唯一标识一个进程)

14.   du:查看文本大小(实际大小)

-s: 查看目录总大小(summarize)

-h: 人类易读(human readable)

15.   df:查看磁盘使用情况(查看挂载点)(disk free)

-h: 人类易读

16.   free:查看内存使用情况

-h:

-m: 以M为单位显示

-s: 刷新显示([-s delay ]连续抽样显示)

17.   date:查看和设置系统时间

-s:设置时间(+日期,只设置日期;+时间,只设置时间;

+日期时间,设置日期时间;设置完成后可使用clock -w锁定)

%Y 年

%m 月

%d 日

%H 时

%M 分

%S 秒

%F:年月日

%T:时分秒

高级命令进阶:

1.      输出重定向

>: 正确覆盖输出

>>: 正确追加输出

2>: 错误覆盖输出

2>>: 错误追加输出

&>: 正确和错误覆盖输出

&>>: 正确和错误追加输出

2.      输入重定向

<

3.      管道符

|

前一个命令的输出作为下一个命令的输入

前面命令输出的结果,交给后面的命令继续处理

4.      通配符

*: 表示匹配0或者多个

?: 表示匹配单个字符,该字符必须存在

[0-9]: 表示匹配0-9之间的一个数字

[123]: 表示匹配1或者2或者3

[a-z]: 表示匹配a-z之间的一个字母

[abc]: 表示匹配a或者b或者c

[A-Z]:表示匹配A-Z之间的一个字母

[0-9a-zA-Z]:表示匹配0-9或a-z或A-Z之间的一个字母

5.      /

/root: root用户家目录

/home: 普通用户家目录

/media: 挂载光盘

/etc: 存放配置文件

/tmp: 共享临时文件

/var: 放置经常变动的文件如日志

/bin,/sbin: 放置二进制命令

/dev: 磁盘设备



基础命令二

1.    alias

设置和查看别名(谨慎使用)

例子1:查看别名

[root@localhost ~]# alias

alias cp='cp -i'

alias egrep='egrep --color=auto'

alias fgrep='fgrep --color=auto'

alias grep='grep --color=auto'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'

例子2:设置别名

[root@localhost ~]# alias ren="ls -l"

[root@localhost ~]# ren(命令相当于 ls -l)

总用量 8

-rw-------. 1 root root 1770 6月  18 16:49 anaconda-ks.cfg

-rw-r--r--. 1 root root 1818 6月  18 16:52 initial-setup-ks.cfg

drwxr-xr-x. 2 root root    6 6月  18 16:53 公共

drwxr-xr-x. 2 root root    6 6月  18 16:53 模板

drwxr-xr-x. 2 root root    6 6月  18 16:53 视频

drwxr-xr-x. 2 root root    6 6月  18 16:53 图片

drwxr-xr-x. 2 root root    6 6月  18 16:53 文档

drwxr-xr-x. 2 root root    6 6月  18 16:53 下载

drwxr-xr-x. 2 root root    6 6月  18 16:53 音乐

drwxr-xr-x. 2 root root   28 7月   8 19:08 桌面

写入一下文件永久生效

~/.bashrc 只针对当前用户

/etc/bashrc  对所有用户生效

2.    unalias

取消别名

[root@localhost ~]# unalias ren

[root@localhost ~]# ren

bash: ren: 未找到命令...

注意:

以后在接手一台服务器的时候要看一下已经设置了哪些别名!

3.    uname

查看主机信息

-a 显示所有的信息

-r 显示内核版本号(重点)

例子1:查看主机信息

[root@localhost ~]# uname

Linux

[root@localhost ~]# uname -a

Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

例子2:查看内核版本号

[root@localhost ~]# uname -r

3.10.0-957.el7.x86_64

4.    hostname

查看和设置主机名

例子1:查看主机名

[root@localhost ~]# hostname

localhost.localdomain

例子2:设置主机名

[root@localhost ~]# hostname renyz

[root@localhost ~]# hostname

renyz

注意:

hostname修改的主机名是立即生效但是重启系统就失效了

如果不想开机失效的话可以写入到配置文件/etc/hostname

[root@localhost ~]# echo "renyz" > /etc/hostname

[root@localhost ~]# cat /etc/hostname

renyz

5.    hostnamectl

设置主机名

设置的主机名立即生效而且重启系统依然有效

例子1:设置主机名立即且永久有效

[root@localhost ~]# hostnamectl set-hostname renyz(重点)

6.     history

显示执行过的命令

[root@renyz ~]# history

特殊用法:

[root@renyz ~]#!c #执行从下到上数最后一个以c开头的命令(history中)

7.    which

显示命令的完整路径

命令都是一个可以执行的文件

[root@renyz ~]# which ls

alias ls='ls --color=auto'

/usr/bin/ls

[root@renyz ~]# ls -l /usr/bin/ls

-rwxr-xr-x. 1 root root 117680 10月 31 2018 /usr/bin/ls

可以查看命令依赖于那个程序!

8.    wc

统计文本信息

-l 统计行数

-w 统计单词数

-c 统计字符

例子1:统计当前系统中有多少用户

[root@renyz ~]# wc -l /etc/passwd

44 /etc/passwd(passwd用户目录,每一行就是一个用户)

例子2:统计单词数

[root@renyz ~]# echo "this is renyz"|wc -w

3

例子3:统计字符

[root@renyz ~]# echo "this is renyz"|wc -c

14(“|”管道符)

[root@renyz ~]# printf "this is renyz"|wc -c

13(真实字符数量)

9.    w

显示当前登录的用户

[root@renyz ~]# w

02:50:53 up 21 min,  2 users,  load average: 0.01, 0.07, 0.17

USER  TTY  FROM   LOGIN@  IDLE   JCPU   PCPU WHAT

root   :0       :0       02:30   ?xdm?  59.55s  0.30s /usr/libexec/gnome-ses

root   pts/0   :0       02:31   5.00s   0.19s   0.05s w

主要关注:登录用户、登录IP

10. who

显示正在登陆的用户

[root@renyz ~]# who

root     :0           2019-07-10 02:30 (:0)

root     pts/0       2019-07-10 02:31 (:0)

11. whoami

显示当前登录的用户

[root@renyz ~]# whoami

root

12. ping

测试主机是否在线

-c 发送包的数量

-i   发送包的间隔数

-w 超时等待时间

例子1:测试本机是否可以通外网

[root@renyz ~]# ping baidu.com(在Linux系统下不会自动停止)

PING baidu.com (220.181.38.148) 56(84) bytes of data.

64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=42.7 ms

64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=49.3 ms

64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=128

例子2:发送两个包

[root@renyz ~]# ping -c 2 baidu.com

PING baidu.com (123.125.114.144) 56(84) bytes of data.

64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=1 ttl=128 time=42.9 ms

--- baidu.com ping statistics ---

2 packets transmitted, 1 received, 50% packet loss, time 1001ms

rtt min/avg/max/mdev = 42.961/42.961/42.961/0.000 ms

例子3:指定发送包的间隔时间为5秒钟

[root@renyz ~]# ping -c 3 -i 5 baidu.com

例子4:指定超时等待时间(到达等待时间自动停止退出)

[root@renyz ~]# ping -w 2 google.com

13. kill

终止进程

-9 强制终止进程

格式:

kill -9 PID(process ID)

默认是 -15 不是立即退出,而是完成自己的工作后再退出!

显示进程:

[root@renyz ~]# ps aux

oot@renyz ~]# ps -ef

例子1:关掉进程

kill -9 1818

14. du

查看文件和目录的大小

-h 人类易读的方式显示文件大小

-s 目录的总大小(summary)

注意:

du查看的是文件占用的block块的大小

ls -lh才是文件的实际大小

例子1:

[root@renyz ~]# du -h anaconda-ks.cfg

4.0K      anaconda-ks.cfg

[root@renyz ~]# ls -lh anaconda-ks.cfg

-rw-------. 1 root root 1.8K 6月  18 16:49 anaconda-ks.cfg

例子2:查看目录总大小

[root@renyz ~]# du -sh /etc

38M       /etc

15. df

显示查看磁盘的大小及挂载点

-h 人类易读的方式显示文件大小

例子1:

[root@renyz ~]# df -h

文件系统              容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root   17G  3.7G   14G  22%  /

devtmpfs              470M    0  470M   0%  /dev

tmpfs                487M     0  487M   0%  /dev/shm

tmpfs                487M  8.5M  478M   2%  /run

tmpfs                487M     0  487M   0%  /sys/fs/cgroup

/dev/sda1            1014M  166M  849M  17%  /boot

tmpfs                 98M   24K   98M   1%  /run/user/0

/dev/sr0               4.3G  4.3G     0  100%  /run/media/root/CentOS 7 x86_64

16. free

显示内存信息

-h 人类易读的方式

-m 以M单位显示

例子1:

[root@renyz ~]# free -hm

total      used     free      shared  buff/cache   available

Mem:   972M    635M    74M      51M    262M      88M

Swap:   2.0G     16M     2.0G

17. date

显示和设置系统时间

例子1:查看时间

[root@renyz ~]# date

2019年 07月 09日 星期二 19:39:28 CST

例子2设置时间

[root@renyz ~]# date -s "2019-7-9 19:42:00"

2019年 07月 09日 星期二 19:42:00 CST

例子3:格式化输出时间

%Y 年

%m 月

%d 天

%H 小时

%M 分钟

%S 秒

[root@renyz ~]# date "+%Y/%m/%d %H:%M:%S"

2019/07/09 19:49:13

例子4:

%F 年月日

%T 时分秒

[root@renyz ~]# date "+%F %T"

2019-07-09 19:50:01


高阶命令进阶

1.      输出重定向

>:覆盖输出,会覆盖掉原先的文件内容

>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加

2>:错误输出,会覆盖掉原先的文件内容

2>>:错误追加输出,会覆盖掉原始文件内容,会在原始内容末尾继续添加

&>:将标准输出与错误输出共同写入到文件中。覆盖原有内容

&>>:将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

例子1:覆盖输出

[root@renyz ~]# echo "123">test

[root@renyz ~]# cat test

123

例子2:追加输出

[root@renyz ~]# echo "2354">>test

[root@renyz ~]# echo "2354">>test

[root@renyz ~]# echo "2354">>test

[root@renyz ~]# cat test

123

2354

2354

2354

例子3:错误覆盖

[root@renyz ~]# ren 2>test

[root@renyz ~]# cat test

bash: ren: 未找到命令...

例子4:错误追加

[root@renyz ~]# ren 2>>test

[root@renyz ~]# ren 2>>test

[root@renyz ~]# cat test

bash: ren: 未找到命令...

bash: ren: 未找到命令...

总结:

要是一个>都是覆盖,只要是两个>>都是追加,无论是正确还是错误输出

例子5:无论是错误的还是正确的都输出倒文件中

[root@renyz ~]# ls &>>test

[root@renyz ~]# cat test

bash: ren: 未找到命令...

bash: ren: 未找到命令...

bash: ren: 未找到命令...

bash: ren: 未找到命令...

anaconda-ks.cfg

initial-setup-ks.cfg

test

2.      输入重定向

<

[root@renyz ~]# wc -l </etc/passwd

44

[root@renyz ~]# wc -l /etc/passwd

44 /etc/passwd

3.      管道符(|

管道命令符(|)的作用是把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入。

一条命令中管道符可以使用多个,只要前面的命令有输出结果,管道符后面的命令即可再执行!

例子1:

[root@renyz ~]# cat /etc/passwd | wc -l

44

例子2:

[root@ken245 ~]# cat /var/log/nginx/access.log | awk ‘{print $1}’ | sort | uniq -c | sort -rn | head -3awa

501 61.148.243.143sor
118 114.242.248.85
110 122.71.224.158

4.      通配符

* 表示匹配的任意内容,可以是0个也可以是很多个字符

? 表示匹配单个字符,必须存在

[] 表示匹配括号里面的任意一个字符

例子1:找到所有以/dev/sda开头的文件

[root@renyz ~]# ls /dev/sda*

/dev/sda  /dev/sda1  /dev/sda2

例子2:找到以/dev/sda开头并且后面跟一个字符的文件

[root@renyz ~]# ls /dev/sda?

/dev/sda1  /dev/sda2

例子3:找到以/dev/sda开头并且后面跟一个数字的文件

[root@renyz ~]# ls /dev/sda[0-9]

/dev/sda1  /dev/sda2

例子4:找到以/dev/sda开头并且后面跟一个字母的文件
[root@renyz ~]# ls /dev/sda[a-z]

/dev/sdae

例子5:

[root@renyz ~]# ls /dev/sda*

/dev/sda  /dev/sda1  /dev/sda2  /dev/sdae  /dev/sdaewef  /dev/sdan  /dev/sdass

[root@renyz ~]# ls /dev/sda[and]

/dev/sdan

注意:

不要把中括号里面的字符当做一个整体,二是匹配中括号里面的单个字符

例子6:删除当前目录中所有以test开头的文件

[root@renyz ~]# ls

abb   anaconda-ks.cfg  ande  efds               sdf   test1

adfe  and              ddd   initial-setup-ks.cfg  test  wqs

[root@renyz ~]# rm -rf test*

[root@renyz ~]# ls

abb   anaconda-ks.cfg  ande  efds                 sdf

adfe  and              ddd   initial-setup-ks.cfg  wqs

5.      一切从“/”开始

在Linux系统中,目录、字符设备、块设备、套接字、打印机等都被抽象成了文件,即“Linux系统中一切都是文件”。既然平时我们打交道的都是文件,那么又应该如何找到它们呢?在Windows操作系统中,想要找到一个文件,我们要依次进入该文件所在的磁盘分区(假设这里是D盘),然后在进入该分区下的具体目录,最终找到这个文件。但是在Linux系统中并不存在C/D/E/F等盘符,Linux系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件,以及定义了常见目录的用途。另外,Linux系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、Root、rooT均代表不同的目录,并且文件名称中不得包含斜杠(/)。Linux系统中的

文件存储结构如图所示:

前文提到的FHS是根据以往无数Linux系统用户和开发者的经验而总结出来的,是用户在Linux系统中存储文件时需要遵守的规则,用于指导我们应该把文件保存到什么位置,以及告诉用户应该在何处找到所需的文件。但是,FHS对于用户来讲只能算是一种道德上的约束,有些用户就是懒得遵守,依然会把文件到处乱放,有些甚至从来没有听说过它。这里并不是号召各位读者去谴责他们,而是建议大家要灵活运用所学的知识,千万不要认准这个FHS协定只讲死道理,不然吃亏的可就是自己了。在Linux系统中,最常见的目录以及所对应的存放内容如表所示。

Linux系统中常见的目录名称以及相应内容

目录名称

应放置文件的内容

/boot

开机所需文件—内核、开机菜单以及所需配置文件等

/dev

以文件形式存放任何设备与接口

/etc

配置文件

/home

用户主目录

/bin

存放单用户模式下还可以操作的命令

/lib

开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数

/sbin

开机过程中需要的命令

/media

用于挂载设备文件的目录

/opt

放置第三方的软件

/root

系统管理员的家目录

/srv

一些网络服务的数据文件目录

/tmp

任何人均可使用的“共享”临时目录

/proc

虚拟文件系统,例如系统内核、进程、外部设备及网络状态等

/usr/local

用户自行安装的软件

/usr/sbin

Linux系统开机时不会使用到的软件/命令/脚本

/usr/share

帮助与说明文件,也可放置共享文件

/var

主要存放经常变化的文件,如日志

/lost+found

当文件系统发生错误时,将一些丢失的文件片段存放在这里

绝对路径vs相对路径

在Linux系统中另外还有一个重要的概念—路径。

路径指的是如何定位到某个文件,分为绝对路径与相对路径。

绝对路径指的是从根目录(/)开始写起的文件或目录名称

相对路径则指的是相对于当前路径的写法。

linux基础之进阶命令二的更多相关文章

  1. Linux基础知识与命令1(su passwd)

    一.Linux的基本原则 1.linux由一个个目的单一的小程序组成,我们一般需要组合小程序来完成复杂的任务 2.Linux的一切都是文件(文件类似于一棵树,包括外设,接口) 3.Linux尽量避免捕 ...

  2. 《Linux基础知识及命令》系列分享专栏

    <Linux基础知识及命令>系列分享专栏 本专题详细为大家讲解了Linux入门基础知识,思路清晰,简单易懂.本专题非常适合刚刚学习Linux的小白来学习,通过学习该专题会让你由入门达到中级 ...

  3. linux 基础知识及命令总结

    1.mkdir   创建目录 -p 创建多级目录  mkdir -p /data/test -m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask -p, ...

  4. Linux 基础教程 42-xargs命令

        xargs是execute arguments的缩写,主要作用是从标准输入中读取内容,并将此内容传递给它要协助的命令,并作为要协助命令的参数来执行. 基本语法 xargs [选项] [命令] ...

  5. Linux 基础——关机重启命令shutdown、reboot等

    一.关机重启命令的作用 相信对于接触过电脑的人来说,特别是对于windows系统来说,如果长时间使用不经重启的话会出现一点点卡顿的感觉.但是当重启整个系统后,这点点卡顿的感觉好像又没了,重启后wind ...

  6. 后端程序员必备的 Linux 基础知识+常见命令(近万字总结)

    大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令. 如果文章有任何需要 ...

  7. 【Linux基础】tr命令替换和删除字符

    1.tr命令 tr可以对来自标准输入的字符进行替换.压缩和删除,可以将一组字符变成另外一组字符.通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其 ...

  8. Linux基础以及简单命令

    1. UNIX是什么 UNIX是一个计算机操作系统,一个用来协调.管理和控制计算机硬件和软件资源的控制程序.特点:多用户和多任务 2. GNU项目与自由软件 GPL条款是为保证GNU软件可以自由地使用 ...

  9. 【Linux基础】ps命令详解

    PS命令介绍 Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动 ...

随机推荐

  1. JavaWeb 补充(XML)

    XML 1. 概念:Extensible Markup Language 可扩展标记语言 可扩展:标签都是自定义的. <user>  <student> 功能: 存储数据   ...

  2. 由电脑专卖系统引发的Java设计模式:访问者模式

    目录 定义 意图 解决问题 何时使用 优缺点 结构 电脑专卖系统 定义 访问者模式是对象的行为型模式,它的目的是封装一些施加于某些数据结构元素之上的操作,一旦这些操作需要修改的话,接收这个操作的数据结 ...

  3. logstash收集springboot日志

    logstash收集springboot日志 maven依赖 <dependency> <groupId>net.logstash.logback</groupId> ...

  4. E - Level K Palindrome

    题目大意: As a token of his gratitude, Takahashi has decided to give Snuke a level-KK palindrome. A leve ...

  5. 『动善时』JMeter基础 — 1、JMeter介绍

    1.什么是JMeter Apache JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试.它最初被设计用于Web应用测试,但后来扩展到其他测试领域. (Apache ...

  6. DVWA之File Inclusion

    File Inclusion File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),req ...

  7. CVE-2012-3569:VMware OVF Tool 格式化字符串漏洞调试分析

    0x01 简介 VMware OVF Tool 是一个命令行实用程序,允许您从许多 VMware 产品导入和导出 OVF 包.在 2.1.0 - 2.1.3 之间的版本中存在格式化字符串漏洞,通过修改 ...

  8. WindowsPE 第七章 资源表

    资源表 在程序设计中,总会设计一些数据.这些数据可能是源代码内部需要用到的常量,菜单选项.界面描述等:也可能是源代码外部的,比如程序的图标文件.北京音乐文件.配置文件等,以上这些数据统称为资源.按照程 ...

  9. Windows PE 第一章 熟悉OD(顺便破解一个小工具)

    熟悉OD(顺便破解一个小工具) 上一节了解了OD的简单使用,这次就练习下,目标是破解一款小软件(入门练手用的,没有壳什么的). 首先我们来看一下这个小软件: 我们的目的是输入任何字符串都可以成功注册, ...

  10. Linux-鸟菜-6-文件与目录管理

    Linux-鸟菜-6-文件与目录管理 这章主要是说一些对目录和文件的增删改查等等命令. .    代表当前目录 ..    代表前一个目录   / 的 . 和 .. 一样 -    代表前一个工作目录 ...