Linux 常用命令(二)

作者:小徐

制作时间:20180601

联系方式:xiaoxubigdata@163.com

1 Linux总结

1.1 概述

Linux是一套免费使用和自由传播的类Unix操作系统(主要用在服务器上),接下来详细的介绍一下linux的一些知识。

1.2 常用的Linux下载网址

Redhat 官网

https://www.redhat.com/en

centos下载

https://www.centos.org/download/

Ubuntu中国官网

https://cn.ubuntu.com/download/

1.3 中国镜像

搜狐镜像

http://mirrors.sohu.com/

163镜像

http://mirrors.163.com/

阿里巴巴镜像

https://opsx.alibaba.com/mirror

2 Linux 目录结构说明

2.1 目录树

2.2目录树介绍

/ :根目录,一般的只存放目录把存放文件

bin & use/bin :存放可执行的二进制文件

boot/:存放linux启动时用到的文件

dev/ :存放linux设备的文件,访问这个目录相当于访问一个设备,常用于挂载磁盘

etc / :系统配置文件存放的目录

home/ :系统默认的用户家的目录,新增用户账号时就会新增一个目录,

lib & user/lib & user/local/lib:系统木人的函数库的目录,程序在执行时,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。

lost+fount/:系统异常产生错误时,会将一些遗失的片段放在此目录下,通常这个装备会自动出现在装置的目录下。

mnt/medis:光盘默认的挂载点,通常挂载于/mnt/cdrom下,也可以用户自己执行目录的挂载点。

opt/:给主机额外安装的所摆放的目录。

proc/:此目录的数据存放在内存中,如系统的核数,外部设备,网络状态,由于数据存放在内存中,所以不占用磁盘的空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、、、、

root/:系统管理员的家目录,系统第一个启动的分区为/,所以最好将root/和/放在一个分区下

srv/:系统启动之后需要启动的数据的目录,例如www服务需要访问的网页存在www内

usr/:应用程序存放的目录,usr/bin存放应用程序,/usr/share/存放共享数据,/usr/lib存放不能直接运行的可以被许多程序运行所必要的函数库文件。

var/:存放系统执行变化中经常变化的文件,如随时更改的日志文件:/var/log

/var/log/message:所有的登录的文件存放目录

/var/spool/mail:邮件的存放的目录

/var/run:程序或服务的启动

建议用户自己安装的软件在opt目录下。

3 VMware安装教程

镜像下载地址:http://pan.baidu.com/s/1dENJjs1 密码:z46s , 如果出现无法连接请联系作者。虚拟机的版本是11,镜像为CentOS-6.7 64 并以此在以下机器上执行操作,或按照以上的中国镜像地址下载镜像。

3.1安装虚拟机

以下为win的环境

3.2在虚拟机中安装Centos

3.2.1安装向导

3.2.2选择硬件兼容模式

3.2.3选择系统所在路径

3.2.4输入用户名与密码

3.2.5设置虚拟机的名字

3.2.6设置虚拟机的核数

3.2.7设置虚拟机的内存

3.2.8设置虚拟机的网络类型

3.2.8.1 网络模式介绍

3.2.8.1.1 桥接模式

桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位(虚拟网卡既不是VMware Network Adepter VMnet1也不是VMware Network Adepter VMnet8)。桥接模式必须要使用交换机或路由器才能和外界通信,此时,虚拟机自身和物理机是相互独立的,处于同等地位,如果虚拟机和物理机的网卡在同一网段,是相互能通信的。

3.2.8.1.2 NAT模式

在NAT网络中,会用到VMware Network Adepter VMnet8虚拟网卡,主机上的VMware Network Adepter VMnet8虚拟网卡被直接连接到VMnet8虚拟交换机上与虚拟网卡进行通信。VMware Network Adepter VMnet8虚拟网卡的作用仅限于和VMnet8网段进行通信,它不给VMnet8网段提供路由功能,所以虚拟机虚拟一个NAT服务器,使虚拟网卡可以连接到Internet。VMware Network Adepter VMnet8虚拟网卡的IP地址是在安装VMware时由系统DHCP指定生成的,我们不要修改这个数值,否则会使主机和虚拟机无法通信。

3.2.8.1.3 仅主机模式

在Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。其实Host-Only网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到Internet。主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1虚拟网卡来实现的。

3.2.9选择磁盘的类型

3.2.10 选择磁盘

3.2.11指定磁盘的大小

3.2.12指定磁盘文件

3.2.13准备创建好磁盘

3.2.14创建好虚拟机并启动

3.2.15修改主机名字

# vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=hadoop1

3.2.16 Linux 网络配置

或者在终端上输入setup 进去到IP的设计界面

3.2.17 给超级管理员设置密码

[hadoop@hadoop1 root]$ su

# passwd

Changing password for user root.

New password:

BAD PASSWORD: it is based on a dictionary word

BAD PASSWORD: is too simple

Retype new password:

3.2.18 秘钥生成以及分发秘钥

3.2.18.1 生成秘钥

# cd /root/

# ssh-keygen

