duzhuo's-blog

学无止境

Linux 文件压缩和解压

关键词:tar, gzip, zip, unzip

1. Linux 文件压缩和解压要点

  • 压缩和解压 tar 文件 - 使用 tar
  • 压缩和解压 gz 文件 - 使用 gzip
  • 压缩和解压 zip 文件 - 分别使用 zipunzip

2. 命令常见用法

2.1. tar

tar 命令可以为 linux 的文件和目录创建档案。利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar 最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用 tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

参考:http://man.linuxde.net/tar

示例:

1
2
3
4
5
6
7
tar -cvf log.tar log2012.log            # 仅打包,不压缩
tar -zcvf log.tar.gz log2012.log # 打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 log2012.log # 打包后,以 bzip2 压缩

tar -ztvf log.tar.gz # 查阅上述 tar 包内有哪些文件
tar -zxvf log.tar.gz # 将 tar 包解压缩
tar -zxvf log30.tar.gz log2013.log # 只将 tar 内的部分文件解压出来

2.2. gzip

阅读全文 »

Linux 文件内容查看编辑

关键词:cat, head, tail, more, less, sed, vi, grep

1. Linux 文件内容查看编辑要点

  • 连接文件并打印到标准输出设备 - 使用 cat
  • 显示指定文件的开头若干行 - 使用 head
  • 显示指定文件的末尾若干行,常用于实时打印日志文件内容 - 使用 tail
  • 显示文件内容,每次显示一屏 - 使用 more
  • 显示文件内容,每次显示一屏 - 使用 less
  • 自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等 - 使用 sed
  • 文本编辑器 - 使用 vi
  • 使用正则表达式搜索文本,并把匹配的行打印出来 - 使用 grep

2. 命令常见用法

2.1. cat

cat 命令用于连接文件并打印到标准输出设备上。

参考:http://man.linuxde.net/cat

示例:

1
2
3
cat m1              # 在屏幕上显示文件 ml 的内容
cat m1 m2 # 同时显示文件 ml 和 m2 的内容
cat m1 m2 > file # 将文件 ml 和 m2 合并后放入文件 file 中

2.2. head

阅读全文 »

Linux 硬件管理

关键词:df, du, top, free, iotop

1. Linux 硬件管理要点

  • 查看磁盘空间 - 使用 df
  • 查看文件或目录的磁盘空间 - 使用 du
  • 实时查看系统整体运行状态(如:CPU、内存) - 使用 top
  • 查看已使用和未使用的内存 - 使用 free
  • 查看磁盘 I/O 使用状况 - 使用 iotop

2. 命令常见用法

2.1. df

df 命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为 KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

参考:http://man.linuxde.net/df

