基础命令
命令基础格式command [-options] [parameter]
command
: 命令本身。[]
: 可选,非必填。options
: 命令的一些选项。parameter
: 命令的参数。
ls
ls [-a -l -h] [Linux路径]
[-a -l -h]
是可选的选项。Linux路径
是此命令的可选参数。-a
表示all
的意思,即列出全部文件(包含隐藏的文件/文件夹),以.
开头的文件夹就是Linux系统中隐藏的文件/文件夹。-l
表示以列表(竖向排列)的形式展示内容,并展示更多信息。-h
表示以易于阅读的形式,列出文件大小,需要和-l搭配使用。
cd
cd来自英文:Change Directory
cd [Linux路径]
cd
命令无需选项,只有参数,切换目录。cd
命令直接执行,不写参数,表示回到用户的HOME目录/系统的根目录。
pwd
查看当前所在的工作目录(Print Work Directory)。
pwd
命令,无选项,无参数,直接输入pwd
即可。
特殊路径符
.
:表示当前目录.
.:表示上一级目录~
:表示HOME目录/
:根目录
文件操作命令
mkdir
可以创建新的目录文件夹
mkdir来自英文:Make Directorymkdir [-p] Linux路径
- 参数必填,表示Linux路径,就是要创建的文件夹的路径。
-p
选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录,如mkdir -p dir1/dir2/dir3
。
touch
创建文件touch Linux路径
- touch命令无选项,参数必填
cat
查看文件的内容cat Linux路径
- cat同样没有选项,只有必填参数
more
也可以查看文件内容,不同的是:
- cat直接将内容全部显示出来
- more支持翻页,如果文件内容过多,可以一页一页显示
more Linux路径
- 没有选项,只有必填参数
- 在查看的过程中,通过空格翻页
- 通过q退出查看
cp
复制文件/文件夹cp [-r] 源文件 目标文件
-r
:选项,可选,用于复制文件夹使用源文件
:Linux路径,表示被复制的文件或文件夹目标文件
:Linux路径,表示要复制去的地方
mv
用于移动文件/文件夹mv 源文件 目标文件
源文件
:Linux路径,表示被移动的文件或文件夹目标文件
:Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
rm
删除文件、文件夹rm [-r -f] 参数1 参数2 ... 参数n
-r
:选项用于删除文件夹-f
表示force,强制删除(不会弹出提示确认信息)
普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
所以一般普通用户用不到-f选项参数1、参数2…参数n
:表示要删除的文件或文件夹路径,按照空格隔开
rm命令支持通配符*
,用来做模糊匹配
- 符号
*
表示通配符,即匹配任意内容(包含空) test*
,表示匹配任何以test开头的内容*test
,表示匹配任何以test结尾的内容*test*
,表示匹配任何包含test的内容
以下命令慎用
1 | rm -f * |
which
搜索系统的环境变量 $PATH 中列出的目录,以找到对应的可执行文件。which xxx
- which 命令只能查找在 $PATH 环境变量中列出的目录里的可执行文件。
grep
从文件中通过关键字过滤文件的行grep [-n] "关键字" 文件路径
-n
:表示在结果中显示匹配的行的行号"关键字"
:必填,表示过滤的关键字。参数文件路径
:必填,表示要过滤的文件的文件路径,可作为内容输入端口。
|
管道符,将管道符左边命令的结果作为右边命令的输入
echo
在命令行内输出指定内容echo "输出的内容"
- 无需选项,只有一个参数,表示要输出的内容
反引号 `
被`包围的内容,会被当做命令执行,而非普通字符
重定向符>
和>>
>
将左侧命令的结果,覆盖 写入到符号右侧指定的的文件中>>
将左侧命令的结果,追加 写入到符号右侧指定的文件中
tail
查看文件尾部内容,跟踪文件的最新更改tail [-f -num] Linux路径
Linux路径
:表示被跟踪的文件路径-f
:表示持续跟踪-num
:表示查看尾部多少行,不填默认10行
tree
以树状图的形式列出目录的内容。
whoami
显示当前用户名的命令。
file
查看一个文件的类型file filename
find
find [路径] [选项] [参数]
选项
-name
根据文件名查找
find path -name "name"
-size
根据文件大小查找
find path -size [+|-] #size
size
单位:c(字节)
、k()千字节
、M(兆字节)
、G
find /path/to/search -size +100M
curl
curl 是常用的命令行工具,用来请求 Web 服务器。
无选项时
1
curl https://www.example.com
向
www.example.com
发出 GET 请求,服务器返回的内容会在命令行输出。
当使用curl访问github时出现Couldn't contect to server
问题时,可以在/etc/hosts
将github的ip改为国外的ip,然后进行访问。
uname
用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。
1 | uname --help |
关机命令
1 | shutdown -h now # 关闭系统 |
环境变量
执行env
可查看当前系统中记录的环境变量
环境变量是一种KeyValue型结构
PATH
PATH记录了系统执行任何命令的搜索路径(路径之间以:
隔开)
执行任何命令就会从上述路径中搜索要执行的本体
$符号
在Linux系统中,$
符号用于取“变量”的值
比如echo $PATH
,取得PATH这个环境变量的值,并通过echo语句输出出来。
或者echo ${PATH}ABC
,通过{}来标注取的变量是谁
设置环境变量
临时设置环境变量
在当前 shell 会话中有效,关闭 shell 后失效。
1 | export PATH=$PATH:value |
可以通过echo $PATH
查看
永久设置环境变量
需要编辑配置文件,根据作用范围选择以下文件:
全局设置: 修改
/etc/profile
或/etc/environment
(所有用户)。用户级设置: 修改
~/.bashrc
或~/.bash_profile
(仅当前用户)。
1 | vim ~/.bashrc |
添加如下内容
1 | export PATH=$PATH:value |
可以通过命令直接把环境变量添加到.bashrc
文件中
1 | echo 'export PATH=$PATH:value' >> ~/.bashrc |
保存后退出,执行如下命名使配置文件生效
1 | source ~/.bashrc |
网络
IP地址
每台联网的电脑都会有一个地址,用于和其他计算机进行通讯
可以通过:ifconfig
命令查看本机的ip
特殊IP地址
127.0.0.1
指代本机0.0.0.0
特殊IP
- 可以用于指代本机
- 可以在端口绑定中来确定绑定关系
- 在一些IP地址限制中,表示所有IP的意思,表示允许任意IP访问
主机名
每台电脑除了IP地址外,还可以有一个名字,称为主机名
Windows系统和Linux都可以给系统设置主机名
- Windows查看系统设备名称
- Linux可以用命令
hostname
在Linux中修改主机名
可以使用命令:hostnamectl set-hostname "主机名"
重新登陆即可看到更改
域名解析
先查看本机的记录(通过主机名找到对应计算机的IP地址)
Windows:C:\Windows\System32\drivers\etc\hosts
Linux: /etc/hosts
再联网去DNS服务器询问
网络传输
使用ping命令检查服务器是否可联通
1 | ping [-c num] ip或主机名 |
-c
,检查的次数,不使用-c
选项,将无限次持续检查ip或主机名
,被检查的服务器的IP地址或主机名地址
使用wget命令下载文件
wget是一个非交互式的文件下载器,可以在命令行内下载网络文件wget [-b] url
-b
,可选,后台下载,会将日志写入到当前工作目录的wget-log文件url
,下载链接
使用curl命令发起网络请求
发送http网络请求,可用于下载文件、获取信息等curl [-O] url
-O
,用于下载文件,当url是下载链接时,可以使用此选项保存文件url
,要发起请求的网络地址
端口
端口是设备与外界通讯交流的出入口。
- 物理端口:又可以称之为接口,是可见端口,如USB接口,HDMI端口等
- 虚拟端口:指计算机内部的端口,不可见,是用来操作系统和外部进行交互使用的
- 通过IP只能锁定计算机,但是无法锁定具体的程序。
- 通过端口可以锁定计算机上具体的应用程序,确保程序之间进行沟通。
IP地址相当于小区地址,而端口相当于门牌号了。
Linux系统可以支持65535个端口,这么多端口可以分为3类进行使用:
- 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口,非特殊需要,不能占用这个范围的端口
- 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
- 动态端口:49152~65535,通常不会固定绑定程序,而是当时程序对外网进行网络链接时,临时使用
查看端口占用情况
可以使用nmap命令nmap 被查看的IP地址
netstat
可以通过netstat命令,查看指定端口的占用情况netstat -anp|grep 端口号
常用选项
-a
: 列出所有端口-l
: 只显示监听端口-t
: 显示 TCP 传输协议的连线状况-u
: 显示 UDP 传输协议的连线状况
进程管理
程序运行在操作系统中,是被操作系统所管理的。
每一个程序在运行的时候,便被操作系统注册为系统中的一个进程
。
并为每一个进程都分配一个独有的:进程ID(进程号)。
查看进程ps
通过PS命令查看Linux系统中的进程信息ps [options]
-A
,显示所有终端进程-e
,显示出全部的进程-f
,以完全格式化的形式展示信息(展示全部信息)
ps -ef
列出全部进程的全部信息
1 | UID :进程所属的用户ID |
关闭进程kill
通过kill命令关闭进程。kill [-9] 进程ID
-9
,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。
pidof
查找正在运行的特定程序的进程 ID(PID)。pidof [options] programName
压缩和解压
压缩格式
- zip格式:Linux、Windows、MacOS常用
- 7zip:Windows常用
- rar:Windows常用
- tar:Linux、MacOS常用
- gzip:Linux、MacOS常用
tar命令
有两种常见压缩格式,后缀名分别是:
- .tar,称之为tarball,归档文件,简单的将文件组装到一个.tar的文件内,仅仅是简单的封装。
- .gz,常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,极大减少压缩后的体积
对于这两种格式,可以用tar命令进行压缩和解压操作:tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N
-c
,创建压缩文件,用于压缩模式-v
显示压缩、解压过程,用于查看进度-x
,解压模式-f
,要创建的文件,或解压的文件,-f选项必须在所有选项中位置处于最后一个-z
,gzip模式,不使用就是tarball格式-C
,选择解压的目的地,用于解压模式
tar命令压缩
tar常用压缩组合有两种:
- tar -cvf test.tar 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt压缩到test.tar文件内 - tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式
要注意的是:
- -z选项要使用的话,一般处于选项第一个
- -f选项,必须在选项位最后一个
tar命令解压
tar常用解压组合有:
tar -xvf test.tar
解压test.tar,将文件解压至当前目录tar -xvf test.tar -C /home/itheima
解压test.tar,解压至/home/itheima
tar -zxvf test.tar.gz -C /home/itheima
以gzip模式解压test.tar.gz,将文件解压至指定目录(/home/itheima)
注意:
-f
选项必须在最后一位-z
选项,建议在开头位置-C
单独使用,和解压的其他参数分开
zip命令
zip压缩
1 | zip [-r] 参数1 参数2 ... 参数N |
-r
,被压缩的文件包含文件夹的时候,需要使用-r
选项
unzip解压
1 | unzip 参数 [-d] |
-d
,指定要解压去的位置,同tar的-C选项参数
,被解压的zip压缩包文件
dpkg命令
dpkg --help
dpkg --version
管理deb包,可以对其安装、卸载、deb打包、deb解压等操作
1 | -i: 安装软件包 |
7z命令
解压
1 | 7z x [-r -o] |
x
,代表解压文件,按原始目录解压-r
,表示递归解压所有的子文件夹-o
,指定解压到的目录,-o
后面没有空格直接跟目录
系统目录
/etc
/etc/hostname
这个文件里存放着主机名,可以进行修改
/etc/hosts
本地主机名解析文件,用于将 IP 地址映射到主机名,在 DNS(域名系统)查询之前进行解析。
快捷键
Ctrl+Alt+T
打开终端