3.2.18.2 传送秘钥

# ssh-copy-id hadoop2

# ssh-copy-id hadoop3

3.2.19 修改时间与日期

3.2.19.1 设置时间

# date -s "2016-09-27 16:40:30"

把时间写入到磁盘

# clock -w

# hwclock -w

3.2.19.2 设置中国区域的时区

# cat /etc/sysconfig/clock

ZONE="America/Los_Angeles"

# tzselect

Please identify a location so that time zone rules can be set correctly.

Please select a continent or ocean.

1) Africa

2) Americas

3) Antarctica

4) Arctic Ocean

5) Asia

6) Atlantic Ocean

7) Australia

8) Europe

9) Indian Ocean

10) Pacific Ocean

11) none - I want to specify the time zone using the Posix TZ format.

#? 5

Please select a country.

1) Afghanistan 18) Israel 35) Palestine

2) Armenia 19) Japan 36) Philippines

3) Azerbaijan 20) Jordan 37) Qatar

4) Bahrain 21) Kazakhstan 38) Russia

5) Bangladesh 22) Korea (North) 39) Saudi Arabia

6) Bhutan 23) Korea (South) 40) Singapore

7) Brunei 24) Kuwait 41) Sri Lanka

8) Cambodia 25) Kyrgyzstan 42) Syria

9) China 26) Laos 43) Taiwan

10) Cyprus 27) Lebanon 44) Tajikistan

11) East Timor 28) Macau 45) Thailand

12) Georgia 29) Malaysia 46) Turkmenistan

13) Hong Kong 30) Mongolia 47) United Arab Emirates

14) India 31) Myanmar (Burma) 48) Uzbekistan

15) Indonesia 32) Nepal 49) Vietnam

16) Iran 33) Oman 50) Yemen

17) Iraq 34) Pakistan

#? 9

Please select one of the following time zone regions.

1) east China - Beijing, Guangdong, Shanghai, etc.

2) Heilongjiang (except Mohe), Jilin

3) central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.

4) most of Tibet & Xinjiang

5) west Tibet & Xinjiang

#? 1

The following information has been given:

China

east China - Beijing, Guangdong, Shanghai, etc.

Therefore TZ='Asia/Shanghai' will be used.

Local time is now: Sat Dec 31 22:25:15 CST 2016.

Universal Time is now: Sat Dec 31 14:25:15 UTC 2016.

Is the above information OK?

1) Yes

2) No

#? 1

You can make this change permanent for yourself by appending the line

TZ='Asia/Shanghai'; export TZ

to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you

can use the /usr/bin/tzselect command in shell scripts:

Asia/Shanghai

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# hwclock

# date

Sat Dec 31 23:09:50 CST 2016

写入到本地的时间,输入yes覆盖本地的文件

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3.2.19.3 使用ntpdate同步时间

# ntpdate asia.pool.ntp.org 或 # ntpdate 210.72.145.44

3.2.20查看当前的月份

# cal

December 2016

Su Mo Tu We Th Fr Sa

1 2 3

4 5 6 7 8 9 10

11 12 13 14 15 16 17

18 19 20 21 22 23 24

25 26 27 28 29 30 31

3.2.21 天假其他机器名字到本机

添加时以tab键分割,也可以配置多个映射

# vi /etc/hosts

192.168.215.314 hadoop1

192.168.215.135 hadoop2

192.168.215.136 hadoop3

4 Linux 克隆机器

4.1选择机器进行克隆

4.2 进行克隆

4.3查看克隆完毕

4.4修改名字

# vi /etc/sysconfig/network

4.5修改网卡

# vi /etc/udev/rules.d/70-persistent-net.rules

4.7删除eth0网卡的UUID

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

4.8 重启机器即可

# reboot

5 Linux 文件权限介绍

5.1 查看文件属性

# cd /var/

# ll

drwxr-xr-x. 2 root root 4096 Oct 28 15:36 account

drwxr-xr-x. 2 root root 4096 Sep 23 2011 games

drwxrwx--T. 2 root gdm 4096 Oct 15 2014 gdm

drwxr-xr-x. 36 root root 4096 Nov 18 07:50 lib

drwxr-xr-x. 2 root root 4096 Sep 23 2011 local

drwxrwxr-x. 5 root lock 4096 Nov 20 18:39 lock

drwxr-xr-x. 11 root root 4096 Nov 20 05:57 log

lrwxrwxrwx. 1 root root 10 Oct 28 15:28 mail -> spool/mail

drwxr-xr-x. 2 root root 4096 Sep 23 2011 nis

drwxrwxrwt. 2 root root 4096 Nov 19 04:49 tmp

drwxr-xr-x. 6 root root 4096 Nov 19 06:53 www

drwxr-xr-x. 2 root root 4096 Sep 23 2011 yp

-rw-r--r--. 1 root root 131335162 Nov 18 06:24 pa.bin

5.2 权限介绍

如上第一个红色的有不同的含义:d代表目录,L代表链接,—代表文件。1-3位数字代表文件所有者的权限,4-6位数字代表同组用户的权限,7-9数字代表其他用户的权限。