示例:

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
# 查看系统磁盘设备,默认是 KB 为单位
[root@LinServ-1 ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda2 146294492 28244432 110498708 21% /
/dev/sda1 1019208 62360 904240 7% /boot
tmpfs 1032204 0 1032204 0% /dev/shm
/dev/sdb1 2884284108 218826068 2518944764 8% /data1

# 使用 -h 选项以 KB 以上的单位来显示,可读性高
[root@LinServ-1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 140G 27G 106G 21% /
/dev/sda1 996M 61M 884M 7% /boot
tmpfs 1009M 0 1009M 0% /dev/shm
/dev/sdb1 2.7T 209G 2.4T 8% /data1

# 查看全部文件系统
[root@LinServ-1 ~]# df -a
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda2 146294492 28244432 110498708 21% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
devpts 0 0 0 - /dev/pts
/dev/sda1 1019208 62360 904240 7% /boot
tmpfs 1032204 0 1032204 0% /dev/shm
/dev/sdb1 2884284108 218826068 2518944764 8% /data1
none 0 0 0 - /proc/sys/fs/binfmt_misc

2.2. du

阅读全文 »

查看 Linux 命令帮助信息

Linux 中有非常多的命令,想全部背下来是很困难的事。所以,我认为学习 Linux 的第一步,就是了解如何快速检索命令说明。

关键词:help, whatis, info, which, whereis, man

1. 查看 Linux 命令帮助信息的要点

  • 查看 Shell 内部命令的帮助信息 - 使用 help
  • 查看命令的简要说明 - 使用 whatis
  • 查看命令的详细说明 - 使用 info
  • 查看命令的位置 - 使用 which
  • 定位指令的二进制程序、源代码文件和 man 手册页等相关文件的路径 - 使用 whereis
  • 查看命令的帮助手册(包含说明、用法等信息) - 使用 man
  • 只记得部分命令关键字 - 使用 man -k

注:推荐一些 Linux 命令中文手册:

2. 命令常见用法

2.1. help

help 命令用于查看 Shell 内部命令的帮助信息。而对于外部命令的帮助信息只能使用 man 或者 info 命令查看。

参考:http://man.linuxde.net/help

2.2. whatis

whatis 用于查询一个命令执行什么功能。

参考:http://man.linuxde.net/whatis

阅读全文 »

Linux 网络管理

关键词:curl, wget, telnet, ip, hostname, ifconfig, route, ssh, ssh-keygen, firewalld, iptables, host, nslookup, nc/netcat, ping, traceroute, netstat

1. Linux 网络应用要点

  • 下载文件 - 使用 curlwget
  • telnet 方式登录远程主机,对远程主机进行管理 - 使用 telnet
  • 查看或操纵 Linux 主机的路由、网络设备、策略路由和隧道 - 使用 ip
  • 查看和设置系统的主机名 - 使用 hostname
  • 查看和配置 Linux 内核中网络接口的网络参数 - 使用 ifconfig
  • 查看和设置 Linux 内核中的网络路由表 - 使用 route
  • ssh 方式连接远程主机 - 使用 ssh
  • 为 ssh 生成、管理和转换认证密钥 - 使用 ssh-keygen
  • 查看、设置防火墙(Centos7),使用 firewalld
  • 查看、设置防火墙(Centos7 以前),使用 iptables
  • 查看域名信息 - 使用 host, nslookup
  • 设置路由 - 使用 nc/netcat
  • 测试主机之间网络是否连通 - 使用 ping
  • 追踪数据在网络上的传输时的全部路径 - 使用 traceroute
  • 查看当前工作的端口信息 - 使用 netstat

2. 命令常见用法

2.1. curl

curl 命令是一个利用 URL 规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称 curl 为下载工具。作为一款强力工具,curl 支持包括 HTTP、HTTPS、ftp 等众多协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl 可以祝一臂之力。

参考:http://man.linuxde.net/curl

示例:

1
2
3
4
5
6
# 下载文件
$ curl http://man.linuxde.net/text.iso --silent

# 下载文件,指定下载路径,并查看进度
$ curl http://man.linuxde.net/test.iso -o filename.iso --progress
########################################## 100.0%

2.2. wget

阅读全文 »

Linux 软件管理

关键词:rpm, yum, apt-get

1. rpm

rpm 命令是 RPM 软件包的管理工具。rpm 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

参考:http://man.linuxde.net/rpm

示例:

(1)安装 rpm 包

1
rpm -ivh xxx.rpm

(2)安装.src.rpm 软件包

这类软件包是包含了源代码的 rpm 包,在安装时需要进行编译

1
2
3
4
5
6
7
rpm -i xxx.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -bp xxx.specs #一个和你的软件包同名的specs文件
cd /usr/src/redhat/BUILD/xxx/ #一个和你的软件包同名的目录
./configure #这一步和编译普通的源码软件一样,可以加上参数
make
make install
阅读全文 »

Linux 系统管理

关键词:lsb_release, reboot, exit, shutdown, date, mount, umount, ps, kill, systemctl, service, crontab

1. Linux 系统管理要点

  • 查看 Linux 系统发行版本
    • 使用 lsb_release(此命令适用于所有的 Linux 发行版本)
    • 使用 cat /etc/redhat-release(此方法只适合 Redhat 系的 Linux)
  • 查看 CPU 信息 - 使用 cat /proc/cpuinfo
  • 重新启动 Linux 操作系统 - 使用 reboot
  • 退出 shell,并返回给定值 - 使用 exit
  • 关闭系统 - 使用 shutdown
  • 查看或设置系统时间与日期 - 使用 date
  • 挂载文件系统 - 使用 mount
  • 取消挂载文件系统 - 使用 umount
  • 查看系统当前进程状态 - 使用 ps
  • 删除当前正在运行的进程 - 使用 kill
  • 启动、停止、重启、关闭、显示系统服务(Centos7),使用 systemctl
  • 启动、停止、重启、关闭、显示系统服务(Centos7 以前),使用 service
  • 管理需要周期性执行的任务,使用 crontab

2. 命令常见用法

2.1. lsb_release

lsb_release 不是 bash 默认命令,如果要使用,需要先安装。

安装方法:

  1. 执行 yum provides lsb_release,查看支持 lsb_release 命令的包。
  2. 选择合适版本,执行类似这样的安装命令:yum install -y redhat-lsb-core-4.1-27.el7.centos.1.x86_64

2.2. reboot

阅读全文 »

Linux 用户管理

关键词:groupadd, groupdel, groupmod, useradd, userdel, usermod, passwd, su, sudo

1. Linux 用户管理要点

  • 创建用户组 - 使用 groupadd
  • 删除用户组 - 使用 groupdel
  • 修改用户组信息 - 使用 groupmod
  • 创建用户 - 使用 useradd
  • 删除用户 - 使用 userdel
  • 修改用户信息 - 使用 usermod
  • 设置用户认证信息 - 使用 passwd
  • 切换用户 - 使用 su
  • 当前用户想执行没有权限执行的命令时,使用其他用户身份去执行 - 使用 sudo

2. 命令常见用法

2.1. groupadd

groupadd 命令用于创建一个新的用户组,新用户组的信息将被添加到系统文件中。

参考:http://man.linuxde.net/groupadd

示例:

1
2
# 建立一个新组,并设置组 ID 加入系统
$ groupadd -g 344 jsdigname

2.2. groupdel

阅读全文 »

Linux 典型运维应用

💡 如果没有特殊说明,本文的案例都是针对 Centos 发行版本。

网络操作

无法访问外网域名

(1)在 hosts 中添加本机实际 IP 和本机实际域名的映射

1
echo "192.168.0.1 hostname" >> /etc/hosts

如果不知道本机域名,使用 hostname 命令查一下;如果不知道本机实际 IP,使用 ifconfig 查一下。

(2)配置信赖的 DNS 服务器

执行 vi /etc/resolv.conf ,添加以下内容:

1
2
nameserver 114.114.114.114
nameserver 8.8.8.8
阅读全文 »

时间服务器 - NTP

一、NTP 简介

网络时间协议(英语:Network Time Protocol,缩写:NTP)是在数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的一个网络协议,位于 OSI 模型的应用层。自 1985 年以来,NTP 是目前仍在使用的最古老的互联网协议之一。NTP 由特拉华大学的 David L. Mills(英语:David L. Mills)设计。

NTP 意图将所有参与计算机的协调世界时(UTC)时间同步到几毫秒的误差内

NTP 要点:

  • 地球共有 24 个时区,而以格林威治时间 (GMT) 为标准时间;
  • 中国本地时间为 GMT +8 小时;
  • 最准确的时间为使用原子钟 (Atomic clock) 所计算的,例如 UTC (Coordinated Universal Time) 就是一例;
  • Linux 系统本来就有两种时间,一种是 Linux 以 1970/01/01 开始计数的系统时间,一种则是 BIOS 记载的硬件时间;
  • Linux 可以透过网络校时,最常见的网络校时为使用 NTP 服务器,这个服务启动在 udp port 123
  • 时区档案主要放置于 /usr/share/zoneinfo/ 目录下,而本地时区则参考 /etc/localtime
  • NTP 服务器为一种阶层式的服务,所以 NTP 服务器本来就会与上层时间服务器作时间的同步化, 因此 nptdntpdate 两个指令不可同时使用;
  • NTP 服务器的联机状态可以使用 ntpstatntpq -p 来查询;
  • NTP 提供的客户端软件为 ntpdate 这个指令;
  • 在 Linux 下想要手动处理时间时,需以 date 设定时间后,以 hwclock -w 来写入 BIOS 所记录的时间。
  • NTP 服务器之间的时间误差不可超过 1000 秒,否则 NTP 服务会自动关闭。

更多 NTP 详情可以参考:鸟哥的 Linux 私房菜– NTP 时间服务器

二、ntpd 服务

环境:CentOS

yum 安装

阅读全文 »
0%