Linux命令简介
常用命令
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ls | list | 列出所有内容 |
02 | pwd | print work directory | 查看所在路径 |
03 | cd [目录名] | change directory | 切换文件夹 |
04 | touch [文件名] | touch | 文件不存在则新建,存在则修改日期 |
05 | mkdir [目录名] | make directory | 创建目录 |
06 | rm [文件名] | remove | 删除指定的文件 |
07 | clear | clear | 清屏 |
命令格式
command [-options] [parameter]
说明:
- command: 命令
- -options: 选项,多个选项可以写
-a -b
,也可以写-ab
,顺序无关 - parameter: 参数
查阅帮助
--help
command --help
man
man command
man
是manual缩写,手册,包含详细说明
实用技巧
自动补全
- 按
Tab
自动补全命令 - 有歧义时再按一下
Tab
给提示
曾经使用过的命令
- 按上下箭头切换历史命令
- 按
ctrl+c
取消当前输入命令
目录和文件命令
ls 命令说明
- 以
.
开头的文件为隐藏文件,需要用-a
选项查看。 -
.
代表当前目录 -
..
代表上级目录
选项 | 含义 |
---|---|
-a | 查看所有文件,包括隐藏文件 |
-l | 查看可见文件 |
-h | 查看文件时,体积带单位。ls -l -h 或ls -lh |
通配符 | 含义 |
---|---|
* | 任意个字符 |
? | 一个或多个字符 |
[] | 可以匹配字符组中任意一个 |
[abc] | 匹配a, b, c中的任意一个 |
[a-f] | 匹配从a到f范围内的任意一个 |
cd 切换目录
命令 | 含义 |
---|---|
cd | 切换到用户主目录 |
cd ~ | 切换到用户主目录 |
cd . | 保持当前目录不变 |
cd .. | 切换到上级目录 |
cd - | 可以在最近两次工作目录之间来回切换 |
- 绝对路径:以
/
或~
开头 - 相对路径:不是以
/
或~
开头
mkdir 创建目录
Linux中的文件和目录不可同名 ,新建目录不能与文件同名。
选项 | 含义 |
---|---|
-p | 创建路径目录mkdir -p a/b/c/file |
rm 删除文件或目录
rm
删除后不能恢复,谨慎操作。
参数 | 含义 |
---|---|
-r | 删除目录及子目录所有文件 |
-f | 强制删除,不给提示 |
tree 树形结构显示
需要安装tree:apt install tree
选项 | 含义 |
---|---|
-d | 只查看目录 |
参数可选,参数为tree查看目录
cp 拷贝
copy
cp 源 目标
选项 | 含义 |
---|---|
-i | 覆盖文件前提示 |
-r | 如果目标不存在,则作为目录创建,并拷贝源下所有文件到目录;如果目标已存在并且是个目录,则拷贝整个源到此目录下 |
mv 移动
move,可用来重命名
假如目标已存在,会发生覆盖
选项 | 含义 |
---|---|
-i | 覆盖文件前提示 |
文件内容命令
命令 | 英文 | 作用 |
---|---|---|
cat 文件名 | concatenate | 查看全部文件内容 |
more 文件名 | more | 不会全部一次显示,分屏显示 |
grep 搜索文本 文件名 | grep | 搜索文本内容 |
more
使用more的操作键
操作键 | 功能 |
---|---|
空格键 | 显示下一屏 |
Enter | 滚动一行 |
b | 回上一屏 |
f | 前进一屏 |
q | 退出 |
cat
选项 | 含义 |
---|---|
-b | 给非空行编号 |
-n | 无论是否空行都编号 |
grep 模式查找
模式指正则表达式
如果要搜索的内容有空格,需要用引号括起搜索目标
选项 | 含义 |
---|---|
-n | 带行号 |
-v | 查找非包含的结果 |
-i | 忽略大小写 |
echo
在终端中显示参数指定的文字,通常和重定向联合使用
echo 参数
重定向“>”和“>>”
将命令执行结果重定向到一个文件
-
>
输出到目标文件,完全覆盖目标文件内容 -
>>
追加内容到目标文件
ls -lh > a.txt
echo Hello > a.txt
echo world! >> a.txt
管道“|”
- Linux允许将一个命令的输出通过管道做为另一个命令的输入
- 第一个命令
|
第二个命令
常用管道的命令有: - more分屏显示内容
- grep查询文本
ls -lh | grep .txt$
远程管理命令
关机和重启
命令 | 英文 | 作用 |
---|---|---|
shutdown | shutdown | 关机/重启 |
选项 | 含义 |
---|---|
-r | 重启 |
参数 | 含义 |
---|---|
now | 现在执行。如果不指定参数,默认表示1分钟之后关闭系统 |
20:25 | 指定时间 |
+10 | 十分钟后,单位是分钟 |
-c | 取消之前指定的关机计划 |
查看或配置网卡信息
如果把电脑比作电话,那么网卡相当于SIM卡,IP地址相当于电话号码
命令 | 英文 | 作用 |
---|---|---|
ifconfig | configure a network interface | 查看或配置网卡 |
ping ip地址 | ping | 检测到指定ip地址的连接是否正常 |
ifconfig
inet addr:x.x.x.x 是网卡IP地址
ifconfig | grep inet
127.0.0.1是本地回环/环回地址,用来测试本机网卡是否正常
ping
# 检测到目标主机
ping IP地址
# 检测本地网卡是否正常
ping 127.0.0.1
ctrl + c取消ping
ping
的工作原理与潜水艇声纳相似,ping
取自声纳的声音
网管常将ping用作动词,ping一下这台机,看是它是否开着
SSH
Secure Shell 协议。
数据传输是加密的,并且压缩。可防止DNS欺骗和IP欺骗。
通过IP找到网络上的计算机,通过端口号找到相应的服务端程序
常见默认端口号
服务 | 端口 |
---|---|
SSH服务 | 22 |
Web服务 | 80 |
HTTPS服务 | 445 |
FTP服务 | 21 |
ssh [-p port] user@remote
- user是远程机器上的用户名,如果不指定默认为当前用户
- remote是远程机器地址,可是IP,域名,或别名
- port是SSH服务监听端口,如果不指定,默认是22
生成SSH密钥对:
ssh-keygen
把公钥传到要登录的目标机
ssh-copy-id user@remote
非对称加密
- 使用公钥加密的数据,需要使用私钥解密
- 使用私钥加密的数据,需要使用公钥解密
在给user传输第一个公钥时,要输入user的密码,如果密码正确,但还是出现
Permission denied, please try again.
则编辑Linux下的/etc/ssh/ssh_config文件,开启密码访问权限
PasswordAuthentication yes
注意如果前面有#号把这行注释了,就要去掉#。
编辑文件方法:
- 用vi打开文件
vi /etc/ssh/ssh_config
- 按
i
进入编辑模式,修改好 - 按
esc
退出编辑模式,按:
进入末行模式,输入wq
保存并退出
配置地址别名
在~/.ssh/config
追加以下内容:
Host 别名
HostName ip地址
User 用户名
Port 端口
配置好后,使用别名代替地址:
ssh 别名
scp (secure copy)
- 用于远程拷贝文件
- 地址格式与ssh基本相同,只是指定端口时用的是大写
-P
选项 | 含义 |
---|---|
-P | 指定端口 |
-r | 可以拷贝文件夹 |
scp 端口 源 目标
scp -P port aa.txt user@remote:Desktop/aa.txt
scp -P port user@remote:Desktop/aa.txt aa.txt
加上 -r 可以传送文件夹
scp -r demo user@remote:Desktop
scp -r user@remote:Desktop demo
用户权限命令
对文件和目录的权限
权限 | 英文 | 缩写 | 数字代码 |
---|---|---|---|
读 | read | r | 4 |
写 | write | w 2 | |
执行 | excute | x | 1 |
ls -l 的结果
drwxr-xr-x 2 root root 4096 Oct 2 23:03 Doc
分别是:
- 权限
- 硬连接数
- 拥有者
- 组
- 体积大小
- 日期时间
- 名称
权限
硬连接数
硬连接数代表有多少种方式路径可以到达。
1的时候,是文件,只有绝对路径
2的时候,是绝对路径 + 当前目录.
号,两种方式
3以上的时候,是因为这个目录有一个或多个子目录,还可以通过在子目录中使用..
的方式到达。
chmod
- chmod可以修改用户或组对文件或目录的权限
- 格式:
chmod +/-rwx
文件名|目录名。+表示增加权限,-删除权限
如果把目录的可执行权限x
去掉,就不能再对目录执行命令,不能cd
,也不能ls
,无法访问。对目录的读和写都需要有执行权限为前提。
超级用户
- Linux系统中的
root
账号通常用于系统的维护和管理,对所有资源具有访问权限。 - 一般不使用
root
,而使用其它标准用户
账号。
sudo
- su是 substitute user 的缩写,表示使用另一个用户的身份。
- sudo命令用来以其他身份来执行命令,预设身份为root。
- 用户使用sudo时,必须先输入密码,之后会有5分钟的有效期限。
组管理命令
创建组和删除组都需要超级用户权限,因为需要修改/etc/group文件。
命令 | 作用 |
---|---|
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
cat /etc/group | 查看组信息 |
chgrp -R 组名 文件/目录名 | 递归修改文件/目录所属组 |
用户管理命令
创建删除
命令 | 作用 | 说明 |
---|---|---|
useradd -m -g 组 用户名 | 添加新用户 | -m 自动建立用户主目录 -g 指定组,不指定则创建一个同名的组 |
passwd 用户名 | 设置用户密码 | 如果是普通用户,直接passwd可以修改密码 |
cat /etc/passwd | 确认用户信息 | 新建用户后,信息会保存在passwd文件中 |
userdel -r 用户名 | 删除用户 | -r选项自动删除用户主目录 |
passwd文件
存放的就是用户的信息,由6个分号组成的7个信息
leon:x:1000:1000::/home/leon:
分别是:
- 用户名
- 密码(x,表示加密的密码)
- UID(用户标识)
- GID(组标识)
- 用户全名或本地账号,空表示全名即账号名
- 主目录(家目录)
- 登录使用的Shell,就是登录之后,使用的终端命令,ubantu默认是dash。可以改成/bin/bash,显示友好点。
查看用户
命令 | 作用 |
---|---|
id [用户名] | 查看用户UID和GID |
who | 查看当前所有登录的用户列表 |
whoami | 查看当前用户的账户名 |
usermod
- usermod可以用来设置用户的 主组/附加组 和登录Shell,格式如下:
- 主组:通常在新建用户时指定,在/etc/passwd的第4列GID对应的组
- 附加组:在/etc/passwd最后一列表示该组的用户列表,用于指定附加权限
设置了用户的附加组后,需要重新登录才能生效
# 修改主组
usermod -g 组 用户名
# 修改附加组
usermod -G 组 用户名
# 修改用户登录Shell为bash
usermod - s /bin/bash 用户名
which
- which命令可以查看某个命令所在的位置
which ls
# 输出:/bin/ls
which passwd
# 输出:/usr/bin/passwd
which useradd
#输出:/usr/sbin/useradd
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 - 用户名 | 切换用户,并且切换目录 | 写上“-”可以切换到目标用户的home |
exit | 退出当前用户 | 回到切换之前的用户。有多少次su,就可以有多少次exit |
- su不接用户名,可以切换到 root
修改文件权限
命令 | 作用 |
---|---|
chown | 修改拥有者 |
chgrp | 修改组 |
chmod | 修改权限 |
格式如下:
# 修改文件或目录拥有者
chown 用户名 文件名|目录名
# -R递归,修改组
chgrp -R 组名 文件名|目录名
# 递归修改权限
chmod -R 755 文件名|目录名
chmod的数字表示法
- chmod设置权限时,用三个数字表示拥有者,组,其他 三种用户的权限
- 比如7就表示可读可写可执行,5表示可读可执行,4表示可读
系统信息命令
时间和日期
命令 | 作用 |
---|---|
date | 查看系统时间 |
cal | calendar查看日历,-y选项查看一年日历 |
磁盘信息
命令 | 作用 |
---|---|
df | disk free 显示磁盘剩余空间 |
du [目录名] | disk usage 显示空间占用 |
选项 | 含义 |
---|---|
-h | 带单位,提高可读性 |
进程信息
命令 | 作用 |
---|---|
ps aux | process status 查看进程详细状况 |
top | 动态显示运行中的进程并且排序 。输入q退出top |
kill [-9] 进程代号 | 终止进程,-9强制终止 |
ps
默认只会显示当前用户通过终端启动的应用程序
ps命令的选项,不需要带“-”号:
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其它用户的进程 |
u | 显示进程的详细状态 |
x | 显示没有控制终端的进程 |
其他命令
find查找文件
命令 | 作用 |
---|---|
find [路径] -name "*.txt" | 查找指定路径下名字匹配所指定模式的文件 |
软链接
命令 | 作用 |
---|---|
ln -s 被链接的源文件 链接文件 | 建立文件的软链接,类似快捷方式 |
- 没有-s选项建立的是硬链接文件
- 源文件要使用绝对路径,这样方便移动链接文件后,仍然能够正常使用
硬链接
在使用ln创建链接时,如果不使用-s选项,就会创建一个硬链接。
在删除了源文件后,软链接失效,但是硬链接还能访问。
在Linux中,文件名和文件数据是分开存储的。
打包压缩
- Windows常用rar
- Mac常用zip
- Linux常用tar.gz
打包/解包
-
tar
是常用的备份工具,可以把一系列文件打包到一个大文件中,也可以把一个大文件恢复成一系列文件。tar只负责打包,不负责压缩。
# 打包
tar -cvf 打包文件.tar 被打包的文件/路径...
# 解包
tar -xvf 打包文件.tar
tar选项说明:
选项 | 含义 |
---|---|
c | 生成归档文件,创建打包文件 |
x | 解开归档文件 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定归档文件名称,f后面一定是.tar文件,所以必须放在最后 |
压缩/解压缩
-
gzip
可以压缩tar文件,完成后扩展名一般用xxx.tar.gz - 命令格式:
# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径
# 解压缩
tar -zxvf 打包文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
bzip2(two)
可以压缩成bz2
格式:xxx.tar.bz2
在tar
命令中有一个选项-j
,可以调用bzip2
。
# 压缩
tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径
# 解压缩
tar -jxvf 打包文件.tar.bz2
软件安装
apt
- apt是Advanced Packaging Tool,Linux下的安装包管理工具
安装:
sudo apt install 软件包
安装前先更新一下apt:apt update
卸载:
sudo apt remove 软件包
更新包:
sudo apt upgrade
安装一个小火车提示:
sudo apt install sl
安装一个比较彩色的更好看的看进程软件
sudo apt install htop