而具体的权限是由数字来表示的,读取的权限等于4,用r表示;写入的权限等于2,用w表示;执行的权限等于1,用x表示;

通过4、2、1的组合,得到以下几种权限:0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)

rwx ----> 4 + 2 +1 = 7

r-x ----> 4 + 0 + 1 = 5

r--. ----> 4 + 0 = 4

6 Linux 常用命令汇总

6.1 常用名列表

查看一下命令那个不会,请自觉百度学习

awk / arch /

bc /

cp / clock -w / chmod / chkconfig / cal / cut /chmod / cat / crotable / clean /

date / diff / df / du -sh /

echo / exit /

find / free / fdisk -l /

gzip / Grep /

Help / histroy / head / hostname /

ifconfig / init

kill /

ls / less / locate /logout / lastlog / lscpu / ln / lscpu / lsblk / lspci

mv / mkdir / more / make && make install /

nl / netstat -ntlp /

Pwd / ping / ps /

Reboot / rm -rf / rpm /

scp / ssh-keygen / ssh-copy-id / setup / Shutdown / server /sh /sed / sync / su / sudo / sort /

tar / tail -f / top /tac / tree / tzselect /

useradd / users / useradd / userdel / ulimit / uname / unzip /

vi /

wget / who / which / wc /

yum /

zip /

tail -f : 小f跟踪文件的唯一index的就算文件修改了名字后也是跟踪的原来的文件。

tail -F :按照文件的名字来跟踪。

具体的用法可以访问:http://man.linuxde.net/ 或者链接:http://pan.baidu.com/s/1slCn4O9 密码:rscu 如果无法下载请联系作者。

6.2 常用学习网站

http://man.linuxde.net/

http://www.runoob.com/linux/linux-tutorial.html

https://linux.linuxidc.com/

http://www.cnblogs.com/jary-wang/archive/2013/04/22/3036105.html

http://cb.vu/unixtoolbox_zh_CN.xhtml#traffic

7 磁盘管理相关命令

7.1 df 命令

7.2.1 命令介绍

显示磁盘的相关信息,例如磁盘的大小,挂载磁盘的一些信息

7.2.2 参数说明

-a 包含全部的文件系统。

-h 或--human-readable 以可读性较高的方式来显示信息。

-H 或--si 与-h 参数相同,但在计算时是以 1000 Bytes 为换算单位而非 1024 Bytes。

-i 或--inodes 显示 inode 的信息。

-k 或--kilobytes 指定区块大小为 1024 字节。

-l 或--local 仅显示本地端的文件系统。

-m 或--megabytes 指定区块大小为 1048576 字节。

--no-sync 在取得磁盘使用信息前,不要执行 sync 指令,此为预设值。

-P 或--portability 使用 POSIX 的输出格式。

--sync 在取得磁盘使用信息前,先执行 sync 指令。

-t<文件系统类型>或--type=<文件系统类型> 仅显示指定文件系统类型的磁盘信息。

-T 或--print-type 显示文件系统的类型。

-x<文件系统类型>或--exclude-type=<文件系统类型> 不要显示指定文件系统类型的磁盘信息。

--help 显示帮助。

--version 显示版本信息。

7.2.3 常用命令

7.2.3.1 显示全部的文件系统信息

# df -a

Filesystem 1K-blocks Used Available Use% Mounted on

rootfs 52403200 2327740 50075460 5% /

proc 0 0 0 - /proc

sysfs 0 0 0 - /sys

devtmpfs 883440 0 883440 0% /dev

*********

7.2.3.2 以可读的单位显示信息

按照不同的大小显示信息

# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/ol-root 50G 2.3G 48G 5% /

devtmpfs 863M 0 863M 0% /dev

tmpfs 873M 0 873M 0% /dev/shm

**********

或用df -H 命令

7.2.3.3 以小单位显示信息

以下命令不常用

# df -k

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/mapper/ol-root 52403200 2327740 50075460 5% /

devtmpfs 883440 0 883440 0% /dev

*********

7.2 du 命令

7.2.1 命令介绍

显示系统目录或文件的大小

7.2.2 参数说明

-a 或-all 显示目录中个别文件的大小。

-b 或-bytes显示目录或文件大小时,以byte为单位。

-c 或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。

-D 或--dereference-args 显示指定符号连接的源文件大小。

-h 或--human-readable 以 K,M,G 为单位,提高信息的可读性。

-H 或--si 与-h 参数相同,但是 K,M,G 是以 1000 为换算单位。

-k 或--kilobytes 以 1024 bytes 为单位。

-l 或--count-links 重复计算硬件连接的文件。

-L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。

-m 或--megabytes 以 1MB 为单位。

-s 或--summarize 仅显示总计。

-S 或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。

-x 或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。

--exclude=<目录或文件> 略过指定的目录或文件。

--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。

--help 显示帮助。

--version 显示版本信息。

7.2.3 常用命令

7.2.3.1 迭代显示文件的详细信息

# du -a

4 ./test1/test.sh

