目录

  • 一.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 -p(小写) 端口号 user@ip/域名/别名 远程登录
scp -P 端口号 源文件 user@ip/域名/别名:远程目录/目标文件名 远程复制文件
chmod +/-rwx 文件/目录 对文件/目录 增加/删除 可读可写可执行的权限
sudo 以root用户执行命令
groupadd 组名 添加组
groupdel 组名 删除组
cat/etc/group 确认组信息
chgrp 组名 文件/目录名 修改文件/目录的所属组
sudo groupadd 组名 添加组
sudo groupdel 组名 删除组
cat /etc/group 确认组信息
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 创建时间
公共的 目录/文件名称

硬链接数,一般文件的硬链接数是1,目录有多少个硬链接数取决于它有多少个子目录(子目录数+2)

ls通配符 含义
* 代表任意个字符(包括0个)(例1*.txt可以匹配1.txt,12.txt,123.txt)
代表1个字符(例1?.txt只能匹配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 /home/wen/123 复制124.txt到/home/wen/123目录下
cp 1.txt /home/we/1.txt 复制1.txt到/home/we/1.txt文件中,不存在1.txt文件则复制,存在则无法创建
cp 2.txt /home/we/1.txt 复制2.txt到/home/we/1.txt文件中,修改文件名
cp -r 123 /home/wen/a 复制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文字内容

touch创建文件需要先创建,再编辑内容
touch b
echo创建文件可以直接创建并写入内容
echo python >> cc

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

一台计算机可能会有一个物理网卡和多个虚拟网卡,在linux中物理网卡的名字通常以ensXX表示
127.0.0.1被称为本地回环/环回地址,一般来测试本机网卡是否正常

③.ping命令
ping命令 含义
ping IP地址 检测目标主机是否连接正常,ctrl+c结束发包
ping 127.0.0.1 检测本地网卡工作是否正常,ctrl+c结束发包

linux中,想要终止一个终端程序,绝大多数都使用ctrl+c
如果ping的IP地址不在局域网中,会显示错误信息:Destination Host Unreachable,目标主机不能到达

④.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地址:通过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 -p22 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复制命令都不需要输入密码了

免密登录的原理:
①.配置公钥ssh-keygen,生成id_rsa.pub(公钥),id_rsa(私钥)两个文件,即可生成SSH钥匙
②.上传公钥到服务器ssh-copy-id -p port user@remote,将公钥文件复制到远程服务器,让远程服务器记住公钥,现在公钥在远程服务器,私钥在本地
SSH客户端发送数据使用私钥加密,SSH服务器接收后使用公钥解密
SSH服务器发送数据使用公钥加密,SSH客户端接收后使用私钥解密
③.因为数据都是加密的,就不需要再输入密码登录了

非对称加密:公钥加密的数据,需要用私钥解密;私钥加密的数据,需要用公钥解密

配置别名

①. touch config:在~/.ssh/目录下创建一个config文件
②.将下面配置信息粘贴到config文件中
Host 别名HostName Ip地址User userPort 22
③.登录远程服务器时,只需要使用ssh 别名,即可登录,不需要再输入ssh -p 22 user@remote了
④.复制文件时,使用scp -r ~/Desktop myhost:Desktop/demo即可

⑤.scp命令

scp终端命令只能在linux或unix系统下使用,macOS也可以(因为macOS是基于unix系统开发的)
如果在windows系统,需要安装PuTTY,使用pscp命令行根据或者安装FIleZilla使用FTP进行文件传输

scp命令 含义
scp -P port 源文件 user@remote:远程目录/目标文件名 远程拷贝文件(secure copy)
scp -P port 01.py user@remote:Desktop/02.py 把本地当前目录下的01.py文件复制到远程家目录下的Desktop/02.py中
scp -P port user@remote:Desktop/01.py 02.py 把远程家目录下的Desktop/01.py文件复制到本地当前目录下的02.py中
scp -r demo user@remote:Desktop 把当前目录下的demo目录复制到远程家目录下的Desktop下
scp -r 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 -P 22 wen@192.168.106.128:Desk/01.py . 远程家目录Desk/01.py文件复制到本地当前目录下的中
scp -P 22 01.py wen@192.168.106.128:Desk 本地当前目录下的01.py文件复制到远程家目录Desk/中
scp -r demo wen@192.168.106.128:Desk 当前目录下的demo目录复制到远程家目录下的Desk下
scp -r wen@192.168.106.128:Desk demo 远程家目录下的Desk目录复制到当前目录下的demo下
windows系统复制:FTP文件传输

下载路径:FileZilla
FileZilla传输文件时使用的是FTP服务,而不是SSH服务,因此端口号是21

filezilla无法连接到服务器

打开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文件
以下是01.py文件的内容

#!/usr/bin/python3
print("Hello World")
print("这是美好的一天")

在linux中,要想针对目录下执行终端命令,就必须给该目录增加可执行的权限,否则会提示权限不够

目录没有的权限 什么命令执行不了
删除目录可执行权限 cd test就无法进入test目录,ls test也无法查看test目录内容,touch 01.py无法执行
删除目录可读权限 ls test无法执行
删除目录可写权限 touch 01.py无法执行
②.sudo命令
超级用户root

root用户用于系统的维护和管理(不用于日常使用),对操作系统的所有资源具有所有访问权限
不推荐直接用root账号登录系统,linux安装过程中会提示创建一个用户账号,这个默认用户被称为标准用户

su(substitute user),表示使用另一个用户身份
日常使用标准用户,标准用户想维护管理系统时,加一个sudo,表示以其他身份(预设身份是root)执行命令

用户使用sudo需要输入密码,之后有5分钟的有效期限,超过期限需要重新输入密码
若未经授权的用户企图使用sudo,会发出警告邮件给管理员root用户

11.Linux组管理权限命令扩展

提示:创建组/删除组/修改组的终端命令都需要通过sudo执行
如果不加sudo会报错,没有权限,/etc是存放系统配置信息的目录,/etc/group存放组用户的配置信息

命令 含义
sudo groupadd 组名 添加组
sudo groupdel 组名 删除组
cat /etc/group 确认组信息
sudo chgrp -R 组名 被修改的文件/目录名 修改文件/目录的所属组,-R是递归修改子目录和文件的权限

预先针对组设置权限,后将不同用户添加到对应组中,就不用依次为每个用户设置权限

#1.在python用户桌面目录下创建python学习目录
wenmiao@ubuntu:~/桌面$ mkdir python学习
#2.新建dev组
wenmiao@ubuntu:~/桌面$ sudo groupadd dev
#3.将python学习目录的组修改为dev
wenmiao@ubuntu:~/桌面$ sudo chgrp -R dev python学习

12.Linux用户管理权限命令扩展

①.创建用户useradd/passwd

提示:创建用户/删除用户/修改用户的终端命令都需要通过sudo执行

命令 含义
sudo useradd -m -g 组名 新建用户名 添加新用户
sudo passwd 用户名 设置用户密码,普通用户可以直接修改自己账户密码

使用默认的useradd添加用户后是没有sudo权限的,可以使用usermod将用户添加到sudo附加组中(见下面)

选项 含义
-m 自动建立用户家目录,如果不使用-m选项就不会创建用户的家目录/home/zhangsan
-g 指定用户所在组,否则会建立一个与用户名同名的组(这是为何平时ls -lh后看到的用户和组的名字相同)
②.删除用户userdel
命令 含义
sudo userdel -r 用户名 删除用户
选项 含义
-r 自动删除用户的家目录

如果创建用户时忘记加上-m选项,最简单的方法是使用userdel -r将用户删除,重新创建
用户信息保存在/etc/passwd文件中

③.查看用户id/who/whoami
命令 含义
id [用户名] 查看用户UID(用户代号)和GID(组代号)
who 查看当前所有登录的用户列表(包括当前系统登录和远程登录)
whoami 查看当前登录用户的账户名

④.usermod命令

用来设置用户的主组附加组和登录shell

命令 含义
sudo usermod -g 组 用户名 修改用户主组(etc/passwd中的GID)
sudo usermod -G 组 用户名 修改用户附加组(etc/group中的)
sudo usermod -s /bin/bash 用户名 修改用户登录Shell(一个软件,在Ubuntu中使用ctrl+alt+T打开)

Ubuntu默认使用的Shell叫dash(软件,效率高,但显示不美观),而wenmiao用户使用的Shell叫bash
使用 cat /etc/passwd查看,dash的结尾是/bin/sh,而bash的结尾是/bin/bash

⑤.查看命令所在位置which

/etc/passwd:保存用户信息的文本文件(不能执行)
/usr/bin/passwd:用于修改用户密码的程序(可执行)

命令 含义
which 所要查的命令 查看命令所在位置
which passwd pswwd命令的位置存放在/usr/bin/passwd
bin和sbin

linux中,大多数可执行文件都存放在/bin、/sbin、/usr/bin、/usr/sbin

命令 含义
/bin 普通的二进制可执行文件目录,主要用于具体应用(binary)
/sbin 系统管理员专用,主要用于系统管理的二进制可执行文件目录(system binary)
/usr/bin 后期安装普通的一些软件(user commands for applications )
/usr/sbin 后期安装系统管理相关,超级用户的一些管理程序(super user commands for applications)
⑥.切换用户命令su
命令 含义
su 用户名 切换用户,但不切换当前目录,任然是在原用户的家目录中
su - 用户名 切换用户,并且切换目录(切换到当前用户的家目录)
su - 切换到root目录,不安全,不推荐使用,但在切换到root目录后不需要使用sudo了

使用exit退出,一直到退出shell

⑦.修改文件权限chown/chgrp/chmod
命令 含义
sudo chown 用户名 文件名/目录名 修改拥有者
sudo chgrp -R 组名 文件名/目录名 递归的修改所有目录和子目录的组
sudo chmod -R 755 文件名/目录名 递归的修改所有目录和子目录的权限

755,第一个7表示文件/目录所有者权限,第二个7表示所在组权限,第三个5表示其他用户权限
r表示4,w表示2,x表示1,如果不设置就是0,如果rwx(可读可写可执行权限都有,则数字就是4+2+1=7)

权限 数字
rwx 7(4+2+1)
rw- 6(4+2+0)
r-x 5(4+0+1)
r– 4(4+0+0)
-wx 3(0+2+1)
-w- 2(0+2+0)
–x 1(0+0+1)
0(0+0+0)
常见数字组合 含义(u用户、g组、o其他)
777 u=rwx,g=rwx,o=rwx
755 u=rwx,g=r-x,o=r-x
644 u=rw-,g=r–,o=r–

13.系统信息相关命令扩展

当远程维护服务器时,方便查看服务器上当前的系统日期和时间/磁盘空间占用情况/程序执行情况

①.时间和日期命令date/cal
命令 含义
date 查看系统时间
cal 查看本月日历(calender)
cal -y -y选项可以查看一年的日历
②.查看磁盘信息df/du
命令 含义
df -h 显示磁盘剩余空间(disk free)
du -h[目录名] 显示目录下文件大小(disk usage)
du -h 不加目录就显示当前目录的文件大小
选项 含义
-h 以人性化的方式显示文件大小


③.进程信息命令ps/top/kill

进程:当前正在执行的一个程序
在电脑上安装的QQ不能说是进程,只有被打开后才能叫做进程

命令 含义
ps aux 查看进程的详细状况(process status)
top 动态显示运行中进程并且排序(查看CPU和内存占用率最高的进程),退出top命令输入q
kill [-9] PID进程代号 终止指定代号的进程,-9表示强制终止

ps命令:若不加选项,只显示当前用户通过终端启动的应用程序
kill命令:最好终止由当前用户开启的进程,而不要终止root身份开启的进程,否则可能导致系统崩溃

选项 含义
a 显示终端上所有进程,包括其他用户的进程
u 显示进程的详细信息
x 显示没有控制终端的进程(不是通过终端启动的进程)

14.Linux其他命令扩展

①.查找文件命令find
find命令 含义
find [路径] -name “*.py” 查找指定路径下扩展名为.py的文件,包括指定目录的子目录

如果省略路径,表示在当前文件夹下查找
使用find命令,可以使用通配符*、?、[abc]、[a-f]

find例子 含义
find -name “*1* 搜索桌面目录文件名包含1的文件
find -name “*.txt 搜索桌面目录下,所有以.txt为扩展名的文件
find -name “1*” 搜索桌面目录下,以数字1开头的文件
②.文件软硬链接示意图

在linux中,文件名文件的数据是分开存储的

②.建立文件软链接ln

软链接相当于windows中的快捷方式,可以快速的打开软链接指向的文件
为什么要使用软链接(快捷方式):因为文件目录结构比较深(像/home/wenmiao/桌面/demo/b/c/01.py)

ln命令 含义
ln -s 被链接的源文件 链接文件 建立文件软链接

创建后的两个文件占用相同大小的硬盘空间
源文件要使用绝对路径,不能使用相对路径,方便移动链接文件后,仍能够正常使用

软链接演练 含义
mkdir -p demo/b/c 在桌面目录下创建demo/b/c目录
mv 01.py demo/b/c 将桌面目录下的01.py移动到demo/b/c目录下
ln -s /home/wenmiao/桌面/demo/b/c/01.py FirstPython 使用相对路径在桌面目录下新建01.py的软链接FirstPython
ln -s ./demo/b/c/01.py FirstPython2 使用绝对路径在桌面目录下新建01.py的软链接FirstPython2
mv FirstPython ./demo 将FirstPython移动到demo目录下
mv FirstPython2 ./demo 将FirstPython2移动到demo目录下
mv First* ./demo 可以将上面两个命令替换掉

相对路径和绝对路径创建的软链接第一次创建时都可以正常使用,但移动后相对路径的无法使用
对比使用相对路径和绝对路径的区别
使用相对路径创建的软链接移动后链接断开,不能打开了
使用绝对路径创建的软链接移动后链接链接,还可以打开

③.建立文件硬链接ln

硬链接就是有多少种方式可以访问文件或目录
硬链接数,一般文件的硬链接数是1,目录有多少个硬链接数取决于它有多少个子目录(子目录数+2)

ln命令 含义
ln 被链接的源文件 链接文件 建立硬链接文件
硬链接演练 含义
在哪个目录建立硬链接,要先切换到当前目录,ln /home/wenmiao/桌面/demo/b/c/01.py 01_hard ~/Desktop/demo目录下建立~/Desktop/demo/b/c/01.py的硬链接01_hard
ls -l 使用ls -l查看文件的硬链接数
rm ./demo/b/c/01.py 删除01.py文件
tree 并且使用tree来确认demo目录下的三个链接文件

软硬链接区别
硬链接在源文件删除后任然可以访问,只是硬链接数少1条
软链接在源文件删除后无论是相对路径创建的还是绝对路径创建的都会失效

15.Linux打包压缩命令扩展

不同操作系统中,常用的打包方式不一样
Windows常用rar
Mac常用zip
Linux常用tar.gz

①.打包命令/解包命令tar

tar是把一系列文件打包到一个大文件夹中,也可以把一个打包的大文件恢复成一系列文件(只打包和解包,不压缩)

tar命令 含义
tar -cvf 打包文件.tar 被打包文件/路径1,2,3 打包文件
tar -xvf 打包文件.tar 解包文件
tar选项 含义
c 生成档案文件,创建打包文件
x 解开档案文件
v 列出归档解档的详细过程,显示进度
f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项后面(其他选项顺序随意)
打包/解包演练 含义
在桌面创建demo文件夹 mkdir demo
在demo下新建三个空白文件01.py,02.py,03.py touch 01.py,touch 02.py,touch 03.py
将三个文件打成py.tar的包 tar -cvf py.tar 01.py 02.py 03.py
新建tar目录 mkdir tar
将py.tar移动到tar目录下 mv py.tar ./tar
进入tar目录,解包py.tar cd tar,tar -xvf py.tar
②.压缩命令/解压缩命令gzip

tar只负责打tar包,扩展名为xxx.tar
gzip负责压缩tar打包后的文件,扩展名为xxx.tar.gz

tar选项 含义
-z 调用gzip,方面实现打包后压缩和解压缩功能
-C 解压缩到指定目录,注意要解压缩的目录必须存在,不加-C选项默认解压缩在当前目录
gzip+tar命令 含义
tar -zcvf 打包文件.tar.gz 被压缩文件/路径 压缩文件
tar -zxvf 打包文件.tar.gz 解压缩文件
tar -zxvf 打包文件.tar.gz -C 目标路径 解压缩到指定路径
gzip压缩/解压缩演练 含义
将三个文件压缩成py.tar.gz tar -zcvf py.tar.gz *.py
将py.tar.gz移动到tar目录下 mv py.tar.gz ./tar
进入gz目录,解压缩py.tar.gz到kk文件夹 cd gz,tar -zxvf py.tar.gz -C /home/wenmiao/桌面/demo/kk
③.压缩命令/解压缩命令bzip2(two)

tar只负责打tar包,扩展名为xxx.tar
bzip2负责压缩tar打包后的文件,扩展名为xxx.tar.bz2

tar选项 含义
-j 调用bzip2,方面实现打包后压缩和解压缩功能
bzip2+tar命令 含义
tar -jcvf 打包文件.tar.gz 被压缩文件/路径 压缩文件
tar -jxvf 打包文件.tar.gz 解压缩文件
tar -jxvf 打包文件.tar.gz -C 目标路径 解压缩到指定路径
bzip2压缩/解压缩演练 含义
将三个文件压缩成py.tar.bz2 tar -jcvf py.tar.bz2 *.py
解压缩py.tar.bz2到demo/bz2文件夹中 tar -jxvf py.tar.bz2 -C /home/wenmiao/桌面/demo/bz2

16.Linux安装/卸载/更新软件命令扩展

①.安装/卸载/更新软件命令apt
apt命令 含义
sudo apt install 软件包 在终端中安装软件
sudo apt remove 软件名 卸载软件
sudo apt upgrade 更新已安装的软件包,去服务器上检查哪些软件有更新包,就会自动更新
apt演练 含义
sudo apt install sl sl命令执行后,终端中显示一个小火车
sudo apt install htop htop命令可以使top命令查出的进程排名软件更美观
②.配置软件源

软件源:安装所有软件的源头
如果希望在Ubuntu中安装软件更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器,来提高软件下载/安装服务
更新服务器的过程时间较长,更新完成后,再安装软件就会从新设置的服务器下载软件了

镜像源:所有服务器的内容是相同的(镜像),但位置不同,国内服务器通常速度更快一些


配置软件源

软件测试 - Linux的常用命令相关推荐

  1. linux的编程命令,linux编程常用命令

    学习linux编程最基本的就是要掌握常用的编程命令,下面由学习啦小编为大家整理了linux编程常用命令相关知识,希望大家喜欢! linux编程常用命令1.编译应用程序 make -f makefile ...

  2. linux指令笔试,Linux笔试常用命令

    Linux笔试常用命令 时间:2019-01-01 [www.unjs.com - 资料大全] 文件操作命令 ls 作用:列目录,Linux笔试常用命令>(https://www.unjs.co ...

  3. linux find -size参数,Linux find 常用命令

    Linux find 常用命令 (2012-10-24 11:32:52) 标签: linux shell 说明: 以下内容,若标注在 [ ] 中括号内的均可省略,除非做特别说明. 但严格来说,若缺少 ...

  4. linux 删除20日前数据,Linux 维护常用命令

    Linux 维护常用命令 1.查看某文件的一部分 如果你只想看文件的前 5 行,可以使用 head 命令, 如:head -5 /etc/passwd 如果你想查看文件的后 10 行,可以使用 tai ...

  5. 【收藏】Linux系统常用命令速查手册(附赠PDF档)

    给大家收集整理了日常常用的Linux系统命令,仅供大家参考. 大家如果觉得文章看起来不太方便,获取<Linux系统常用命令速查手册>.PDF版. 联系小姐姐,备注"liunx命令 ...

  6. 【收藏】Linux系统常用命令速查手册(附PDF下载链接)

    给大家收集整理了日常常用的Linux系统命令,仅供大家参考. 大家如果觉得文章看起来不太方便,可以在+qq. 2 3 5 53 3 1 0 4 6 备注"liunx命令",即可获取 ...

  7. Linux:常用命令大全

    一.Linux系统的目录结构: 1:Linux所有内容是以文件形式进行管理 2:/ 根目录 (1)bin  引导过程必需的命令,存放二进制可执行文件(ls,cat,mkdir等) (2)boot 存放 ...

  8. Linux 最常用命令(简单易学,但能解决 95% 以上的问题)

    linux的常用命令,涉及到linux的文件操作.vim操作.系统命令等,建议收藏哈! 作者:longctw https://blog.csdn.net/xulong_08/article/detai ...

  9. Linux GDB常用命令一栏

    Linux GDB 常用命令如下: 1.启动和退出gdb (1)启动:gdb ***:显示一段版权说明: (*** 表示可执行程序名) (2)退出:quit.有的时候输入quit后会出现相关提示:类似 ...

最新文章

  1. 2019年计算机考研408真题
  2. CountDownLatch 的 .await() 的线程阻塞 和countDown() 计时唤醒
  3. 让dwz 的表格或者表单显示竖滚动条的代码
  4. wxHtml 示例:帮助浏览器
  5. IOS - 快速入门
  6. 45道CSS基础面试题
  7. 使用 mono 编译 .NET Standard 应用
  8. Redis进阶实践之十六 Redis大批量增加数据
  9. 理论 | 教你彻底学会Java序列化和反序列化
  10. 网络中延迟对主观感受的影响
  11. portlet_Portlet生命周期
  12. AlbertTransformerEncoder
  13. java 手机网站 cookie操作_Java中的cookie管理方案——完整易用的客户端cookie操作库...
  14. 怎么看神经网络过早收敛_你的神经网络真的收敛了么?
  15. 世界顶级企业的数据中台打造之旅
  16. 阿里技术专家甘盘:浅谈双十一背后的支付宝LDC架构和其CAP分析(含phil补充)
  17. 78行Python代码教你找回微信撤回的消息
  18. LTE核心网中,SGW、PGW、PCRF都有计费的功能,请问这几个网元的计费功能有什么区别与联系呢?...
  19. webservice axis2+spring整合
  20. 使用maven-sql-plugin实现持续数据库集成(CDBI) [ 光影人像 东海陈光剑 的博客 ]

热门文章

  1. Beosin EOS-IDE 升级用户体验及常见问题答疑
  2. RAM ROM 寄存器(Rigester) CPU的关系
  3. date在java中是什么类型_java中date 是什么类型
  4. 海贼王之伟大航路——状压记忆化搜索
  5. 【C++代码】区间重叠问题
  6. 【linux驱动】USB子系统分析
  7. php 毛玻璃,毛玻璃 - 晚晴小筑 - OSCHINA - 中文开源技术交流社区
  8. 派大星python代码_一些简单的python例子
  9. php实训表单验证的日记心得,php实训心得
  10. VPP系统 接口启用DHCP