第391集系统入门-Linux系统基础命令
|字数总计:4.2k|阅读时长:17分钟|阅读量:
系统入门 - Linux系统基础命令
1. 系统目录结构
几乎所有的计算机操作系统都是用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件, 而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树的分支, 所以该结构又被称为”目录树”。
Linux系统中也沿用了这种文件结构, 所有目录和文件都在 “根目录”下, 目录名为”/“。FHS(文件系统层次标准)定义了在根目录下的主要目录以及每个目录应该存放什么文件。
Linux系统主要目录说明
| 目录 |
说明 |
/etc |
系统重要配置文件, 以及常用服务配置文件 |
/var |
存放系统引导启动时产生的可变文件,文件通常动态更改的,例如: 缓存目录,日志文件 |
/run |
系统启动后, 运行的程序产生的运行时数据, 包括进程的pid文件,锁文件等 |
/home |
普通用户的主目录, 普通用户的家目录默认为/HOME/USERNAME |
/root |
超级管理员的主目录, 普通用户无权操作 |
/tmp |
存放临时文件, 一般存放超过10天以上都会自动删除,可以更改删除临时文件的期限 |
/boot |
存放系统引导时候需要的文件 |
/dev |
存放设备文件 |
/usr |
安装的软件, 共享库, 重要的子目录有 |
/usr/bin |
用户命令目录 |
/usr/sbin |
管理员命令目录 |
/usr/local |
本地自定义安装的软件 |
注意: 在Linux7系统中, /bin, /sbin, /lib, /lib64都以软链接的形式链接到/usr/目录下,例如:
/bin –> /usr/bin
/sbin –> /usr/sbin
lib -> usr/lib
lib64 -> usr/lib64
2. 文件路径定位
路径的作用:定位文件具体位置信息
- 你要在那里创建什么文件?
- 你要将什么文件复制到什么地方?
- 你要删除的文件在什么地方?
2.1 特殊目录: (.)和(..)
在每个目录下, 都会固定存在两个特殊目录, 分别是一个点(.)和两个(..)的目录。一个点代表当的是当前目录, 两个点代表的是当前目录的上层目录。注意: 在Linux下所有以点开始的文件都是”隐藏文件”, 对于这类文件, 只使用命令ls -l是看不到的, 必须要使用ls -la才可以看到,如下所示:
1 2 3 4 5
| [root@liyanzhao ~] [root@liyanzhao opt]
[root@liyanzhao opt] . ..
|
2.2 绝对路径
Linux系统采用了目录树的文件组织结构, 在Linux下每个目录或文件都可以从根目录处开始寻找, 比如: /usr/bin目录。这种从根目录开始的全路径被称为”绝对路径”, 绝对路径一定是以 “/“ 开头的。
如何确认当前所在的目录, 可以使用pwd命令查看:
1 2
| [root@liyanzhao ~] /root
|
2.3 相对路径
相对路径, 关键点在于当前在什么路径下。假设当前目录在/usr/local下, 那么它的上层目录(/usr目录)可以用../表示, 而/usr/local的下层目录(src)则可以用./src表示。所谓的(.)和(..)目录实际上也是属于相对路径
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| //进入/opt目录 [root@liyanzhao ~] [root@liyanzhao opt] total 76 drwxr-xr-x. 2 root root 69632 Dec 4 11:00 . dr-xr-xr-x. 33 root root 4096 Dec 4 10:40 ..
//进入当前目录 [root@liyanzhao opt]
//显示当前目录 [root@liyanzhao opt] /opt
//进入当前目录的上层目录 [root@liyanzhao opt]
//进入上层目录,也就是/目录 [root@liyanzhao /] /
|
cd命令常见用法
| 命令 |
说明 |
cd . |
表示用户所处的当前目录 |
cd .. |
表示上级目录 |
cd ~ |
表示当前用户自己的家目录 |
cd - |
切换上次所在目录 |
cd ~ |
切换至当前用户家目录 |
cd |
切换至当前用户家目录 |
cd . |
.代表当前目录,一般在拷贝、移动等情况下使用 |
cd .. |
切换至当前目录的上级目录 |
3. 目录管理命令
3.1 目录创建命令mkdir
常用选项:
-p: 递归创建目录,如果父目录不存在则创建
-v: 显示创建过程
3.2 以树状显示目录结构命令tree
4. 文件管理命令
Linux一切皆为文件, 在对Linux进行配置时, 很大程度上就是处理文件的过程, 所以掌握文件的相关操作是非常有必要的。下面我们介绍如何对文件进行, 创建、删除、移动、重命名, 以及查看文件内容, 至于如何编辑文件, 在后面具体介绍编辑器的时候在做详细阐述。
4.1 文件创建命令touch
4.2 文件时间stat
1 2 3 4 5 6 7 8 9 10
| [root@test-example ~] File: 'test.txt' Size: 2 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 67335626 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2018-01-21 12:12:48.949097044 +0800 Modify: 2018-01-21 12:12:35.243302963 +0800 Change: 2018-01-21 12:12:35.243302963 +0800 Birth: -
|
文件时间说明:
- 访问时间(atime): 查看内容
- 修改时间(mtime): 修改内容
- 改变时间(ctime): 文件属性,比如权限
- 删除时间(dtime): 文件被删除的时间
4.3 文件目录复制命令cp
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
| cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE...
//将name文件复制至/tmp目录中
//如果复制过想保持原文件名,不修改名称
//如果复制过想保持原来的属性, -p保持原文件或目录的属性
//复制目录只需要使用-r参数, 递归复制
//将多个文件拷贝同一个目录
//备份文件
|
常用选项:
-r: 递归复制目录
-v: 显示详细过程
-p: 保持原文件属性
-f: 强制复制
4.4 文件目录移动命令mv
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE...
//移动文件至tmp目录
//移动文件至tmp目录并修改名称为file_test
//移动目录至/tmp目录下
//移动多个文件或多个目录至同一个目录
|
4.5 文件目录删除命令rm
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
| rm [OPTION]... FILE...
-r 递归 -f 强制删除 -v 详细过程
//删除文件, 默认会提醒是否删除文件
//强制删除文件, 不提醒
//删除目录,会提醒
//强制删除目录,不提醒
//示例
. .. .file4
//示例2
|
5. 文件查看命令
5.1 cat - 查看文件内容
1 2 3 4 5 6 7 8 9 10
| cat /etc/passwd
cat -n /etc/passwd
cat >> liyanzhao.txt <<EOF test EOF
|
5.2 head - 查看文件头部内容
1 2 3 4 5
| head /etc/passwd
head -n5 /etc/passwd
|
5.3 tail - 查看文件尾部内容
1 2 3 4 5
| tail /etc/passwd
tail -f /var/log/messages
|
5.4 more - 分页查看文件内容
5.5 less - 分页查看文件内容
6. 文件下载命令
6.1 wget - 文件下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| wget http://www.baidu.com
wget -O baidu.html http://www.baidu.com
wget -T 30 http://www.baidu.com
wget -q http://www.baidu.com
wget --spider http://www.baidu.com
|
6.2 curl - 文件下载
1 2 3 4 5
| curl -o baidu.html http://www.baidu.com
curl -O http://www.baidu.com
|
6.3 rz/sz - 文件上传下载
1 2 3 4 5 6 7 8
| yum install lrzsz
rz
sz filename
|
7. 命令查找命令
7.1 locate - 查找文件或者目录
1 2 3 4 5
| locate /etc/sh
locate -i /etc/sh
|
7.2 which - 查找命令绝对路径
7.3 whereis - 查找命令相关文件
1 2 3 4 5 6 7 8
| whereis ls
whereis -b ls
whereis -m ls
|
8. 字符处理命令
8.1 使用sort排序
很多情况下需要对无序的数据进行排序, 这时就需要用到sort排序了。
1 2 3 4 5 6
| sort [OPTION]… [FILE]…
-r:倒序 -n:按数字排序 -t:指定分隔符(默认空格) -k:指定第几列, 指定几列几字符(指定1,1 3.1,3.3)
|
示例:
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 32 33 34 35 36 37 38 39 40
| //演示sort的用法, 首先创建一个文件: [root@liyanzhao ~] b:3 c:2 a:4 e:5 d:1 f:11 EOF
//下面对输出的内容进行排序: [root@liyanzhao ~] a:4 b:3 c:2 d:1 e:5 f:11
//可观察到, sort文件具有一个特点, 第一个字符是字母, 第三个字符是数字, 中间是用冒号隔开。 //这样我们可以使用-t指定分隔符, 使用-k指定用于排序的列了。
[root@liyanzhao ~] d:1 f:11 //第二行为什么是11?不应该按照顺序排列? c:2 b:3 a:4 e:5
//按照排序的方式, 只会看到第一个字符,11的第一个字符是1, 按照字符来排序确实比2小。 //如果想要按照数字的方式进行排序, 需要使用 -n参数。
[root@liyanzhao ~] d:1 c:2 b:3 a:4 e:5 f:11
|
测试案例: 对下面内容进行排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 192.168.3.1 00:0F:AF:81:19:1F 192.168.3.2 00:0F:AF:85:6C:25 192.168.3.3 00:0F:AF:85:70:42 192.168.2.20 00:0F:AF:85:55:DE 192.168.2.21 00:0F:AF:85:6C:09 192.168.2.22 00:0F:AF:85:5C:41 192.168.0.151 00:0F:AF:85:6C:F6 192.168.0.152 00:0F:AF:83:1F:65 192.168.0.153 00:0F:AF:85:70:03 192.168.1.10 00:30:15:A2:3B:B6 192.168.1.11 00:30:15:A3:23:B7 192.168.1.12 00:30:15:A2:3A:A1 192.168.1.1 00:0F:AF:81:19:1F 192.168.2.2 00:0F:AF:85:6C:25 192.168.3.3 00:0F:AF:85:70:42 192.168.2.20 00:0F:AF:85:55:DE 192.168.1.21 00:0F:AF:85:6C:09 192.168.2.22 00:0F:AF:85:5C:41 192.168.0.151 00:0F:AF:85:6C:F6 192.168.1.152 00:0F:AF:83:1F:65 192.168.0.153 00:0F:AF:85:70:03 192.168.3.10 00:30:15:A2:3B:B6 192.168.1.11 00:30:15:A3:23:B7 192.168.3.12 00:30:15:A2:3A:A1
|
解决方案: 针对第三列的第一个字符,第四列的第一个字符到第三个字符排序才是正确
8.2 使用uniq删除重复内容
如果文件中有多行完全相同的内容, 当前是希望能删除重复的行,同时还可以统计出完全相同的行出现的总次数, 那么就可以使用uniq命令解决这个问题(但是必须配合sort使用)。
1 2 3
| uniq [OPTION]… [INPUT [OUTPUT]]
-c 计算重复的行
|
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| //演示uniq的用法, 首先创建一个文件: [root@liyanzhao ~] abc 123 abc 123
//uniq需要和sort一起使用, 先使用sort排序, 让重复内容连续在一起 [root@liyanzhao ~] 123 123 abc abc
//使用uniq去除相邻重复的行 [root@liyanzhao ~] 123 abc
//使用-c参数, 能统计出文件中每行内容重复的次数 [root@liyanzhao ~] 2 123 2 abc
|
8.3 使用cut命令截取某一个字段
1 2 3 4 5
| cut OPTION… [FILE]…
-d:指定分隔符 -f:数字,取第几列 –f3,6三列和6列 -c:按字符取(空格也算)
|
示例:
1 2 3 4 5 6 7 8 9
| //测试数据, 过滤出文件里 liyanzhao以及552408925
//实践思路
|
此类问题是运维工作中最常见的问题。可以演变成分析日志,查看TCP各个状态连接数,查看单IP连接数排名等
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| [root@student tmp] http://www.liyanzhao.com/index.html http://www.liyanzhao.com/1.html http://post.liyanzhao.com/index.html http://mp3.liyanzhao.com/index.html http://www.liyanzhao.com/3.html http://post.liyanzhao.com/2.html
[root@student tmp] 3 www.liyanzhao.com 2 post.liyanzhao.com 1 mp3.liyanzhao.com
[root@student tmp] 3 www.liyanzhao.com 2 post.liyanzhao.com 1 mp3.liyanzhao.com
|
8.4 使用wc统计
1 2 3 4 5 6 7 8
| wc - print newline, word, and byte counts for each file 显示文件的行、单词与字节统计信息
wc [OPTION]… [FILE]…
-l:显示文件行数 -c:显示文件字节 -w:显示文件单词
|
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13
| //统计fstab有多少行 [root@student ~] 15 /etc/fstab
//显示/etc/services 文件行号 [root@student ~] 10774 /etc/services
//扩展方法 [root@student ~] [root@student ~] [root@student ~] [root@student ~]
|
9. 练习如下命令
用普通用户身份登陆虚拟机上完成练习
练习步骤
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
| touch ~/song{1..6}.mp3
mkdir -p ~/Music mv ~/song{1..6}.mp3 ~/Music/
mkdir ~/friends ~/family ~/work
cd ~/friends cp ~/Music/song{1..3}.mp3 .
cd ~/family mv ~/Music/song{4..6}.mp3 .
cd ~
rm -rf ~/family
cd ~/friends rm -f *
cd ~ rm -rf ~/friends
|
完整命令序列
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| touch ~/song{1..6}.mp3
mkdir -p ~/Music && mv ~/song{1..6}.mp3 ~/Music/
mkdir ~/friends ~/family ~/work
cp ~/Music/song{1..3}.mp3 ~/friends/
mv ~/Music/song{4..6}.mp3 ~/family/
cd ~ && rm -rf ~/family
rm -f ~/friends/*
rm -rf ~/friends
|
10. 命令总结
10.1 目录管理命令
| 命令 |
功能 |
常用选项 |
mkdir |
创建目录 |
-p 递归创建, -v 显示过程 |
tree |
树状显示目录 |
-L 指定层级 |
cd |
切换目录 |
. 当前目录, .. 上级目录, ~ 家目录 |
pwd |
显示当前目录 |
|
10.2 文件管理命令
| 命令 |
功能 |
常用选项 |
touch |
创建文件 |
|
cp |
复制文件/目录 |
-r 递归, -v 详细, -p 保持属性 |
mv |
移动/重命名 |
|
rm |
删除文件/目录 |
-r 递归, -f 强制, -v 详细 |
stat |
查看文件信息 |
|
10.3 文件查看命令
| 命令 |
功能 |
常用选项 |
cat |
查看文件内容 |
-n 显示行号 |
head |
查看文件头部 |
-n 指定行数 |
tail |
查看文件尾部 |
-f 实时监控 |
more |
分页查看 |
|
less |
分页查看 |
|
10.4 字符处理命令
| 命令 |
功能 |
常用选项 |
sort |
排序 |
-r 倒序, -n 数字排序, -t 分隔符, -k 指定列 |
uniq |
去重 |
-c 统计重复次数 |
cut |
截取字段 |
-d 分隔符, -f 字段, -c 字符 |
wc |
统计 |
-l 行数, -c 字节, -w 单词 |