4 ./test1

0 ./test2

0 ./test3

4 .

7.2.3.2 显示文件的占用大小

是以当前目录开始显示的

# du -sh

4.0K .

# du -s

# du -h

7.2.3.3 查看文件夹占用的大小

制定文件夹显示大小

# du test1/

4test1/

7.3 dd 命令

7.3.1 命令介绍

对文件的复制并把文件数据进行格式化处理

7.3.2 参数说明

bs=<字节数>:将ibs(输入)与欧巴桑(输出)设成指定的字节数;

cbs=<字节数>:转换时,每次只转换指定的字节数;

conv=<关键字>:指定文件转换的方式;

count=<区块数>:仅读取指定的区块数;

ibs=<字节数>:每次读取的字节数;

obs=<字节数>:每次输出的字节数;

of=<文件>:输出到文件;

seek=<区块数>:一开始输出时,跳过指定的区块数;

skip=<区块数>:一开始读取时,跳过指定的区块数;

--help:帮助;

--version:显示版本信息。

7.3.3 常用命令

7.3.3.1 创建一个1M的文件到本地

# dd if=/dev/zero of=sun.txt bs=1M count=1

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.000826962 s, 1.3 GB/s

if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。

of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。

bs 代表字节为单位的块大小。

count 代表被复制的块数。

/dev/zero 是一个字符设备,会不断返回0值字节(\0)。

1.3 GB/s 表示当前写入的速度

7.4 free 命令

7.4.1 命令详解

此命令主要显示内存的一些信息

7.4.2 参数说明

-b 以 Byte 为单位显示内存使用情况。

-k 以 KB 为单位显示内存使用情况。

-h 以可读的单位显示大小

-m 以 MB 为单位显示内存使用情况。

-o 不显示缓冲区调节列。

-s<间隔秒数> 持续观察内存使用状况。

-t 显示内存总和列。

-V 显示版本信息。

7.4.3 常用命令

7.4.3.1 以可读的单位显示内存

从以下中可以详细的看出内存的信息

# free -h

total:内存的总数量

used:已经使用的内存数量

free:空闲的内存数量

shared:当前已经废弃不用

buffers Buffer:缓存内存数

cached Page:缓存内存数

7.4.3.2 以MB为单位显示

以下现实的是以MB为单位显示的

# free -m

7.5 mount 命令

7.5.1 命令详解

此命令主要是对文件系统的挂载与卸载的操作

7.5.2 参数说明

-V:显示程序版本

-l:显示已加载的文件系统列表

-h:显示帮助信息并退出

-v:冗长模式,输出指令执行的详细信息

-n:加载没有写入文件"/etc/mtab"中的文件系统

-r:将文件系统加载为只读模式

-a:加载文件“/etc/fstab”中描述的所有文件系统

-t:限制文件系统类型的集合

-auto:当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto

7.5.3 常用命令

7.5.3.1 挂载目录

把/dev/cdrom目录下的文件挂载到/mnt/cdrom下

# mount -t auto /dev/cdrom /mnt/cdrom

7.6 umount 命令

7.6.1 命令详解

此命令主要卸载文件

7.6.2 参数说明

-a:卸除/etc/mtab中记录的所有文件系统

-h:显示帮助

-n:卸除时不要将信息存入/etc/mtab文件中

-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统

-t<文件系统类型>:仅卸除选项中所指定的文件系统

-v:执行时显示详细的信息

-V:显示版本信息

7.6.3 常用命令

通过设备名卸载

# umount -v /dev/sda1

/dev/sda1 umounted

通过挂载点卸载

# umount -v /mnt/mymount/

/tmp/diskboot.img umounted

如果电脑上安装的是CD请使用一下命令弹出CD软盘

# eject /dev/cdrom

8 压缩管理相关命令

8.1 unzip & zip 命令

8.1.1 命令详解

此命令主要解压zip为后缀的压缩文件

8.1.2 参数说明

8.1.2.1 unzip 命令参数说明

-f 更新现有的文件。

-l 显示压缩文件内所包含的文件。

-t 检查压缩文件是否正确,但不解压。

-d <目录> 指定文件解压缩后所要存储的目录。

-Z unzip -Z等 于执行zipinfo指令。

8.1.2.2 zip 命令参数说明

-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。

-r 递归处理,将指定目录下的所有文件和子目录一并处理。

-x 压缩时排除符合条件的文件。

-d 从压缩文件内删除指定的文件。

-D 压缩文件内不建立目录名称。

-c 替每个被压缩的文件加上注释。

8.1.3 常用命令

# mkdir shellShell

# cd shellShell

# vi test1.txt

# vi test2.txt

8.1.3.1 解压zip文件

# unzip apache-maven-3.5.3-bin.zip

8.1.3.2 解压文件到制定的目录

# unzip apache-maven-3.5.3-bin.zip -b /home/software/

8.1.3.3 压缩文件

# zip -r apache-maven-3.5.3.zip apache-maven-3.5.3

-r 代表迭代的意思

8.1.3.4 删除压缩包中的文件

