- 掌握命令格式,包括命令字,选项和参数等
- 掌握查看命令帮助的方法
- 熟练使用 Linux 增删改查命令
命令进阶说明
命令格式
尝试分析命令cp -r class/ /root/bak
。
cp | -r | class/ | /root/bak |
---|---|---|---|
命令字 | [-选项] | [文件1 或者目录1] | [文件2 或目录2] |
命令格式说明:
- 中括号中的内容不是必须的。
- 选项代表命令的特殊功能,通常情况下,“-” 引导选项的功能。
- 命令执行基本逻辑:一条命令以什么样的方式操作谁。
- 命令字、选项、文件或目录之间需要有空格区分,不建议文件名或目录名中有空格,如果有,需要用引号。
- 选项和文件对于命令字来说不是必须要加的。
命令帮助手册
通过man 命令可以查看命令帮助手册,例如,man cp
。
man 命令操作说明:
操作 | 功能 |
---|---|
q | 退出 |
空格 | 翻页 |
回车 | 翻行 |
/-r | 搜索-r 关键字 |
n | 下一个关键字 |
b | 上一个关键字 |
其他命令示例:
命令 | 说明 |
---|---|
cp -r | |
rm -rf | |
mkdir -p | 根据需要建立父目录,如果父目录存在也不会报错 |
也可以通过--help 参数获取命令帮助信息,但是信息没有man 命令看到的全面。例如,ls --help
。
统计命令
命令速查
命令 | 含义 |
---|---|
more | 分页查看文件内容 |
less | 交互式逐行查看文件内容 |
head | 查看文件头10行(默认) |
tail | 查看文件后10行(默认) |
grep | 匹配文件内容中含有关键字的行 |
du | 统计目录内容大小 |
wc | 统计文件内容 |
alias | 命令别名建立 |
find | 查找文件或目录等 |
[root@localhost ~]# head -n 3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost ~]# tail -n 3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
ajest:x:1000:1000:AJEST:/home/ajest:/bin/bash
[root@localhost ~]# more /etc/passwd
[root@localhost ~]# less /etc/passwd
[root@localhost ~]# grep "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# grep -n 'root' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# grep -i 'ROOT' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#
统计目录
在Linux 中目录的大小和目录所占磁盘空间的大小是有区别。
[root@localhost ~]# ls -alhd /root
dr-xr-x---. 14 root root 4.0K Feb 22 11:57 /root
[root@localhost ~]# ls -alhd /boot
dr-xr-xr-x. 5 root root 4.0K Feb 20 05:38 /boot
[root@localhost ~]# du -sh
4.2M .
[root@localhost ~]# du -sh /boot
125M /boot
[root@localhost ~]#
查找
Linux 系统中,可以通过find 命令查找文件或者目录。find 在Linux 使用过程中出现频率极高。
查找名字为passwd
的文件。
[root@localhost ~]# find / -name passwd
/etc/pam.d/passwd
/etc/passwd
/usr/bin/passwd
/usr/share/bash-completion/completions/passwd
[root@localhost ~]# find / -name passwd -type d
[root@localhost ~]# find / -name passwd -type f
/etc/pam.d/passwd
/etc/passwd
/usr/bin/passwd
/usr/share/bash-completion/completions/passwd
[root@localhost ~]#
查找大小100M 以上的文件。
find / -size +100M
查找小于10M 的文件。
find /boot -size -10M
vim 编辑器
- 掌握vim 编辑器用法
Vim,编辑器之神。使用vim 编辑器进行编辑文件的时候,双手不需要离开键盘。Vim 编辑文件时,如果需要编辑的文件存在,则打开该文件,如果需要编辑的文件不存在,则创建该文件。
工作模式
命令模式
/ \
i / [esc] \ [:]
/ \
输入模式 末行模式
注意:
- 打开一个文件的时候,默认就是命令模式。
- 输入模式无法直接切换到末行模式
命令模式
- 光标的移动
- 复制、粘贴、剪切、撤销等操作
- 搜索字符串
- ....
相关操作 | 说明 |
---|---|
gg | 快速跳转到第一行 |
G | 快速跳转到最后一行 |
2G 2gg | 快速跳转到第2 行 |
8→ | 向右侧移动8 个字符 |
yy | 复制当前行 |
p | 将复制内容,粘贴到当前行下 |
dd | 删除当前行 3dd 删除包括当前行及以下一共3 行内容 |
u | 撤销上一次编辑 |
/root | 查找root 关键字 |
输入模式
从命令模式进入输入模式,可以通过以下按键进入。
i
a
o
从输入模式进入命令模式。
esc
末行模式
末行模式主要进行文档的保存退出等操作。
常见用法 | 说明 |
---|---|
:wq | 保存退出 |
:q! | 强制退出 |
:set nu | 显示行号 |
:set nonu | 取消显示行号 |
:s/root/AJEST/g | 在当前行查找root 并替换成AJEST |
:10 s/root/AJEST/g | 在第10 行中查找root,并替换为AJEST |
:1,10 s/root/AJEST/g | 在第1 行到第10 行中查找root,并替换为AJEST |
:% s/root/AJEST/g | 在文档中所有位置查找root 并替换成AJEST |
:r /etc/passwd | 将/etc/passwd 文件内容读取到当前文件中 |
:! whoami | 调用bash 命令 |
vim 练习
在/tmp 目录中建立一个名为man_db.conf 的文件。
cd /tmp
touch man_db.conf
vim man_db.conf
在/tmp/man_db.conf 文件中读取/etc/man_db.conf 的内容,并删除第一个空白行。
# 末行模式
:r /etc/man_db.conf
# 命令模式
1G
dd
设定显示行号。
:set nu
移动到第58 行并且向右移动5 个字符,会看到privileges。
58G 快速跳转第58 行
5→ 向右移动5 个字符
移动到第一行并向下搜索displayed 字符串,出现在106 行。
/displayed
将50 - 100 行小写的man 替换成大写的MAN。
:50,100 s/man/MAN/g
替换完成后恢复。
u
复制65 - 73 行内容并且粘贴到最后一行下面。
65G 跳转到65 行
9yy 复制当前光标及以下一共9 行
G 跳转到最后一行
p 粘贴在当前行下
或
:65,73 y
删除21 - 42 行内容。
:21,42 d
将文件另存为man.test。
:w man_db.test
将27 行删除21 个字符,如成功应该光标停留在all 的位置。
27G
21x
在第一行上面新增一行内容为i am a good student
。
gg
i 进入输入模式
存储并退出。
:wq
压缩与解压缩
- 理解压缩与解压缩操作
- 掌握tar 命令的用法
准备工作
查看文件类型
通过file 命令,可以查看文件类型。
[root@localhost ~]# file /boot/symvers-3.10.0-862.el7.x86_64.gz
/boot/symvers-3.10.0-862.el7.x86_64.gz: gzip compressed data, from Unix, last modified: Sat Apr 21 00:56:42 2018, max compression
[root@localhost ~]#
dd
读取硬盘字节内容,主要完成磁盘对拷。生成一个100M 大小的文件。
[root@localhost ~]# cd /tmp
[root@localhost tmp]# ls -lh /dev/zero
crw-rw-rw- 1 root root 1, 5 Feb 21 23:56 /dev/zero
[root@localhost tmp]# dd if=/dev/zero of=bigfile bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.17657 s, 594 MB/s
[root@localhost tmp]#
选项 | 说明 |
---|---|
if | 输入内容 |
of | 输出位置 |
bs | 单位(1M) |
count | 数量 |
压缩解压缩
命令测试 | 说明 |
---|---|
gzip bigfile | gzip 压缩文件 |
gunzip bigfile.gz | |
bzip2 bigfile | bzip2 压缩文件 |
bunzip2 bigfile.bz2 |
Linux 系统中,gzip 和bzip2 两个压缩命令只能压缩文件。
打包压缩
Linux 中,要压缩目录,需要先将其打包成文件。打包就将目录变成一个文件。
tar
打包命令:
命令选项 | 说明 |
---|---|
tar -cf class.tar class/ | 打包备份目录 |
tar -zcf class.tar.gz class/ | 打包压缩成gzip 格式 |
tar -jcf class.tar.bz2 class/ | 打包压缩成bz2 格式 |
tar -tf class.tar.bz2 | 不解压缩,查看文件内容 |
tar -xf class.tar.bz2 -C /opt | 将压缩文件解压到指定目录 -C 制定目标路径 -xf 无视压缩类型,解压文件 * 不能用-fx |
软件安装
- 熟悉源码包安装软件的流程步骤
- 熟悉rpm 包安装软件
- 掌握yum 源安装软件的方法
源码包安装
Apache Httpd
尝试安装Web 服务,在Linux 中叫httpd。压缩包名字httpd-2.2.15.tar.gz
。
解压缩:
[root@localhost tmp]# tar xf httpd-2.2.15.tar.gz
[root@localhost tmp]#
查看安装方法:
[root@localhost tmp]# cd httpd-2.2.15/
[root@localhost httpd-2.2.15]# ls
ABOUT_APACHE config.layout INSTALL NOTICE srclib
acinclude.m4 configure InstallBin.dsp NWGNUmakefile support
Apache.dsw configure.in LAYOUT os test
build docs libhttpd.dsp README VERSIONING
BuildAll.dsp emacs-style LICENSE README.platforms
BuildBin.dsp httpd.dsp Makefile.in README-win32.txt
buildconf httpd.spec Makefile.win ROADMAP
CHANGES include modules server
[root@localhost httpd-2.2.15]# cat INSTALL
...
$ ./configure --prefix=PREFIX
$ make
$ make install
$ PREFIX/bin/apachectl start
...
[root@localhost httpd-2.2.15]#
步骤 | 命令过程 | 说明 |
---|---|---|
1 | ./configure --prefix=/usr/local/httpd_2.2.15 | 生成makefile 文件, 进行编译配置指定安装路径。 |
2 | make | 进行编译 |
3 | make install | 将编译好的文件拷贝到安装目录 |
4 | /usr/local/httpd_2.2.15/bin/apachectl start | 启动httpd 服务 |
5 | netstat -anptl | grep "80" | 查看80 端口是否开放 |
configure 命令说明:
--prefix 指定安装路径
--disable-* 默认安装
--enable-* 默认不安装
Apache httpd 服务管理:
./apachectl {start|stop|restart}
Apache Httpd 目录分析:
Httpd 目录 | 说明 |
---|---|
bin | 命令目录 |
htdocs | Web 根目录 |
conf | 配置文件目录 |
特点
- 软件源码大多数都是C 语言写的;
- 源码一般都是压缩包;
- 可以跨平台安装;
- 更新速度快;
- 安装过于繁琐,需要编译;
- 需要指定安装哪些功能。
软件包安装
特点
- 安装便捷;
- bug 少;
- 更新速度慢;
- 不能指定安装功能和安装路径。
- 不支持跨平台安装。
Debian deb
RedHat rpm RedHat Package Manager
- 安装包路径,光盘中的Packages 文件夹。
- 查找安装包
[root@localhost ~]# ls /misc/cd/Packages/ | grep "^tree"
tree-1.6.0-10.el7.x86_64.rpm
[root@localhost ~]#
安装rpm 软件包
序号 | 安装步骤 | 命令 |
---|---|---|
1 | 确认系统中是否安装过某个软件 | rpm -qa rpm -qa | wc -l rpm -qa | grep "tree" |
2 | 确认软件的作用 | rpm -qpi tree-1.6.0-10.el7.x86_64.rpm |
3 | 列出软件包中文件和路径 | rpm -qpl tree-1.6.0-10.el7.x86_64.rpm |
4 | 安装软件 | rpm -ivh tree-1.6.0-10.el7.x86_64.rpm |
5 | 卸载软件 | rpm -e tree |
参数解释:
-q --query QUERYING PACKAGES
-a --all query/verify all packages
-p --package query/verify a package file
-i --install install package(s)
-l --list List files in package.
-v --verbose provide more detailed output
依赖关系
[root@localhost Packages]# rpm -e vim-common
error: Failed dependencies:
vim-common = 2:7.4.160-4.el7 is needed by (installed) vim-enhanced-2:7.4.160-4.el7.x86_64
[root@localhost Packages]#
解决依赖关系问题:
- 软件依赖关系列表保存在光盘中
- 使用yum 源工具指定光盘所在路径
- 通过yum 源工具安装卸载带有依赖关系的软件
yum 源安装软件
通过yum 安装软件需要配置yum 源,yum 源的目录/etc/yum.repos.d/。所有的yum 源文件都是以.repo 结尾的。配置yum 源,就是要修改yum 源配置文件,修改配置文件之前,可以考虑将原有配置文件备份。可以创建一个bak 目录,将原配置文件全部移动其中。
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv * bak
mv: cannot move ‘bak’ to a subdirectory of itself, ‘bak/bak’
[root@localhost yum.repos.d]#
配置yum 源
告诉yum 工具,软件包在哪里?
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim localDVD.repo
[root@localhost yum.repos.d]# cat localDVD.repo
[localDVD.repo]
name=localDVD
baseurl=file:/misc/cd
gpgcheck=0
[root@localhost yum.repos.d]#
yum 命令
常用命令 | 说明 |
---|---|
yum clean all | 清除缓存 |
yum install tree | 安装tree 工具 |
yum remove tree | 卸载tree 工具 |