Hi,大家好,我是源于花海。本文主要了解 20 个常用的 Linux 基本指令。 Linux 具有开放、灵活、自由、免费 等特点,这使得全球大多服务器设备都是使用的 Linux 操作系统,而且很高的几率不会使用图形化的界面,只有命令行操作。 而要使用命令行熟练操作 Linux,最重要的知识就是 Linux 操作系统的内核以及 Linux 环境下的指令,本篇文章的主要内容就是 Linux 环境下的指令操作。
目录
[一、Linux 是什么](#一、Linux 是什么)
[二、Linux 常用的基本指令](#二、Linux 常用的基本指令)
[1. ls:列出该目录下的文件(list)](#1. ls:列出该目录下的文件(list))
[2. pwd:显示当前目录的绝对路径(Print Working Directory)](#2. pwd:显示当前目录的绝对路径(Print Working Directory))
[3. cd:切换目录(Change Directory)](#3. cd:切换目录(Change Directory))
[4. cp:复制(Copy)](#4. cp:复制(Copy))
[5. mv:移动(Move)](#5. mv:移动(Move))
[6. rm:删除给定的文件(Remove)](#6. rm:删除给定的文件(Remove))
[7. mkdir:创建一个新目录(Make Directory)](#7. mkdir:创建一个新目录(Make Directory))
[8. rmdir:删除文件夹(Remove Directory)](#8. rmdir:删除文件夹(Remove Directory))
[9. cat:查看文件内容(concatenate and print files)](#9. cat:查看文件内容(concatenate and print files))
[10. tar:打包压缩、解压](#10. tar:打包压缩、解压)
[11. zip、unzip:打包压缩、解压](#11. zip、unzip:打包压缩、解压)
[12. ps:查看进程(Process Select)](#12. ps:查看进程(Process Select))
[13. kill:杀死进程](#13. kill:杀死进程)
[14. passwd:修改密码(Password)](#14. passwd:修改密码(Password))
[15. tee:显示并保存](#15. tee:显示并保存)
[16. reboot:重启](#16. reboot:重启)
[17. date:时间相关指令](#17. date:时间相关指令)
[18. find:查找](#18. find:查找)
[19. grep:按行查找并匹配](#19. grep:按行查找并匹配)
[20. 扩展命令](#20. 扩展命令)
一、Linux 是什么
Linux 是一款基于 GNU 通用公共许可协议 的自由和开放源代码的类 UNIX 操作系统,该操作系统的内核由 Linus Torvalds 在1991年首次发布。之后,在加上用户空间的应用程序之后,就成为了 Linux 操作系统。但是,严格来讲,Linux 只是操作系统内核,但通常采用 "Linux 内核" 来表达该意思。而 Linux 则常用来指基于 Linux 内核的完整操作系统,它包括 GUI 组件和许多其他实用工具。
在 Linux 的世界里,其核心思想:一切皆为文件。
Linux 的文件系统是采用级层式 的树状目录结构 ,在此结构中的最上层是根目录 "/",然后在此目录下再创建其他的目录。
- 绝对路径:从根目录开始写,例如/home/root/workspace/sample。
- **相对路径:以当前目录为基础,./表示当前目录(./ 等价于不写),../表示父级目录(当前路径所在的上一级路径),/**表示当前目录的根目录。
二、Linux 常用的基本指令
1. ls:列出该目录下的文件(list)
ls 常用参数:
- **-l:**列出文件的详细信息
- **-a:**all,列出所有文件,包括隐藏文件
注: 参数可以叠加使用,如**-la**表示列出所有文件及其详细信息。
2. pwd:显示当前目录的绝对路径(Print Working Directory)
3. cd:切换目录(Change Directory)
python
## cd用法
cd /home # 切换/进入home目录
cd .. # 到上一目录(父目录)
cd ../.. # 到父目录的父目录
cd . # 进入当前目录
4. cp:复制(Copy)
cp 常用参数:
- **-i:**interactive mode,若有同名文件,会询问是否覆盖(如果没这个参数,会不提示,直接覆盖)
- **-r:**recursive copy,复制文件夹时连同子文件(夹)一起复制,如果是对文件夹进行操作,一定要带这个参数
python
## cp用法
cp -ir sourceDir/ home/targetDir/ # 把当前路径下的sourceDir文件夹复制到home目录下,取名为targetDir,且带参数-i和-r
5. mv:移动(Move)
mv 参数:
- **-i:**interactive mode ,同 cp 的 -i 参数,若覆盖会询问
python
## mv用法
mv -i sourceFile /home/targetFile # 把当前目录下的sourceFile剪切到/home目录下并命名为targetFile
6. rm:删除给定的文件(Remove)
rm 参数:
- **-i:**interactive,同上,若覆盖,先询问
- **-r:**recursive mode,删除所有子文件(夹)
python
## rm用法
rm Dir/ # 删除Dir文件夹(错误示例,会报错)
rm -r Dir/ # 删除Dir文件夹(正确,对文件夹操作一定要带-r)
7. mkdir:创建一个新目录(Make Directory)
python
## mkdir用法
mkdir newDir/ # 在当前路径创建一个空文件夹newDir/
8. rmdir:删除文件夹(Remove Directory)
python
## rmdir用法
rmdir oldDir/ # 在当前路径删除oldDir文件夹及其子文件(夹)
9. cat:查看文件内容(concatenate and print files)
python
## cat用法
cat myFile # 显示myFile
10. tar:打包压缩、解压
tar 常用参数:
- **- jcv:**压缩
- **- jxv:**解压
python
## tar用法
tar -jcv myDir/ # 压缩myDir文件夹
tar -jxv DownloadDir.tar.gz myDir/ # 解压DownloadDir.tar.gz到当前文件夹下,并命令为myDir
11. zip、unzip:打包压缩、解压
- **-r:**递归处理,将指定目录下的所有文件和子目录一并处理
- **-d:**解压用,用来指定解压目录
12. ps:查看进程(Process Select)
ps 常用参数:
- **-A:**显示所有进程
- **-a:**不与 terminal 有关的所有进程
- **-u:**有效用户的相关进程
- **-x:**一般与 -a 一起用,列出完整的进程信息
- **-l:**long,详细列出 PID 的信息
python
## ps用法
ps Aux # 查看系统所有的进程数据
ps ax
13. kill:杀死进程
kill 常用参数 :
- **SIGHUP:**启动被终止的进程
- **SIGINT:**相当于 Ctrl + C,中断进程
- **SIGKILL:**强制中断进程
- **SIGTERM:**以正常的结束进程方式来终止进程
- **SIGSTOP:**相当于 Ctrl + Z,暂停进程
python
## kill用法
kill -SIGKILL 10876 # 强制中断PID=10876的进程(PID可以通过ps查到,有时可以加上| grep进行筛选)
14. passwd:修改密码(Password)
python
## passwd用法
passwd # 修改当前用户的密码
15. tee:显示并保存
显示内容并将内容保存在文件中:
python
python3.6 test.py | tee result.log # 运行test.py文件,显示编译与运行结果并保存成result.log文件
16. reboot:重启
python
## reboot用法
reboot # 输完立马重启(记得保存文件)
17. date:时间相关指令
- 用来显示当前时间
- 手动指定显示时间的格式
date 指定格式显示时间:date +%Y:%m:%d
date 用法:date [OPTION]... [+FORMAT]
18. find:查找
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:
- find 单独使用时,必须指定目录查找或查找当前目录的文件
- **find -name 文件名:**遍历指定位置查找(范围较大时,较费时间)
19. grep:按行查找并匹配
grep 参数:
- **-r:**recursive,查找所有子文件(夹)
- **-n:**number,显示行号
- **-w:**word,完整匹配整个单词
- **-i:**insensitive search,忽略大小写
- **-l:**显示文件名称,而非匹配到的行的内容
- **-v:**反向选择,显示出没匹配到的行的内容
语法: grep [选项] 搜寻字符串文件
功能: 在文件中搜索字符串,将找到的行打印出来,默认区分大小写
|--------|--------------------|
| 选项 | 功能 |
| -i | 取消区分大小写 |
| -n | 输出行号 |
| -v | 反向选择,选择不带关键字的行 |
20. 扩展命令
Linux 不仅仅只有上面那些指令,还有许多指令需要学习:
- **安装和登录命令:**login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
- **文件处理命令:**file、dd、diff、cat、ln;
- **系统管理相关命令:**df、top、free、quota、at、 lp、adduser、groupadd、kill、crontab;
- **网络操作命令:**ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup;
- **系统安全相关命令:**passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
- **其它命令:**gunzip、unarj、mtools、unendcode、uudecode