$ zip -d shellShell.zip shellShell/test2.txt

deleting: shellShell/test2.txt

注意删除的路径问题

8.1.3.5 添加文件到压缩包中

以下命令是把shellShell文件夹添加到apache-maven-3.5.3-bin.zip压缩包中

$ zip -m apache-maven-3.5.3-bin.zip shellShell

***********

adding: shellShell/ (stored 0%)

8.1.3.6 排除某个文件到压缩包中

以下命令是排除shellShell/test1.txt文件到压缩包中

$ zip -r shellShell.zip shellShell/ -x shellShell/test1.txt

*******

adding: shellShell/ (stored 0%)

adding: shellShell/test2.txt (stored 0%)

8.1.3.7 查看压缩包中的文件

# unzip -l apache-maven-3.5.3-bin.zip

************

0 2018-06-06 14:20 shellShell/

8.1.3.8

8.1.3.8 检查文件的完整性

$ unzip -t shellShell.zip

Archive: shellShell.zip

testing: shellShell/ OK

testing: shellShell/test1.txt OK

testing: shellShell/test2.txt OK

No errors detected in compressed data of shellShell.zip.

8.1.3.9 查看压缩文件的完整性

$ unzip -Z shellShell.zip

Archive: shellShell.zip

Zip file size: 526 bytes, number of entries: 3

drwxr-xr-x 3.0 unx 0 bx stor 18-Jun-06 14:20 shellShell/

-rw-r--r-- 3.0 unx 7 tx defN 18-Jun-06 14:20 shellShell/test1.txt

-rw-r--r-- 3.0 unx 12 tx stor 18-Jun-06 14:20 shellShell/test2.txt

3 files, 19 bytes uncompressed, 18 bytes compressed: 5.3%

在以上的信息中可以看出文件的个数以及占用大小和压缩率

8.2 tar 命令详解

8.2.1 命令详解

tar 命令主要是对文件的操作,如解压与压缩操作

8.2.2 参数说明

-j:支持bzip2解压文件

-z或--gzip或--ungzip,通过gzip指令处理备份文件

-Z或--compress或--uncompress,通过compress指令处理备份文件

-x或--extract或--get:从备份文件中还原文件

-v:显示操作过程

-f<备份文件>或--file=<备份文件>:指定备份文件

-c或--create:建立新的备份文件

-C <目录>:制定需要解压的目录路径

8.2.3 常用命令

8.2.3.1 打包文件但不压缩

$ tar -cvf shellShell.tar shellShell/

shellShell/

shellShell/test1.txt

shellShell/test2.txt

8.2.3.2 以gzip压缩方式打包文件

$ tar -zcvf shellShell.gz shellShell/

shellShell/

shellShell/test1.txt

shellShell/test2.txt

8.2.3.3 以bzip2形式压缩

$ tar -jcvf shellShell.tar.bz2 shellShell/

shellShell/

shellShell/test1.txt

shellShell/test2.txt

8.2.3.4查看压缩包中的文件

$ tar -ztvf shellShell.tar.gz

drwxr-xr-x xiaoxu/xiaoxu 0 2018-06-06 14:20 shellShell/

-rw-r--r-- xiaoxu/xiaoxu 7 2018-06-06 14:20 shellShell/test1.txt

-rw-r--r-- xiaoxu/xiaoxu 12 2018-06-06 14:20 shellShell/test2.txt

8.2.3.5 解压压缩包中的制定的文件

$ tar -zxvf shellShell.tar.gz shellShell/test2.txt

shellShell/test2.txt

8.2.3.6 解压全部的文件

$ tar -zxvf shellShell.tar.gz

8.2.3.7 解压全部的文件制定解压的路径

$ tar -zxvf shellShell.tar.gz -C /home/

-C:是制定解压的路径

8.3 bunzip2 命令详解

8.3.1 命令详解

bunzip2命令解压缩由bzip2指令创建的”.bz2”压缩包

8.3.2 参数说明

-f或--force:解压缩时,若输出的文件与现有文件同名时,预设不会覆盖现有的文件;

-k或—keep:在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数;

-s或—small:降低程序执行时,内存的使用量;

-v或—verbose:解压缩文件时,显示详细的信息;

-l,--license,-V或——version:显示版本信息。

-d : 解压后缀为bz2的文件

8.3.3 常用命令

8.3.3.1 压缩文件,并设置压缩率为9

$ bzip2 -9vk apache-maven-3.5.3-bin.zip

apache-maven-3.5.3-bin.zip: 1.003:1, 7.980 bits/byte, 0.25% saved, 8958105 in, 8935477 out.

$ ls

apache-maven-3.5.3-bin.zip.bz2

8.3.3.2 解压bz2的文件

$ bunzip2 -d apache-maven-3.5.3-bin.zip.bz2

8.4 split 命令详解

8.4.1 命令详解

此命令主要是对大文件进行分割

8.4.2 参数说明

-b : 按照制定的单位单位分割文件,例如K,M,G

-l : 按照多少行分割文件

-C: 与-b参数类似,但切割时尽量维持每行数据的完整性

