目录
-
-
- 一.Linux终端命令
-
- 1.为什么要学习终端命令
- 2.终端命令的格式
- 3.查阅命令及常用选项的帮助信息
- 4.Linux常用终端命令简介
- 5.Linux常用终端命令扩展
-
- ①.ls命令
- ②.cd命令
- ③.touch命令
- ④.mkdir命令
- ⑤.rm命令
- 6.Linux拷贝和移动命令扩展
-
- ①.tree命令
- ②.cp命令
- ③.mv命令
- 7.Linux文件内容命令扩展
-
- ①.cat命令
- ②.more命令
- ③.grep命令
- 8.Linux其他命令扩展
-
- ①.echo文字内容
- ②.重定向>和>>
- ③.管道|
- 9.Linux远程管理常用命令扩展
-
- ①.shutdown命令
- ②.ifconfig命令
-
- 卡和IP地址
- ③.ping命令
- ④.ssh命令
-
- 什么是SSH
- 为什么要使用SSH
- 域名和端口
- SSH客户端的使用
- macOS和linux系统使用ssh
- Windows系统之PuTTY使用ssh
- Windows系统之Xshell使用ssh
- SSH高级
- ⑤.scp命令
-
- macOS系统复制:scp命令
- windows系统复制:FTP文件传输
- 10.Linux用户权限命令扩展
-
- ①.修改权限命令chmod
- ②.sudo命令
-
- 超级用户root
- 11.Linux组管理权限命令扩展
- 12.Linux用户管理权限命令扩展
-
- ①.创建用户useradd/passwd
- ②.删除用户userdel
- ③.查看用户id/who/whoami
- ④.usermod命令
- ⑤.查看命令所在位置which
-
- bin和sbin
- ⑥.切换用户命令su
- ⑦.修改文件权限chown/chgrp/chmod
- 13.系统信息相关命令扩展
-
- ①.时间和日期命令date/cal
- ②.查看磁盘信息df/du
- ③.进程信息命令ps/top/kill
- 14.Linux其他命令扩展
-
- ①.查找文件命令find
- ②.文件软硬链接示意图
- ②.建立文件软链接ln
- ③.建立文件硬链接ln
- 15.Linux打包压缩命令扩展
-
- ①.打包命令/解包命令tar
- ②.压缩命令/解压缩命令gzip
- ③.压缩命令/解压缩命令bzip2(two)
- 16.Linux安装/卸载/更新软件命令扩展
-
- ①.安装/卸载/更新软件命令apt
- ②.配置软件源
-
一.Linux终端命令
1.为什么要学习终端命令
Linux起初没图形化界面,所有操作(磁盘操作,文件存取,目录操作,进程管理,文件管理)都要靠命令。
服务器维护工作需要在安装ssh客户端来远程维护,ssh客户端并没有图形界面,都需要命令完成。
2.终端命令的格式
command [-options] [parameter]
命令名 [-命令选项:对命令进行额外控制] [命令参数:命令的操作对象,可以是文件,目录,用户、进程等],中括 代表可选
3.查阅命令及常用选项的帮助信息
命令名 –help:显示帮助信息
man 命令名:显示使用手册(manual)
manual的操作键 | 功能 |
---|---|
空格 | 显示手册下一页 |
Enter键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索word字符串 |
4.Linux常用终端命令简介
Linux常用终端命令
命令 | 作用 |
---|---|
ls | list,查看当前文件夹下的内容 |
pwd | print work directory,查看当前所在的文件夹 |
cd [目录名] | change directory,切换文件夹 |
touch [文件名] | 如果文件不存在,创建文件 |
mkdir [目录名] | make directory,创建目录 |
rm [文件名] | remove,删除指定的文件名 |
rm -r [目录名] | 删除指定的目录 |
clear | 清屏 |
tree[目录名] | 以树状图列出文件目录结构 |
cp 源文件 目标文件 | copy复制文件/目录 |
mv 源文件 目标文件 | move移动或重命名文件/目录 |
cat 文件名 | concatenate查看文件内容、创建文件、文件合并、追加文件内容 |
more 文件名 | 分屏显示文件内容 |
grep 要搜索内容 | |
shutdown 选项 时间 | 关机/重启 |
ifconfig | 查看配置 卡信息 |
ping ip地址 | 检测目标IP地址的连接是否正常 |
ssh (小写) 端口 user@ip/域名/别名 | 远程登录 |
scp 端口 源文件 user@ip/域名/别名远程目录/目标文件名 | 远程复制文件 |
chmod +/-rwx 文件/目录 | 对文件/目录 增加/删除 可读可写可执行的权限 |
sudo | 以root用户执行命令 |
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
cat/etc/group | 确认组信息 |
chgrp 组名 文件/目录名 | 修改文件/目录的所属组 |
sudo groupadd 组名 | 添加组 |
sudo groupdel 组名 | 删除组 |
cat | 确认组信息 |
sudo chgrp -R 组名 被修改的文件/目录名 | 修改文件/目录的所属组,-R是递归修改子目录和文件的权限 |
sudo useradd -m -g 组名 新建用户名 | 添加新用户 |
sudo passwd 用户名 | 设置用户密码,普通用户可以直接修改自己账户密码 |
sudo userdel -r 用户名 | 删除用户 |
id [用户名] | 查看用户UID(用户代 )和GID(组代 ) |
who | 查看当前所有登录的用户列表(包括当前系统登录和远程登录) |
whoami | 查看当前登录用户的账户名 |
sudo usermod -G 组 用户名 | 修改用户附加组(etc/group中的) |
which 所要查的命令 | 查看命令所在位置 |
su – 用户名 | 切换用户,并且切换目录(切换到当前用户的家目录) |
sudo chown 用户名 文件名/目录名 | 修改拥有者 |
5.Linux常用终端命令扩展
①.ls命令
ls常用选项 | 含义 |
---|---|
-a | 显示指定目录所有目录与文件,包括隐藏文件 |
-l | 以列表的形式显示文件的详细信息 |
-h | 配合-l人性化显示文件大小(以K为单位)ls -lh ,ls -lha |
drwxr-xr-x 2 wenmiao wenmiao 4.0K 10月 13 2020 公共的
-ls详细信息 | 含义 |
---|---|
d | 权限,第一个字母若是d代表目录,如果是-代表文件 |
rwx r-x r-x | 分别代表、、,r代表可读,w代表可写,x代表可执行,-代表没有该权限 |
2 | 硬链接数(有多少种方式能访问到当前的目录/文件) |
wenmiao | 文件/目录拥有者的名称 |
wenmiao | 文件/目录组用户的名称 |
4096K | 占用磁盘空间 |
10月13 2020 | 创建时间 |
公共的 | 目录/文件名称 |
ls通配符 | 含义 |
---|---|
* | 代表任意个字符(包括0个)(例1*.txt可以匹配1.txt,12.txt,123.txt) |
/td> | 代表1个字符(例1txt只能匹配11.txt,12.txt,13.txt) |
[abc] | 可以匹配字符组中的任意一个(例如[1245]23.txt可匹配123.txt,223.txt,423.txt,523.txt) |
[a-f] | 匹配从a到f范围内的任意一个字符(例如[1-4]23.txt可以匹配123.txt,223.txt,323.txt,423.txt) |
②.cd命令
cd命令 | 含义 |
---|---|
cd | 切换到当前用户目录(/home/用户目录) |
cd | 切换到当前用户目录(/home/用户目录)(代表的是当前用户家目录,admin用户代表/home/admin,管理员用户代表/root) |
cd | 保持当前目录不变 |
cd | 切换到上级目录 |
cd | 进入到上一次所在目录(特殊用法,两个路径来回调) |
③.touch命令
用来修改文件时间
如果文件不存在,会创建一个空白文件并修改文件时间
如果文件已经存在,修改文件的末次修改日期
④.mkdir命令
创建一个新目录
mkdir选项 | 含义 |
---|---|
-p | 递归创建目录 mkdir -p a/b/c |
⑤.rm命令
rm删除之后不能恢复,不能像windows图形化界面一样把文件放到回收站
所以千万不要在根目录里面删除系统文件和目录,都在家目录里面玩耍
删除目录要加-r,删除文件可以不加
rm选项 | 含义 |
---|---|
-f | 强制删除,忽略不存在的文件的提示信息,有则删除 |
-r | 递归删除目录下的所有内容,删除文件夹时必须加此参数 |
rm通配符 | 含义 |
---|---|
rm *2.txt | 删除以2.txt结尾的所有文件 |
rm -r * | 删除当前目录所有的文件和目录 |
6.Linux拷贝和移动命令扩展
①.tree命令
以树状图列出文件目录结构
下载tree命令:sudo apt install tree # version 1.8.0-1
tree命令 | 含义 |
---|---|
tree | 从当前工作目录[.]开始显示树形图 |
tree[目录名] | 从指定工作目录开始显示树形图 |
tree ~ | ~代表家目录,代表从家目录开始显示树形图 |
tree选项 | 含义 |
---|---|
-d | 只显示目录,不显示文件 |
②.cp命令
将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令
rm删除目录需要加一个-r,cp复制目录需要加一个-r
cp命令 | 含义 |
---|---|
cp 源文件 目标目录 | 复制文件或目录到目标文件 |
cp 124.txt | 复制124.txt到/home/wen/123目录下 |
cp 1.txt | 复制1.txt到/home/we/1.txt文件中,不存在1.txt文件则复制,存在则无法创建 |
cp 2.txt | 复制2.txt到/home/we/1.txt文件中,修改文件名 |
cp -r 123 | 复制123目录下的所有子目录和文件到/home/wen/a目录下 |
cp选项 | 含义 |
---|---|
-i | 覆盖文件前提示,输入n表示不覆盖,输入y表示覆盖 |
-r | 源文件是目录,将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
-f | 覆盖已存在的目标文件而不给出提示 |
-v | 显示拷贝进度 |
③.mv命令
mv命令选项 | 含义 |
---|---|
mv 源文件 目标文件 | 移动文件/目录,也可给文件/目录重命名 |
mv ./a/b/a.txt | 将a.txt文件从./a/b目录下复制到.(d当前目录下) |
mv ./a/b/c ./a/b/d | 把整个c目录移动到d目录下(区别cp命令,目录也无须加-r) |
mv a.txt b.txt | 如果是同一个目录下,就不是复制,而是重命名,将a.txt重命名为b.txt |
mv -i b.txt readme.txt | 如果覆盖会提示,n表示不覆盖,y表示覆盖 |
-i | 覆盖文件前提示 |
7.Linux文件内容命令扩展
①.cat命令
cat命令 | 含义 |
---|---|
cat a.txt | 一次全部显示文本内容,适合查看内容较少时使用 |
cat选项 | 含义 |
---|---|
-b | 对非空输出行编 |
-n | 对输出的所有行编 (忽略空行) |
②.more命令
more命令 | 含义 |
---|---|
more a.txt | 分屏显示文本内容,适合查看内容较多时使用 |
more操作键(与mannal命令类似) | 含义 |
---|---|
空格 | 显示手册下一页 |
Enter键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索word字符串 |
③.grep命令
grep命令 | 含义 |
---|---|
grep sand readme.txt | 查找readme.txt文件中有sand字符串的行 |
grep -n sand readme.txt | 查找sand字符串的行并显示行 |
grep -v sand readme.txt | 查找sand字符串的行 |
grep -vn sand readme.txt | 查找sand字符串的行并显示行 |
grep -ni sand readme.txt | 查找sand字符串(忽略大小写)的行并显示行 |
grep -n “Hello SAND” readme.txt | 如果要查找的字符串中间有空格,需要用引 |
grep ^and readme.txt | 查找以and开头的所有行 |
grep and$ readme.txt | 查找以and结尾的所有行 |
grep选项 | 含义 |
---|---|
-n | 显示匹配行及行 |
-v | 显示没有匹配文本的所有行(求反) |
-i | 忽略大小写 |
grep允许对文本进行模式查找(正则表达式)
grep参数 | 含义 |
---|---|
^a | 行首,查找以a开头的行 |
ke$ | 行尾,查找以ke结尾的行 |
8.Linux其他命令扩展
①.echo文字内容
echo命令 | 含义 |
---|---|
echo hello python | 将hello python输出到终端 |
②.重定向>和>>
linux允许将命令执行结果重定向到一个文件(即将本应该显示在终端上的内容输出/追加到指定文件中)
重定向符 | 含义 |
---|
|表示输出,会覆盖文件原有内容
|表示追加,会将内容追加到已有文件末尾
重定向命令 | 含义 |
---|---|
echo hello p > redirect | 若redirect文件不存在,则创建一个,并将hello p写入redirect文件中;若存在则直接覆盖 |
ls -lh >redirect | 将ls -lh查出的内容写入或覆盖到redirect文件中 |
echo hello p2 >> redirect | 若redirect不存在,则创建一个并写入,若存在则将hello p2直接追加到redirect文件中 |
tree >> redirect | 将tree查出的树形图追加到redirect文件中 |
③.管道|
linux允许将一个命令的输出通过管道做为另一个命令的输入
左端写,右端读
常用管道命令 | 含义 |
---|---|
more | 分屏显示内容 |
grep | 在命令执行结果基础上查询指定的文本 |
ls -lha ~ | more:查出家目录的包括隐藏文件的所有文件目录信息,通过管道传给more命令,让其分屏显示
ls -lha ~ | grep -n test:同上,通过管道传给grep命令,让其查出有test字符的行及行 (过滤执行结果)
9.Linux远程管理常用命令扩展
①.shutdown命令
shutdown命令 | 含义 |
---|---|
shutdown | 不指定选项和参数,默认表示1分钟后关机 |
shutdown -c | 如果不想1分钟后关机,在1分钟之内输入这个命令可以取消关机 |
shutdown -r now | 时间为now,加了-r选项,表示现在关机 |
shutdown 20:25 | 系统在今天20:25关机 |
shutdown +10 | 系统在10分钟后关机 |
远程维护服务器时最好不要关闭系统,而应该重新启动系统
shutdown选项 | 含义 |
---|---|
-r | 重新启动(不加是直接关机,加了是重新启动) |
②.ifconfig命令
卡和IP地址
卡是一个专门负责两台电脑 络通讯的硬件设备(有限 卡,无线 卡WIFI)
IP地址是设置在 卡上的地址信息,地址信息唯一标识一个 卡
电脑比作电话, 卡相当于SIM卡,IP地址相当于电话 码
IP地址是唯一的,否则会出现冲突,无法正常通讯,不同的系统(Windows,linux,macOS在同一台电脑上虚拟机上的IP地址也不同,但相似)
下载ifconfig命令:sudo apt install net-tools
ipconfig命令 | 含义 |
---|---|
ipconfig | 查看或配置 卡信息 |
ipconfig ` | ` grep inet |
④.ssh命令
什么是SSH
通过SSH客户端可以连接到运行了SSH服务器的远程机器上
在自己的服务器上安装一个SSH服务器软件,在自己电脑上安装一个SSH客户端软件
在linux和macOS系统SSH客户端都是自带的,在windows系统需要自己安装SSH客户端
为什么要使用SSH
SSH客户端是一种使用Secure Shell(SSH)协议连接到远程计算机的软件程序
SSH是目前较可靠,专门为远程登录会话和其他 络服务提供安全性协议
ssh协议的作用 | 含义 |
---|---|
对传输的数据进行 | ,防止DNS欺骗和IP欺骗 |
对数据进行 |
域名和端口
域名:一串用点分隔的名字组成,例如www.itcast.cn
域名是IP地址的别名,方便用户记忆(可以通过域名或IP地址在 络上找到一台计算机)
:通过IP地址找到 络上的
:通过端口 可以找到计算机上运行的
SSH服务器默认的端口 是22,如果默认端口 ,在连接的时候,可以省略
ping www.baidu.com(域名)可以得到百度的IP地址(39.156.66.14)
输入39.156.66.14可以打开百度首页,输入39.156.66.14:80也可以打开百度首页
通过来访问一台电脑上的某一个
服务 | 端口 |
---|---|
SSH服务器 | 22 |
Web服务器 | 80 |
HTTPS | 443 |
FTP服务器 | 21 |
SSH客户端的使用
ssh [-p port] user@remote
使用exit退出当前用户的登录
ssh终端命令只能在linux或unix系统下使用,如果在windows系统中,需要安装PuTTY或Xshell客户端软件
ssh参数 | 含义 |
---|---|
user | 远程机器上的用户名,若不指定默认为当前用户 |
remote | 远程机器的地址,可以是IP/域名/别名 |
port | SSH Server监听的端口,如果不指定,默认值22 |
macOS和linux系统使用ssh
ssh命令 | 含义 |
---|---|
ssh 22 w@192.168.106.128 | 远程登录IP地址为192.168.106.128的电脑,用户名为w,端口 为22的服务 |
登录后可以对这台电脑进行操作,比如
建文件:touch 1.txt
强制重启:sudo shutdown -r now
Windows系统之PuTTY使用ssh
下载 址:PuTTY
安装后,需要输入想要访问电脑的IP地址,如果出现 connection refused错误,说明虚拟机没有安装ssh-server
安装ssh-server:sudo apt-get install openssh-server
Windows系统之Xshell使用ssh
下载 址:Xshell
使用方法
SSH高级
有关ssh配置信息都保存在用户家目录下的.ssh目录下(.ssh是一个隐藏目录)
Ubuntu作为客户端,macOS作为服务器,连接macOS
免密码登录视频
完成以下两个操作,设置免密登录后,无论是ssh登录命令或者scp复制命令都不需要输入密码了
免密登录的原理:
①.配置公钥:,生成id_rsa.pub(公钥),id_rsa(私钥)两个文件,即可生成SSH钥匙
②.上传公钥到服务器:,将公钥文件复制到远程服务器,让远程服务器记住公钥,现在公钥在远程服务器,私钥在本地
SSH客户端发送数据使用私钥加密,SSH服务器接收后使用公钥解密
SSH服务器发送数据使用公钥加密,SSH客户端接收后使用私钥解密
③.因为数据都是加密的,就不需要再输入密码登录了
非对称加密:公钥加密的数据,需要用私钥解密;私钥加密的数据,需要用公钥解密
⑤.scp命令
scp终端命令只能在linux或unix系统下使用,macOS也可以(因为macOS是基于unix系统开发的)
如果在windows系统,需要安装PuTTY,使用pscp命令行根据或者安装FIleZilla使用FTP进行文件传输
scp命令 含义 scp port 源文件 user@remote远程目录/目标文件名 远程拷贝文件(secure copy) scp port 01.py user@remote:Desktop/02.py 把本地当前目录下的01.py复制到远程家目录下的Desktop/02.py中 scp port user@remote:Desktop/01.py 02.py 把远程家目录下的Desktop/01.py复制到本地当前目录下的02.py中 scp demo user@remote:Desktop 把当前目录下的demo复制到远程家目录下的Desktop下 scp user@remote:Desktop demo 把远程家目录下的Desktop复制到当前目录下的demo下
scp选项 含义 -r 若源文件是目录,夹-r选项将递归复制该目录下的所有子目录和文件 -p 若远程SSH服务器的端口 不是22,需要用大写字母-P指定端口 注:后面的路径是相对路径,是相对于用户的家目录作为参照路径
注:与ssh命令区别
ssh使用的是小写p,scp命令使用的是大写的P
ssh是单向的,只能SSH客户端操作SSH服务器
scp是双向的,可以SSH客户端复制到SSH服务器,也可以SSH服务器复制到SSH客户端macOS系统复制:scp命令
scp命令 含义 scp 22 wen@192.168.106.128:Desk/01.py 远程家目录Desk/01.py复制到本地当前目录下的中 scp 22 01.py wen@192.168.106.128:Desk 本地当前目录下的01.py复制到远程家目录Desk/中 scp demo wen@192.168.106.128:Desk 当前目录下的demo复制到远程家目录下的Desk下 scp wen@192.168.106.128:Desk demo 远程家目录下的Desk复制到当前目录下的demo下 windows系统复制:FTP文件传输
下载路径:FileZilla
FileZilla传输文件时使用的是FTP服务,而不是SSH服务,因此端口 是21filezilla无法连接到服务器
打开filezilla—左上角文件下的站点管理器—新站点—输入主机,用户和密码,不需要输入端口 –连接即可
可以看到本地站点和远程站点,将需要的文件直接拖到对方的文件所在区即可完成复制![]()
10.Linux用户权限命令扩展
用户管理包括用户管理与组管理
本机或远程登录系统都必须有一个账 (用户)
并且不同用户对于不同系统资源(文件/目录)拥有不同的使用权限组是为了方便用户管理,将具有相同权限的用户放在同一个组中
先设置组,对组设置好权限,再将不同的权限的用户添加到对应的有相应权限的组中
文件/目录的权限 缩写/数字代 可读(read) r/4 可写(write) w/2 可执行(excute) x/1 ①.修改权限命令chmod
chmod命令 含义 chmod rwx 文件名/目录名 修改用户/组对文件/目录的权限 chmod rw 01.py 给01.py文件可读可写的权限 chmod rw 01.py 给01.py文件可读可写的权限 chmod +x 01.py 添加可执行权限 chmod -x test(目录) 删除test目录的可执行权限 拥有可执行权限的文件ls命令下会,使用执行01.py文件
以下是01.py文件的内容在linux中,要想针对目录下执行终端命令,就必须给该目录增加可执行的权限,否则会提示权限不够
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!