1.常用命令
终端命令格式 :command [-option] [parameter]
option和parameter是可选项,带中括号的命令表示可省,option用来对命令进行控制,parameter是传给命令的参数。
命令 | 对应英文 | 作用 |
---|---|---|
ls | list | 查看当前文件夹下的内容 |
pwd | print work directory | 查看当前位置路径 |
cd [目录名] | change directory | 进入目录 |
touch [文件名] | touch | 新建文件 |
mkdir [文件夹名] | make directory | 新建文件夹 |
rm [文件名] | remove | 删除文件 |
clear | clear | 清屏 |
小技巧:
CTRL + 放大终端字体显示
CTRL - 缩小终端字体显示
Tab 自动补全
CTRL+C 停止终端
↑ ↓ 查看使用过的命令
2.查阅命令帮助信息
command --help
man command
来源manual:手册
使用man的操作键:
操作键 | 功能 |
---|---|
空格键 | 显示手册的下一屏 |
Enter | 页面向后滚动一行 |
b | 往回滚动一屏 |
f | 往前滚动一屏 |
q | 退出 |
/word | 搜索word字符串 |
3.目录的相关命令
cd命令:
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户名) |
cd ~ | 切换到当前用户的主目录(/home/用户名) |
cd . | 保持当前目录不变 |
cd … | 切换到当前目录的父目录 |
cd - | 来回切换最近两次工作目录 |
切换根目录 |
ls命令选项:
option | 功能 |
---|---|
-a | 显示隐藏文件 |
-l | 显示文件的详细信息 |
-h | 与-l搭配显示文件大小 |
ls通配符的使用
通配符 | 含义 |
---|---|
* | 代表任意个数的字符串 |
? | 代表任意一个字符 |
[abc] | 代表可以匹配字符串abc中的任意一个字符 |
[a-f] | 代表可以匹配a到f中的任意一个字符 |
4.文件的相关命令
4.1 touch命令
touch 文件名
如果文件不存在会新建文件
如果文件存在则会修改文件的最后修改时间
4.2 mkdir命令
mkdir -p a/b/c/d
递归创建文件夹
4.3 rm命令
rm -f
强制删除,忽略不存在的文件,没有提示。
rm -r
递归删除目录下的内容,删除文件夹时必须加-r
*注:*rm也可以使用通配符
4.4 tree命令
tree [-d][目录名]
以树状图列出当前目录下的文件和目录,参数-d表示只列出目录,目录名缺省表示当前文件夹
4.5 cp命令
cp /a/b/文件名1 c/d[文件名2]
将a/b/文件1复制到c/d,命名为文件2,文件名2缺省则保持不变
cp -i
覆盖文件前提示
cp -r
复制目录及目录下的子目录和文件,对象必须为文件夹
4.6 mv命令
mv /a/b/文件名1 c/d[文件名2]
mv 文件夹a 文件夹b
实现文件或者目录的移动,目标文件名缺省则保持不变,在相同路径下移动即重命名
mv -i
覆盖文件前提示
4.7 cat、more命令
cat 文件名
(concatenate) 查看文件内容,创建文件、文件合并、追加文件内容等功能。一次显示所有内容,适合内容较少的文本文件。
cat -b
对非空格行编号并输出行号,等价与linux中的nl命令。
cat -n
每行都参与编号并输出行号。
more 文件名
分屏显示文件内容,适用于查看内容较多的文本。
下方的操作键与man命令的功能一样。
操作键 | 功能 |
---|---|
空格键 | 显示页面的下一屏 |
Enter | 页面向后滚动一行 |
b | 往回滚动一屏 |
f | 往前滚动一屏 |
q | 退出 |
/word | 搜索word字符串 |
4.8 grep
grep
对文本文件进行模式查找(正则表达式)
选项 | 功能 |
---|---|
-n | 显示匹配行及其行号 |
-v | 显示不包含匹配文本的所有行 |
-i | 忽略大小写 |
^text | 查找以text为行首 |
text$ | 查找以text为行尾 |
4.9 >和>>重定向命令
echo 参数
将参数在终端显示
> 文件名
将命令的执行结果重定向到一个文件中,文件不存在则新建,存在则覆盖。
>> 文件名
将命令的执行结果重定向追加到一个文件中
4.10 | 管道命令
命令1 | 命令2
将一个命令1的输出作为另一个命令的输入,即对命令1输出的内容执行命令2.
5.远程管理的相关命令
5.1 关机/重启
shutdown [选项] [时间]
选项缺省表示关机,时间缺省默认1分钟
shutdown -r now
-r表示重启,now表示现在
shutdown +10
10分钟后关机
shutdown 20:00
今天20点关机
shutdown -c
取消之前关机/重启命令
5.2 查看和配置网卡信息
ifconfig
查看当前网卡配置信息
ping 目标ip地址
检测当前电脑与目标ip地址的电脑连接是否正常,ping 127.0.0.1表示测试本机网卡连接是否正常。
**检测原理:**本机发送数据包给目标机器,目标机器收到后返回一个数据包,根据是否收到数据包以及用时,即刻判断检测成功及传输速度
5.3 远程登录和复制文件
**域名:**ip地址的别名,便于记忆。
**端口:**通过端口访问计算机上运行的应用程序。
ssh服务器默认端口为22
web服务器默认端口80
ftp服务器默认端口21
https默认端口443
ssh客户端的简单使用:
ssh [-p port] user@remote
port表示端口号,缺省为22。
user表示远程机器上用户名。
remote表示远程机器的域名/IP地址/别名
注:使用exit命令可以退出当前用户登录,ssh这个命令只能再Linux和Unix系统下使用,在windows下需通过puTTY或者XShell客户端软件
scp命令说明
scp [-P port] 本地当前目录源文件1 user@remote:相对路径/目标文件1
scp [-P port] user@remote:相对路径/源文件 本地目录下的文件
这里的相对路径是相对user用户home目录,也可为绝对路径。port缺省为22,与ssh不同的是这里的-P是大写。
scp [-P port] -r demo user@remote:Desktop
加上参数-r可以复制文件夹,将demo文件夹复制到Desktop文件夹下。
注意:scp在windows终端中不可用,一般windows安装Filezilia通过FTP服务器传输
5.4 ssh高级设置
Linux的home/下的隐藏文件.ssh,用来保存ssh的远程登录的配置信息文件
1)设置ssh远程免密登录
配置公钥
执行ssh-keygen
即可生成ssh钥匙,一路回车即可。
上次公钥到服务器
执行ssh-copy-id -p port user@remote
可以让远程服务器记住我们的公钥
2)免密登录原理
ssh客户端执行ssh-keygen
在.ssh目录下会生成id_ rsa.pub(公钥文件)和id_rsa(私钥文件)
并把公钥文件传输到ssh服务器命名为authorized_keys。在传输过程中,本地使用私钥对数据进行加密/解密,服务器使用公钥对数据进行加密/解密。 传输过程实现了加密解密所以就不需要再输入密码。
非对称加密算法
- 使用公钥加密的数据,需要使用私钥解密
- 使用私钥加密的数据,需要使用公钥解密
**3)配置别名 **
在本地客户端的.ssh文件夹下新建config配置文件,并且键入和保存 以下信息:
Host 别名
HostName 远程ip地址
User 远程用户名
Port 22(端口号)
配置后就可以直接使用ssh 别名
登录到远程服务器上,别名相当于-P port user@remote
6. 用户用户组相关命令
6.1 文件权限
1)不同用户对文件和目录有着不同的权限
权限 | 英文 | 缩写 | 数字代号 |
---|---|---|---|
读 | read | r | 4 |
写 | write | w | 2 |
执行 | excute | x | 1 |
不同的用户可以组成一个用户组,便于管理,设置权限。
2)使用ls -l时输出说明
使用ls -l
查看文件夹下的详细信息,从左到右依次是:
- 权限:第1个字符如果是d表示目录,其它9个字符在下方表格列出
- 硬链接数:通俗的讲就是有多少种方式可以访问到当前目录/文件,绝对路径和相对路径*(cd . cd …)*
- 拥有者:家目录下的文件/目录拥有者通常是当前用户
- 组:linux中,很多适合会出现用户组和用户名相同的情况。
- 大小
- 时间
- 名称
目录/文件 | 拥有者权限 | 组权限 | 其它用户权限 |
---|---|---|---|
d (目录权限示例) | r w - | r w - | r - - |
- (文件权限示例) | r w x | r w x | r - x |
注:目录的可执行权限x表示可以在改目录下执行终端命令
3)使用chmod简单修改权限
chmod +/- rwx 文件名/目录名
(change mode)修改用户/用户组对文件/目录的权限,rwx可分开设置。
在5.7中有更全面的权限修改说明
4)超级用户
- Linux系统中的root账号通常用于系统的维护和管理,对操作系统的所有资源具有所有的访问权限。
- 在大多数版本的Linux中都不推荐直接使用root账号登录系统
- 在Linux安装过程中,系统会自动创建一个默认用户账号,称为“标准用户”
sudo
su
是substitute user的缩写,表示使用另一个用户的身份sudo
表示以其它身份来执行命令,预设的身份为root- 用户使用
sudo
时必须先输入密码,有效时间为5分钟,超出则需重新输入
若未经授权的用户企图使用
sudo
,则会发出警告邮件给管理员
6.2 用户和用户组命令
1)用户组命令
命令 | 作业 |
---|---|
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
chgrp -R 组名 文件/目录名 | 递归修改文件/目录的所属组 |
cat /etc/group | 查看组信息 |
2)用户命令
命令 | 作用 | 说明 |
---|---|---|
useradd -m -g 属组 用户名 | 添加新用户 | -m 自动建立用户的家目录 -g指定用户属组,缺省为同名属组 |
passwd 用户名 | 设置用户密码 | 使用的是user/bin/passwd程序修改用户密码 |
userdel -r 用户名 | 删除用户 | -r 选项会自动删除用户家目录 |
cat /etc/passwd | 查看用户信息 | /etc/passwd是文本文件,用于保存用户信息 |
3)查看用户信息
命令 | 作用 |
---|---|
id [用户名] | 查看用户的UID和GID信息,缺省为当前用户 |
who | 查看当前所有登录的用户列表 |
whoami | 查看当前登录用户的账户名 |
4)passwd文件
etc/passwd
文件用于存放用户信息,由6个分号分割的7个信息,从左到右分别表示:
- 用户名
- 用户密码(x,表示加密的密码)
- UID(用户标识)
- GID(组标识)
- 用户全名或本地账号(缺省为用户名)
- 家目录
- 登录后使用的Shell,Ubuntu默认的是dash
5)usermod命令
-
usermod
用来设置用户的主组、附加组和登录Shell。 -
主组:通常为新建用户时指定,在etc/passwd的GID对应的组
-
附加组:在etc/group中最后一列表示该组的用户列表,用于指定某些用户具有改组的附加权限
注:设置了附加组后,需要重新登录才能生效
#修改用户的主组
usermod -g 组 用户名
#修改用户的附加组
usermod -G 组 用户名
#修改用户的登录Shell
usermod -s /bin/bash
注:使用useradd添加的用户默认是没有权限使用root身份执行命令的,可以使用以下命令讲用户添加到附加组sudo中
usermod -G sudo 用户名
6)which命令
which 命令名
用于查看执行命令所在的位置,例如
which ls
#输出
#/bin/ls
which passwd
#输出
#/user/bin/passwd
bin和sbin
- 在Linux中,绝大多可执行文件都保存在
/bin
、/sbin
、/user/bin
、/user/sbin
/bin
( binary)是二进制执行文件目录,主要用于具体应用/sbin
(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理/user/bin
(user commands for applications)后期安装的一些软件/user/sbin
(super user commands for applications)超级用户的一些管理程序
注:
cd
这个终端命令是内置在系统内核中,没有独立的文件,因此用which
命令无法找到它的位置
7)切换用户
命令 | 作用 | 说明 |
---|---|---|
su -用户名 | 切换用户,并且切换目录 | - 可以切换到用户家目录,否则保持当前路径不变 |
exit | 退出当前登录的用户 |
注意:su不接用户名可以切换到root超级用户,exit是退出当前用户,返回切换前的上一个用户。
例如:执行
su -a
su -b
su -c
exit
之后用户名为b
6.3 修改文件权限
命令 | 作用 |
---|---|
chown 用户名 文件名/目录名 | 修改拥有者 |
chgrp -R 组名 文件名/目录名 | 修改属组 |
chmod -R 777 文件名/目录名 | 修改权限 |
chmod在设置权限时可以使用三个数字分别对应拥有者、属组和其它用户权限
#若采用直接修改读、写和执行权限,不能景区到拥有者、数组和其它用户的权限
chmod +/-rws 文件名/目录名
#采用三个数分别表示拥有者、属组和其它用户的权限
chmod -R 755 文件名/目录名
对应的权限数字代表如上图,其实本质上是一个0-7的三位二进制数000-111代表rwx
例如:101,其中第一个1表示有r权限,第二个0表示没有w权限,第三个1表示有x权限,101写成10进制为5
例如:111101001每三个写成十进制数,就为751表示拥有者、属组和其它用户的权限为rwx-wx–x
7.查看系统信息相关命令
1)时间和日期
date
查看系统时间
cal
calendar查看日历,-y选项可以查看年历
2)磁盘信息
df [-h]
disk free 显示磁盘剩余空间
du [-h] [目录名]
缺省表示当前目录
-h以人性化的方式显示文件大小
3)进程信息
命令 | 作用 |
---|---|
ps aux | process status 查看进程的详细状况 |
top | 动态显示运行中的进程并排序,键入q可退出top命令 |
kill [-9] 进程代号 | 终止指定代号的进程,-9表示强制终止 |
ps命令默认只会显示当前用户通过终端启动的应用程序
可安装htop命令代替top,可更直观美观的显示进程
ps选项功能说明:
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其它用户的进程 |
u | 显示进程的详细状态 |
x | 显示没有控制终端的进程 |
8.其它命令
8.1 find命令简单使用
find [路径] -name "*.txt"
查找指定路径下扩展名是.txt的文件,包括子目录。
- 路径缺省表示当前文件夹
- find命令常与通配符联合使用
- find还有很多高级的使用
8.2 ln 软链接和硬链接
ln [-s] 被链接的源文件 链接后文件名
- 带选项-s为建立文件的软链接,类似于windows中的快捷方式,链接使用绝对路径方便链接文件的移动,若使用相对路径,当链接文件移动后链接将失效。
- 不带-s的为建立文件的硬链接,硬链接相当于文件的另一个名字,Linux中文件名和文件数据是分开存储的,只有所有的文件名都删除后,文件数据才会删除。
在Linux中,只有文件的硬链接数量为0时才会被删除,可使用
ls -l
查看文件的硬链接数。
文件软硬链接的示意图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NzddYqPm-1579933553928)(C:\Users\Tsai\AppData\Roaming\Typora\typora-user-images\1579502858015.png)]
8.3 打包压缩命令
1)打包/解包
不同的操作系统常用的打包压缩方式是不同的
- Windows常用rar
- Mac常用zip
- Linux常用tar.gz
# 打包文件
# 被打包文件可使用通配符
tar -cvf 打包后文件名.tar 被打包文件1 被打包文件2 ...
# 解包文件
tar -xvf 解包文件.tar [-C 目标路径路径]
- tar命令只负责打包和解包,并不复杂压缩
- -f选项必须放在最后,其它选项可随意
- -C 后接的目标路径必须存在
tar选项的说明:
选项 | 含义 |
---|---|
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f后面一定是.tar文件,所有必须放在选项最后 |
2)压缩/解压缩
Linux中用于解压缩的命令有gzip
和bzip2
,将tar命令与这两个命令相结合可以实现打包和压缩,期中gzip
更为常见
只需要在tar命令的选项中加上
-z
或者-j
就可以同时执行gzip
和bzip2
命令
#打包压缩文件
tar -zcvf 打包压缩后的文件名.tar.gz 被压缩文件1 被压缩文件2
tar -jcvf 打包压缩后的文件名.tar.bz2 被压缩文件1 被压缩文件2
#解压缩包
tar -zxvf 被解压文件.tar.gz [-C 目标路径]
tar -jxvf 被解压文件.tar.bz2 [-C 目标路径]
8.4 apt软件安装包管理
apt
(Advanced Packaging Tool) 是Linux下的一款安装包管理工具,可以在终端方便的安装/卸载/更新软件包
#安装软件
sudo apt install 软件包名
#卸载软件
sudo apt remove 软件名
#更新已安装软件
sudo apt upgrade
配置软件源
apt命令是从Linux的主服务器中获取软件包并且安装,此服务器位于国外,国内访问速度慢,而国内有许多镜像源可由apt实现同样的功能,例如阿里镜像服务器,清华镜像服务器等,因此可通过修改软件源为国内的镜像源提高访问速度。
镜像源就是所有服务器内容是相同的,但是根据所在位置不同,国内的服务器速度会更快一些。
只需要在tar命令的选项中加上-z
或者-j
就可以同时执行gzip
和bzip2
命令
#打包压缩文件
tar -zcvf 打包压缩后的文件名.tar.gz 被压缩文件1 被压缩文件2
tar -jcvf 打包压缩后的文件名.tar.bz2 被压缩文件1 被压缩文件2
#解压缩包
tar -zxvf 被解压文件.tar.gz [-C 目标路径]
tar -jxvf 被解压文件.tar.bz2 [-C 目标路径]
8.4 apt软件安装包管理
apt
(Advanced Packaging Tool) 是Linux下的一款安装包管理工具,可以在终端方便的安装/卸载/更新软件包
#安装软件
sudo apt install 软件包名
#卸载软件
sudo apt remove 软件名
#更新已安装软件
sudo apt upgrade
配置软件源
apt命令是从Linux的主服务器中获取软件包并且安装,此服务器位于国外,国内访问速度慢,而国内有许多镜像源可由apt实现同样的功能,例如阿里镜像服务器,清华镜像服务器等,因此可通过修改软件源为国内的镜像源提高访问速度。
镜像源就是所有服务器内容是相同的,但是根据所在位置不同,国内的服务器速度会更快一些。
修改软件源可以用gedit打开/etc/apt/sources.list文件,并且修改文件内容为新的软件源地址。也可通过图形化界面在设置里的软件包更新栏配置。