8.4.3 常用命令

8.4.3.1 按照制定的大小分割文件

# split -b 1M splittest.log

# ls

splittest.log xaa

8.4.3.2 按照行数分割文件

# split -l 100 splittest.log

# ls

xaa xae xai xam xaq xau xay xbc xbg xbk xbo xbs

***********

可以看到文件都是以x开头的,第二个字母是按照字典的顺序排序的

9 进程管理相关命令

9.1 top 命令

9.1.1 命令详解

top 命令能实时查看系统的运行情况,其中包括Mem,swap,cpu等详细信息

9.1.2 参数说明

h:显示帮助画面,给出一些简短的命令总结说明

k:终止一个进程

i:忽略闲置和僵死进程,这是一个开关式命令

q:退出程序

r:重新安排一个进程的优先级别

S:切换到累计模式

s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s

f或者F:从当前显示中添加或者删除项目

o或者O:改变显示项目的顺序

l:切换显示平均负载和启动时间信息

m:切换显示内存信息

t:切换显示进程和CPU状态信息

c:切换显示命令名称和完整命令行

M:根据驻留内存大小进行排序

P:根据CPU使用百分比大小进行排序

T:根据时间/累计时间进行排序

d:设置查询的时间间隔

u:查看某个用户的进程信息

P:以进程号显示详细信息

9.1.3 常用命令

9.1.3.1 使用top命令查看详细信息

# top

top - 17:40:53 up 3:38, 1 user, load average: 0.28, 0.22, 0.19

Tasks: 223 total, 1 running, 190 sleeping, 0 stopped, 0 zombie

%Cpu(s): 16.1 us, 2.1 sy, 0.0 ni, 81.6 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 3073508 total, 92104 free, 1862180 used, 1119224 buff/cache

KiB Swap: 2097148 total, 2097148 free, 0 used. 991416 avail Mem

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

1472 xiaoxu 20 0 3118552 378696 97524 S 29.4 12.3 25:48.93 gnome-shell

1332 xiaoxu 20 0 477548 121604 46768 S 5.9 4.0 4:05.39 Xorg

1 root 20 0 159644 8976 6696 S 0.0 0.3 0:01.95 systemd

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

4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H

6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq

********************************

top - 17:40:53 : top命令执行的时间

up 3:38 : 运行的时间

1 user:当前登录用户的个数

load average: 0.28, 0.22, 0.19 : 代表系统1分钟,5分钟,15分钟的负载情况,系统会每隔一段时间统计一次,如果数值高于5说明系统处于高负载的运转了。

Tasks: 223 total, 1 running, 190 sleeping, 0 stopped, 0 zombie 当前系统总共的进程数,1个运行的,190个休眠的,0个停止的,0冻结进程数。

%Cpu(s): 16.1 us, 2.1 sy, 0.0 ni, 81.6 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st : 16.1用户占用的CPU百分比,2.1sy内核空间占用CPU的比例。

KiB Mem : 3073508 total, 92104 free, 1862180 used, 1119224 buff/cache :3073508 total 内存的总量, 1862180 used使用的物理内存的总量,92104 free 空闲的内存总量,1119224 buff/cache作为内核的缓存的内存量。

9.1.3.2 查看制定用户的信息

以下是查看xiaoxu用户的进程信息

# top -u xiaoxu

9.1.3.3 制定ID号查看该进程的详细信息

1515 为进程号

# top -p 1515

9.2 ps 命令

9.2.1 命令详解

此命令主要快速查找正在运行的进程,方便查看进程或杀掉进程

9.2.2 参数说明

-A, -e :显示所有的进程

-f :所有的格式,包括命令行

-a:显示现行终端机下的所有程序,包括其他用户的程序

-u:以用户为主的格式来显示程序状况

x :显示所有程序,不以终端机来区分

-u, U, 按照用户过滤当前用户的进程

-p, p, --pid :session的ID

9.2.3 常用命令

9.2.3.1 查看正在运行的进程

以下标红的为当前程序的进程号,可以直接kill掉

$ ps -ef|grep tomcat

xiaoxu 4810 1271 8 09:54 pts/2 00:00:05 /opt/jdk1.8/bin/java -Djava.util.logging.config.file=/home/xiaoxu/software/tomcat-7.0.88/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /home/xiaoxu/software/tomcat-7.0.88/bin/bootstrap.jar:/home/xiaoxu/software/tomcat-7.0.88/bin/tomcat-juli.jar -Dcatalina.base=/home/xiaoxu/software/tomcat-7.0.88 -Dcatalina.home=/home/xiaoxu/software/tomcat-7.0.88 -Djava.io.tmpdir=/home/xiaoxu/software/tomcat-7.0.88/temp org.apache.catalina.startup.Bootstrap start

xiaoxu 4954 2614 0 09:55 pts/0 00:00:00 grep --color=auto tomcat

$ ps -aux|grep tomcat

