总结归纳一下 Linux 的 Shell 的快捷键和常用命令
(环境基于 ubuntu-20.04.2.0)
# Shell 快捷键
- [
方向键←→
] 或Ctrl+B/F
—— 光标向后(左)/ 前(右)移动 - [
Home/End
] 或Ctrl+A/E
—— 光标移动到开头(最左边)/ 末尾(最右边) - [
方向键↑↓
] 或Ctrl+P/N
—— 显示上一条 / 下一条历史命令 - [
Backspace/Del
] 或Ctrl+H/D
—— 删除光标前 / 后(被光标覆盖住)的字符 Ctrl+U
—— 删除光标前的所有字符Ctrl+L
—— 清屏Tab
—— 快速补全命令或目录(按一次或当有多个匹配项时两次)Ctrl+Alt+T
—— 新建一个终端窗口
# Linux 基础常识
- 使用
ls
命令显示文件或目录时的不同颜色:(一般情况下)
白色 —— 普通文件
蓝色 —— 目录
绿色 —— 可执行文件(相当于 Windows .EXE)
红色 —— 压缩文件
青色 —— 链接文件(相当于 Windows 快捷方式)
黄色 —— 设备文件
灰色 —— 其他文件 - Linux 下的文件类型:
普通文件类型 (-)
Linux 中最多的一种文件类型,包括 纯文本文件 (ASCII);二进制文件 (binary);数据格式的文件 (data); 各种压缩文件。第一个属性为 [-] ,这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具… … 或 cp 工具等。这类文件的删除方式是用 rm 命令。目录文件 (d)
就是目录, 能用 # cd 命令进入的。第一个属性为 [d],例如 [drwxrwxrwx] ,创建目录的命令可以用 mkdir 命令,或 cp 命令,cp 可以把一个目录复制为另一个目录。删除用 rm 或 rmdir 命令。块设备(b)和 字符设备(c)
这个种类的文件,是用 mknode 来创建,用 rm 来删除。目前在最新的 Linux 发行版本中,我们一般不用自己来创建设备文件。因为这些文件是和内核相关联的。
块设备文件 : 就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1 等文件。第一个属性为 [b]
字符设备文件:即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 [c]套接字文件 (s)
这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run 目录中看到这种文件类型管道文件 (p)
FIFO 也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO 是 first-in-first-out (先进先出) 的缩写。第一个属性为 [p]符号链接(l)
和 Windows 操作系统中的快捷方式类似。引自 Linux 下的 7 种文件类型 - CYYZ 古月
ls -a
显示路径下全部文件(包括隐藏的)ls -l
查看路径下文件的详细信息
tip:在 Linux 下文件夹(目录)所占用的磁盘空间都是 4096byte,目录大小不包括目录内的文件大小- 目录必须有执行权限才能进入
- Linux 下隐藏文件以。开头
- itcast@itcast:~:普通用户
$ 换成 #:超级用户(管理员权限) - Linux 系统中硬盘名字:
硬盘1:sda | |
|--主分区 | |
| └--(最多允许有4个)--主分区1:sda1 | |
| |-主分区2:sda2 | |
| |-主分区3:sda3 | |
| └-主分区4:sda4 | |
└--扩展分区 | |
└--(第一个逻辑分区从sda5开始)--逻辑分区1:sda5 | |
|-逻辑分区2:sda6 | |
└... | |
硬盘2:sdb | |
硬盘3:sdc | |
硬盘4:sdd | |
磁盘设备种类: | |
sd -> SCSI Device | |
hd -> Hard Disk 硬盘 | |
fd -> Floppy Disk 软盘 |
# Shell 常用命令
- | 管道 - 将命令 1 的输出作为命令 2 的输入(命令 1 | 命令 2)
pwd
查看当前所在路径-
~
:家目录 cd -
:在两个目录间切换rm
参数:
r
—— 递归(进入子目录)
i
—— 提示
f
—— 强制删除(rm 命令默认会加上这个参数)
tip:rm -rf /
懂的都懂mkdir
(-p
)/touch
创建目录 / 文件cat
查看文件内容cp
拷贝文件或目录(拷贝目录时加-r
)
tip: 拷贝文件时:软硬链接都拷贝原文件;
拷贝目录时:软链接拷贝过去还是软链接,硬链接拷贝原文件more
一点一点的看某个文件,但是只能往下看,不能往上less
一点一点的查看某个文件,比 more 更智能head
/tail
显示文件前 / 后十行(也可以加-5
或者其他任意数字控制显示行数)mv
移动(到一个已经存在的文件夹)或重命名ln
创建硬链接
ln -s
创建软连接
tip:硬链接相当于新建文件名指向文件(给文件取个别名),软链接指向文件名wc
获取文本文件的行数、单词数、字节数od
查看二进制文件信息
参数:-t
指定数据的显示格式(c/d/f/o/u/x)du -h
查看当前文件夹和子文件夹大小df -h
查看磁盘容量信息which
找到命令对应的路径-
修改文件权限:chmod >folded 1) 文字设定法:
chmod [who] [+|-|=] [mode]
who: -> 不写也相当于对所有的人
文件所有者:u
文件所属组:g
其他人:o
所有的人:a
+:添加权限
-:减少权限
=:覆盖原来的权限
mode:
r:读
w:写
x:执行
例:chmod o+rx [文件名]
2) 数字设定法:
chmod [三位数] ->覆盖权限
chmod [+|-|=] [三位数] ->增加/减少/覆盖权限
没有权限:0
r:4
w:2
x:1
例:chmod 765 [文件名]
7 -- rwx -- 文件所有者
6 -- rw -- 文件所属组
5 -- rx -- 其他人
chown
改变文件所有者 [和所属组]
sudo chown user1[:group2] [文件名]
chgrp
改变所属组
tip:chown 和 chgrp 都需要管理员权限find [目录] -name [文件名]
在指定目录下查找文件(文件名也可以使用通配符叠加 例如:* 和?)
find [目录] -size [+|-][文件大小]
找大于 / 小于
例:find [目录] -size +10K -size -10M 按大小范围查找
find [目录] -type [d|f|b|c|s|p|l]
按文件类型查找grep -r "查找的内容" [查找的路径]
按文件内容查找sudo apt-get install [名字]
在线安装软件
sudo apt-get remove [名字]
卸载软件
sudo apt-get update
更新软件列表
sudo apt-get clean
清理所有软件安装包(/var/cache/apt/archives/*.deb)
tip:也可用 aptitude 代替sudo dpkg -i [deb包]
通过 deb 包安装软件
sudo dpkg -r [名字]
卸载软件mount [U盘对应的设备名(/dev/...)] [要挂载的目录]
挂载 U 盘
umount [挂载U盘的目录]
卸载 U 盘
tip:卸载 U 盘时 U 盘不能被占用(包括 cd 到挂载 U 盘的目录下)
tip:当挂载 U 盘的目录中有文件时,挂载期间文件会被临时覆盖,待卸载 U 盘后恢复原状alias
查看或设置别名
alias [shell命令]
查看别名
alias [封装的命令名]='shell语句'
(例:alias pag=‘ps aux | grep’)
(注意:需要长久有效需要去设置配置文件:.bashrc)
# 压缩包管理
# 基础工具
gzip [要压缩的文件]
—— .gz 格式的压缩包bzip2 [参数(-k)] [要压缩的文件]
—— .bz2 格式的压缩包
注意:
- gzip 和 bzip2 都只能对单个文件进行压缩,不能对目录进行压缩。
- gzip 和 bzip2 默认都不保留源文件,只有 bzip2 可以加 - k 参数保留源文件
# 进阶工具
tar
—— 不使用 z/j 参数,该命令只能对文件或目录打包
参数:
c —— 创建 —— 压缩
x —— 释放 —— 解压缩
v —— 显示提示信息 —— 压缩 / 解压缩 —— 可以省略
f —— 指定压缩文件的名字
z —— 使用 gzip 的方式压缩文件 —— .gz
j —— 使用 bzip2 的方式压缩文件 —— .bz2
压缩:
tar zcvf [生成的压缩包的名字(推荐xxx.tar.gz)] [要压缩的文件或目录]
tar jcvf [生成的压缩包的名字(推荐xxx.tar.bzip2)] [要压缩的文件或目录]
解压缩:
tar jxvf [压缩包的名字]
-> 解压到当前目录
tar jxvf [压缩包的名字] -C [目录]
-> 解压到指定目录
Tip:tar 命令主要做的是打包的功能,内部调用 gzip 和 bzip2 进行压缩操作
rar
—— 必须手动安装该软件(实测 Ubuntu-20.04.2.0 自带有)
参数:
a —— 压缩
x —— 解压缩
压缩:
rar a [生成的压缩文件的名字(自动添加.rar后缀)] [要压缩的文件或目录]
解压缩:
rar x [压缩包文件名] [要解压到的目录(不写则默认当前目录)]
zip
参数:
-r 压缩目录时需要加上
压缩:
zip [压缩包的名字] [要压缩的文件]
zip -r [压缩包的名字] [要压缩的文件或目录]
解压缩:
unzip [压缩包的名字]
unzip [压缩包的名字] -d [要解压到的目录]
总结:
压缩:tar/rar/zip [参数] [生成的压缩文件的敏子] [要压缩的文件或目录]
解压缩:tar/rar/unzip [参数] [压缩包的名字] [参数(rar 没有参数)] [要解压到的目录]
# 进程管理
# 相关命令
who
查看当前在线用户的情况(登录的用户名、使用的设备终端、登陆到系统的时间)
关于 tty 设备:(这个没搞太清楚,仅做参考)
tty3 - tty6 表示文字界面(文字终端) - Ctrl+Alt+F3~F6
tty2 (?) 或:0 表示图形界面 - Ctrl+Alt+F2
Ctrl + Alt + F2~F6 切换终端
Ctrl + Alt + F1 切换到用户登录界面(类似 Windows 下的锁定)
-
ps a
列出当前所有用户的进程信息
ps au
在上面的基础上再加上 USER、CPU、MEM、VSZ、RSS 的信息
ps aux
在上面的基础上再加上没有终端的应用信息(没有 TTY 信息的)
ps aux | grep [要查找的内容]
按要查找的内容过滤进程(注:此命令会把自己也找出来) -
kill
杀死进程
kill -l
查看 kill 命令可以发出的信号
kill -SIGKILL(-9) [进程PID]
发送 SIGKILL 信号杀死进程 -
env
查看系统环境变量
env | grep [要查找的值]
按内容过滤环境变量 -
top
类似 Windows 下的任务管理器,但只能看而不能进行任何操作
# 网络相关
# 常用命令
ifconfig
查看网络配置信息(相当于 CMD 的 ipconfig)
eth0 - 第一块网卡(第二块 eth1…)
硬件地址(MAC 地址)
-
ping
同 CMD 的 ping,但是会一直运行直到用户手动结束
ping -c [次数]
指定 ping 的次数
ping -i [秒数]
指定每过多少秒给一条回复 -
nslookup [域名]
查看网站对应的 IP 地址
# 用户管理
# 相关命令
-
创建用户:
sudo adduser [用户名(只能小写英文字母)]
sudo useradd -s [使用的bash目录(/bin/bash)] -g [所属的组] -d [指定用户的家目录(/home/xxx)] -m(没有这个目录的话就创建) [用户名]
(注:通过这条命令创建的用户没有密码,需要再设置 - sudo passwd [用户名]) -
删除用户:
sudo deluser [用户名]
(注:这样删除后用户对应的家目录不会被删除)
sudo userdel -r [用户名]
(注:这样会把用户对应的家目录一起删除) -
查看现有用户:
vi /etc/passwd
(/etc/passwd 里存放的是所有用户的信息)
# ftp 服务器搭建 – vsftpd
ftp 服务器作用:实现文件的上传和下载
# 服务器端
(ftp 服务器在本机环境中启动服务失败,原因暂不明,以下仅供参考)
-
修改配置文件(/etc/vsftpd.conf)
sudo gedit /etc/vsftpd.conf
或sudo vi /etc/vsftpd.conf
打开配置文件
(注意:更改时不要随意修改配置文件书写格式) -
重启服务
sudo service vsftpd restart
# 客户端
(仅供参考)
-
登录
ftp [服务器IP]
实名登录:用户名 + 密码
匿名登录:anonymous + 直接回车 -
文件的上传和下载
put file
get file
(注意:不允许操作目录,可以对目录打包后操作)
# nfs 网络共享服务器
类似 Windows 下的共享文件夹
# 服务器端
-
创建共享目录
mkdir [dir]
-
修改配置文件(/etc/exports)
[共享目录路径] [允许访问的IP网段(*代表所有)]([参数1],[参数2],...)
参数可用:rw —— 可读可写,sync —— 从内存同步到磁盘 -
重启服务
sudo service nfs-kernel-server restart
# 客户端
- 挂载共享目录
sudo mount [服务器IP:共享目录路径] /mnt
# ssh 服务器
(需要先安装 openssh-server)
# 基本命令
查看 SSH 是否安装: sudo aptitude show openssh-server
远程登录: ssh [用户名]@[IP]
退出登陆: logout
# scp 命令(super copy)
scp -r [用户名]@[IP]:[目标文件绝对路径] [保存到的本机路径(绝对或相对)]
拷贝目录时须加 -r
参数
未完待续…
参考文章:
linux 全套教程【黑马】