xiaoxu 4810 14.1 4.0 2728436 123256 pts/2 Sl 09:54 0:05 /opt/jdk1.8/bin/java -Djava.util.logging.config.file=/home/xiaoxu/software/tomcat-7.0.88/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /home/xiaoxu/software/tomcat-7.0.88/bin/bootstrap.jar:/home/xiaoxu/software/tomcat-7.0.88/bin/tomcat-juli.jar -Dcatalina.base=/home/xiaoxu/software/tomcat-7.0.88 -Dcatalina.home=/home/xiaoxu/software/tomcat-7.0.88 -Djava.io.tmpdir=/home/xiaoxu/software/tomcat-7.0.88/temp org.apache.catalina.startup.Bootstrap start

9.2.3.2 查找比较高的CPU/MEM程序并排序

以下查看cpu比较高的并排序

$ ps -aux --sort -pcpu

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

xiaoxu 1432 10.4 11.4 3102780 353220 tty2 Sl+ 09:34 6:04 /usr/bin/gnome-shell

xiaoxu 3538 2.6 7.3 1248892 225156 tty2 SLl+ 09:46 1:13 /opt/google/chrome/chrome

*********

以下查看MEM比较高的并排序

$ ps -aux --sort -pmem

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

xiaoxu 1432 10.5 11.4 3101756 352700 tty2 Rl+ 09:34 6:21 /usr/bin/gnome-shell

xiaoxu 3538 2.6 7.3 1248892 225084 tty2 SLl+ 09:46 1:16 /opt/google/chrome/chrome

*********

9.2.3.3 所有正在运行进程的详尽列表

以下命令会按照树形的结构列出进程的详细信息

# ps -auxefw

9.3 who 命令

9.3.1 命令详解

显示当前用户登录的信息

9.3.2 参数说明

-a : 显示所有的登录信息

-b : 显示系统最近启动的时间

-d : 显示系统已经死去的进程

-H: 以标题头的形式显示登录信息

-l : 打印最近系统用户登录的进程

-q或--count:只显示登入系统的帐号名称和总人数;

9.3.3 常用命令

9.3.3.1 以标题的形式查看登录的信息

# who -H

NAME LINE TIME COMMENT

xiaoxu :0 2018-06-07 09:34 (:0)

9.3.3.2 显示系统最近启动的时间

# who -b

system boot 2018-06-07 09:33

9.3.3.3 显示所有的登录信息

# who -a

system boot 2018-06-07 09:33

xiaoxu ? :0 2018-06-07 09:34 ? 1289 (:0)

run-level 5 2018-06-07 09:34

9.4 nohup 命令

9.4.1 命令详解

此命令主要用于把进程放在后台运行

9.4.2 参数说明

--help:在线帮助;

--version:显示版本信息

9.4.3 常用命令

9.4.3.1 后台运行某个脚本的命令

# nohup sh test.sh >> test.log

9.4.3.2 后台运行java程序

# nohup java -jar test.jar >> test.log 2 > &1 &

9.5 kill 命令

9.5.1 命令详解

赐名主要对运行中的程序或进程进行杀掉,拿板砖的那种,你懂得

9.5.2 参数说明

-a:当处理当前进程时,不限制命令名和进程号的对应关系;

-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;

-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;

-s <信息名称或编号>:指定要送出的信息;

-u:指定用户。

HUP 1 终端断线

INT 2 中断(同 Ctrl + C)

QUIT 3 退出(同 Ctrl + \)

TERM 15 终止

KILL 9 强制终止

CONT 18 继续(与STOP相反, fg/bg命令)

STOP 19 暂停(同 Ctrl + Z)

9.5.3 常用命令

9.5.3.1 杀掉进程

# ps -ef|grep tomcat

# kill -9 <processID>

9.6 crontab 命令

9.6.1 命令详解

此命令主要用于系统中的定时任务,

9.6.2 参数说明

-e :编辑当前用户的定时任务

-l:查看当前用户的定时任务

-r:删除定钱用户的定时任务

-i:在删除用户任务之前提示用户确认是否删除

*/5(minute 0-59) *(hour 0-23) *(day of month 1-31) *(month 1-12) *(day of week 0-6)

9.6.3 常用命令

9.6.3.1 命令格式

* * * * * command

分 时 日 月 周 命令

9.6.3.2 查看当前用户的任务

# crontal -l

No crontab for xiaoxu

9.6.3.3 创建任务

在电脑上行第一次执行crontab是需要用户选择编辑的模式,一般的选择3的vi模式,详情如下所示,如果想改变执行的模式请使用select-editor选择

# crontab -e

Select an editor. To change later, run 'select-editor'.

1. /bin/ed

2. /bin/nano <---- easiest

3. /usr/bin/vim.basic

4. /usr/bin/vim.tiny

Choose 1-4 [2]: 3

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每天的 21:30 重启 apache

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每月 1、10、22 日的 4 : 45 重启 apache。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每周六、周日的 1 : 10 重启 apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示在每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每星期六的 11 : 00 pm 重启 apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart

每一小时重启 apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

晚上 11 点到早上 7 点之间,每隔一小时重启 apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

每月的 4 号与每周一到周三的 11 点重启 apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

一月一号的 4 点重启 apache

9.6.3.4 删除任务

以下是删除全部的任务

# crontab -r

删除部分任务

# crontab -e

选择不需要执行的即可

9.7 renice 命令

9.7.1 命令详解

此命令可以调整程序的优先权,取值的范围在-20到20之间,其中-20位最大值,20位最小值,只有root用户可以为其他用户设置优先级别,也可以设置负数等操作。

9.7.2 参数说明

-g : 设置该进程所属组的程序的优先级

-p:改变进程的优先级别,此职位预设值

-u:制定用户的名称,修改所属改组程序的优先级

-h:显示此帮助

-V: 显示版本信息

9.7.3 常用命令

9.7.3.1 修改级别

以下操作需要在root的用户下操作,0为程序默认的级别

# ps -axl | grep tomcat

0 1000 4675 1303 20 0 2771444 96308 futex_ Sl pts/0 0:03 /opt/jdk1.8/bin/java -Djava.util.logging.config.file=/home/xiaoxu/software/tomcat-7.0.88/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /home/xiaoxu/software/tomcat-7.0.88/bin/bootstrap.jar:/home/xiaoxu/software/tomcat-7.0.88/bin/tomcat-juli.jar -Dcatalina.base=/home/xiaoxu/software/tomcat-7.0.88 -Dcatalina.home=/home/xiaoxu/software/tomcat-7.0.88 -Djava.io.tmpdir=/home/xiaoxu/software/tomcat-7.0.88/temp org.apache.catalina.startup.Bootstrap start

0 0 4821 4810 20 0 21536 1092 pipe_w S+ pts/0 0:00 grep --color=auto tomcat

把以下级别调整为5,1303位程序的进程ID

# renice 5 -p 1303

4810 (process ID) old priority 0, new priority 5

9.8 htop 命令使用

9.8.1命令介绍

htop 命令类似于top命令,只不过此命令把一些详细的信息展示出来了,界面更美观

9.8.2参数说明

PID:进行的标识号

USER:运行此进程的用户

PRI:进程的优先级

NI:进程的优先级别值,默认的为0,可以进行调整

VIRT:进程占用的虚拟内存值

RES:进程占用的物理内存值

SHR:进程占用的共享内存值

S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态

CPU:该进程占用的CPU使用率

MEM:该进程占用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间

COMMAND:进程启动的启动命令名称

9.8.3常用命令

htop官网:http://sourceforge.net/projects/htop/

# yum install -y htop

# htop

其他的操作按F1 进行查看

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN技术头条

一组 Redis 实际应用中的异常场景及其根因分析和解决方案

在上一场 Chat《基于 Redis 的分布式缓存实现方案及可靠性加固策略》中,我已经较为全面的介绍了 Redis 的原理和分布式缓存方案。如果只是从“会用”的...

42930
来自专栏程序员宝库

vue-cli 脚手架中 webpack 配置基础文件详解

vue-cli是构建vue单页应用的脚手架,输入一串指定的命令行从而自动生成vue.js+wepack的项目模板。这其中webpack发挥了很大的作用,它使得我...

29030
来自专栏流柯技术学院

nmon指标

nmon [ -s < seconds > ] [ -c < count > ] [ -b ] [ -B ] [ -g < filename > ] [ -k ...

19820
来自专栏前端布道

HTML5离线应用与客户端存储

支持离线 Web 应用开发是 HTML5 的另一个重点。所谓离线 Web 应用,就是在设备不能上网的情况下仍然可以运行的应用。

13910
来自专栏Web项目聚集地

三周学会小程序第五讲:登录的原理和实现

前面我们耗费在环境搭建上面已经很多时间,这一讲开始真正的和小程序功能对接。 登录便是小程序的开始,小程序可以方便的使用微信登录,获取用户的个人信息,这样我们就能...

13920
来自专栏流柯技术学院

Bug管理工具之Mantis_配置篇

角色 管理员、经理、开发人员、修改人员、报告人员、查看人员,权限从大到小递减。 分配:

32120
来自专栏刘望舒

Android系统启动流程(三)解析SyetemServer进程启动过程

前言 上一篇我们学习了Zygote进程,并且知道Zygote进程启动了SyetemServer进程,那么这一篇我们就来学习Android7.0版本的Syetem...

23360
来自专栏博岩Java大讲堂

Java日志体系(log4j2)

46990
来自专栏云计算

腾讯云支持 Terraform 开发实践

这篇文章从系统架构开始,到核心库讲解,到实践开发,再到单元测试,比较完整的描述了支持Terraform的开发全过程。

4.8K180
来自专栏coding...

Mac下使用Jenkins踩坑 Fastlane自动化iOS打包写在前面使用FastlaneJenkins 踩坑后记

最近项目在做新项目时经常发现有很多小bug需要改动,一改就要重新打包,哪怕是一个很小的项目,光是编译打包导出,再上传到测试平台没个十几分钟也是下不来的。本来的话...

22530

扫码关注云+社区

领取腾讯云代金券