Linux基础命令复习
一、文件和目录常用命令
1. ls(list) ---- 查看目录内容
- “ . ” 代表当前目录,“ . . ” 代表上一级目录。
- 以 " . ” 开头的文件为隐藏文件,需要用 -a 参数才能显示。
ls 常用选项:
参数 | 含义 |
-a | 显示指定目录下所有子目录与文件,包括隐藏文件.(通常是系统文件) |
-l | 以列表的方式显示文件的详细方式。 |
-h | 必须配合 -l 使用,以人性化的方式显示文件.(就是显示文件大小的单位) |
ls 通配符的使用 --- 快速定位:
通配符 | 含义 |
* | 代表任意个输字符. |
? | 代表任意一个字符,问号的个数至少可以是一个。 |
[] | 表示可以匹配字符组中的任意一个. |
[abc] | 匹配a, b, c 中任意一个. |
[a-f] | 匹配 a 到 f 范围内的任意一个字符. |
\ | 转义字符,例如:ls \*a(查找文件名为 *a 的文件) 。 |
2. cd(change directory)---- 切换工作目录
cd 常用命令:
命令 | 含义 |
cd/cd ~ | 切换到当前用户的主目录( / 根目录;~ home。目录root用户为:/root,普通用户为:/home/用户名) |
cd. | 保持在当前目录不变。 |
cd .. | 切换到上级目录。 |
cd - | 可以在最近两次的工作目录之间来回切换。 |
cd ./目录1/目录2 | 进入当前目录下的子目录。 |
3. touch ---- 创建修改操作
例如: xxx@ubuntu:~$ touch test
- 如文件不存在,则将创建一个新的空白文件。
- 如文件或者目录存在,这会改变目录或文件的时间属性(改为当前系统时间)。
4. mkdir(make directory)--- 创建目录
示例 | 含义 |
mkdir a b c | 创建同一水平的不同目录。 |
mkdir -p a/b/c | 创建递归目录. |
注意:新建目录的名称不能与当前目录中已有的目录或文件同名。
5. rm(remove)---- 删除文件或目录
参数 | 含义 |
-f | 强制删除,忽略不存在的文件,没有提示。 |
-r | 递归的删除目录下的内容,删除不是空目录时必须加上此参数。(rmdir 只能删除空目录) |
注意:使用rm删除后的文件不能恢复,所以要谨慎使用。
6. tree ---- 以树状图列出文件目录结构
参数 | 含义 |
-d | 只显示目录。 |
7.cp(copy)---- 复值目录或文件
参数 | 含义 |
-i | 覆盖文件前提示,用来判断是否已经存在同名文件,并是否需要重新写入。 |
-r | 用于复制目录下所有子目录和文件,目标文件必须是个目录名。 |
8. mv(move)---- 移动文件或目录(也可以给文件或目录重命名)
操作 | 含义 |
mv (-i)(-f)源文件 目标文件 |
|
mv 源文件 目标目录 | 将文件移动到目标目录下。 |
mv 原目录 目标目录 | 目标目录已存在,则移动到目标目录下;目标目录不存在则改名。 |
因此要用 -i 选项来判断目标文件是否存在,以及是否需要覆盖。
(-f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示)
9. cat(concatenate) ---- 查看文件内容,创建文件,合并文件,追加文件内容
操作 | 示例 |
查看文件:对非空输出行编号。 | cat -b 文件名 |
查看文件:对所有的输出行编号。 | cat -n 文件名 |
同时查看多个文件:按顺序依次显示。 | cat 文件1 文件2 |
创建新的文件:然后输入内容,最后空行 ctrl+d 保存文件。 | cat > 新文件名 |
合并文件:文件1,2依然存在,文件3中的内容会被覆盖掉。 | cat 文件1 文件2 > 文件3 |
追加文件内容:在原文件上继续添加内容 | cat >> 文件名(ctrl+d 保存退出)或者 cat 文件1 >> 文件2 |
覆盖文件内容:文件1内容不变,文件2内容被覆盖。 | cat 文件1 > 文件2 |
10. more ---- 分屏显示文件内容,每次只显示一页内容,使用查看内容较多的文件
- cat是一次显示所有的内容,适用查看内容较少的文件。
11. grep ---- 在文本文件中进行特定的搜索
选项 | 含义 |
-n | 显示匹配行及行号 |
-v | 显示不包含匹配文本的所有行(相当于取反) |
-i | 忽略大小写 |
例如:在123.txt中查找所有 as单词: grep as 123.txt
两种模式的搜索:
- grep ^f 123.txt 查找所有以 f 开头的行。
- grep a$ 123.txt 查找所有以 a 结尾的行。
12. 管道 | ---- 将左端命令的做为右边命令的输入
常用管道命令:
命令 | 举例 |
more | ls -lah | more 输出的内容分屏显示。 |
grep | ls -lah | grep as 在输出的内容中查找文件名/目录名包含 as 的。 |
13. echo ---- 输出输入的文字内容
- echo hello 显示 hello。
- 常与重定向一起使用。
14. > 和 >> ---- 重定向
将本应显示在终端上的内容,输出/追加到指定文件中。
符号 | 含义 |
> | 表示输出,会覆盖文件原有的内容。例:echo hello world! > a |
>> | 表示追加, 会将内容增加到已有文件的末尾。 例:echo hello >> b |
15. 其他常用命令
命令 | 含义 |
clear | 清屏。(windows下为 cls)快捷键: ctrl + l |
file [文件或目录] | 显示文件的类型(目录、text、zip、shell脚本等) |
history | 查看历史命令。 |
pwd | 查看当前所在路径。 |
二、远程管理常用命令
1. shutdown ---- 开关机
常用选项:
参数 | 含义 |
sync | 把内存中的数据写到磁盘中。(关机、重启前都需先执行sync) |
shutdown -r now 或 reboot | 立刻重启。 |
shutdown -h now | 立刻关机。 |
shutdown -h 08:00 | 预定时间关闭系统。(若现在超过8点,则明晚8点) |
shutdown -h +10 | 10分钟后关机。 |
shutdown -c | 取消按预定时间关闭系统。 |
2. ifconfig ---- 显示或配置网卡信息(临时的)
- 修改IP地址:ifconfig eth0 192.168.120.6
- 修改MAC地址:ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
- windows 下是 ipconfig。
3. SSH工具 ---- 对数据进行加密和压缩
SSH 是专门为远程登录会话和其他网络服务提供安全性的协议。
- 加密:防止信息泄露。
- 压缩:提高传输速率。
ssh客户端简单的使用格式:ssh [-p port] user@remote
参数 | 含义 |
port | ssh server监听的端口,若不指定则默认为 22。(一定要根据服务器来指定,否则可能连不上服务器) |
user | 是远程机器上的用户名,如果不指定则默认为当前用户。 |
remote | 是远程机器上的地址,可以是IP地址,也可以是域名。 |
4. Scp(Secure copy)---- 用来远程拷贝文件
常用的命令格式:
作用 | 命令格式(注意选项) |
将文件从本地复制到远端。 | scp -P port 本地文件名(最好写上绝对路径) user@remote:远程主机上路径+文件名 |
把远端文件复制到本地。 | scp -P port user@remote:远程要复制文件的路径+文件名 |
复制目录文件。 | scp -r text root@remote:Desktop(本地复制到远端) |
指定其他端口。 | scp -P 50 root@remote:/home/123.txt(远程复制到本地当前目录) |
三、用户和权限命令
1. 文件/目录的权限包括:
序号 | 权限 | 英文 | 缩写 | 数字代号 |
01 | 读 | read | r | 4 |
02 | 写 | write | w | 2 |
03 | 执行 | excute | x | 1 |
2. ls -l ---- 查看文件夹下文件的详细信息
权限 | 硬连接数 | 拥有者 | 组 | 大小 | 时间 | 名称 |
drwxrwxr-x | 2 | root | root | 4096 | Jan 2 22:09 | Desktop |
- "d"代表文件夹,"-"代表普通文件,"c"代表硬件字符设备,"b"代表硬件设备。
- 后9个字母分别代表三组权限:文件所有者,用户组,其他用户拥有的权限。
- 硬连接数表示有多少种方式可以访问到当前目录/文件。例:cd . 或 绝对路径
3. chmod ---- 修改用户/组 或 文件/目录的权限
- 方法1:chmod +/-[wrx] 文件/目录名
- 方法2:chmod 数字0-7 文件/目录名
4. 超级用户(root账号) ---- 用于系统的维护和管理
sudo含义:substitute user 表示使用另一个用户的身份,预设的身份为 root。
5. 组管理
命令 | 作用 |
groupadd 组名 | 添加组。 |
groupdel 组名 | 删除组。 |
cat /etc/group | 确认组信息。 |
chgrp -R(主要用于目录,表示递归)组名 文件/目录名 | 修改文件/目录的所在组。 |
groupmod -n 新组名 旧组名 | 修改用户组名字。 |
6. 用户管理
命令 | 作用 | 说明 |
useradd -m -g 组 新建用户名 | 添加新用户 |
-m 自动建立用户 hom 目录。 -g 指定用户所在的组,否则会建立 一个与新用户名同名的组。 |
passwd 用户名 | 设置用户密码 | 也可以直接修改当前用户的密码。 |
userdel -r 用户名 | 删除用户 | -r 自动删除用户 home 目录。 |
cat /etc/passwd | grep 用户名 | 确认用户信息 | 新建用户后,用户信息会保存在/etc/passwd 文件中。 |
passwd 文件格式:
用户名 | 密码 | UID | GID | 用户全名/本地账号 | home目录 | 登陆使用的shell |
root | x(表加密) | 0 | 0 | root | /root | /bin/bash |
7. 查看用户
命令 | 作用 |
id [用户名] | 查看用户UID(用户标识符)和 GID(组标识信息)。 |
who | 查看所有登录的用户列表。 |
whoami | 查看当前登录用户的账户名。 |
8. usermod ---- 设置用户的主组/附加组和登录 shell
- 主组:通常在建立用户时指定,在 /etc/passwd/的第四列 GID 对应的组。表示自己创建新的组。
- 附加组:/etc/group中最后一列表示该组的用户列表,表示加入到其他组当中。用于获取附加权限(如:sudo权限)
语法格式 | 作用 |
(sudo)usermod -g 组(主组) 用户名 | 修改用户的主组。 |
(sudo)usermod -G 组(附加组) 用户名 | 修改用户的附加组。 |
(sudo)usermod -s /bin/bash 用户名 | 修改用户登录的 shell。 |
9. which ---- 查看命令所在位置
- /etc/passwd 用于保存用户信息的文件。
- /usr/bin/passwd 用于修改用户密码的程序。
- 例如: which ls 输出:/bin/ls which useradd 输出:/usr/sbin/usradd
bin 和 sbin 的含义(了解):
- /bin(binary)是二进制执行文件目录,主要用于具体应用。
- /sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理。
- /usr/bin 主要用于后期安装的一些软件。
- /usr/sbin(super ~)超级用户的一些管理程序。
10. su ---- 切换用户
命令 | 作用 |
su - 目标用户名 | 切换用户,并切换到目标用户的 home 目录。 |
su 目标用户名 | 切换用户,但不切换 home 目录。 |
su | 切换到 root,不推荐使用,不安全。 |
exit | 退出当前登录账户。 |
11. 修改文件权限
命令格式 | 含义 |
chown 用户名 文件名|目录名 | 修改文件/目录的拥有者。 |
chgrp -R 组名 文件名|目录名 | 递归修改文件/目录的组。 |
chmod -R 数字(例:777) 文件名|目录名 | 递归修改文件/目录权限。 |
四、系统信息命令
1. 时间和日期
- 查看系统时间 date:Fri Jan 3 15:45:05 CST 2020
- 查看日历 cal 2020
2. 磁盘信息
命令 | 作用 |
df -h(disk free) | 显示磁盘剩余空间。-h 以人性化的方式磁盘文件大小 |
du -h 目录名(disk usage) | 显示目录下的文件大小。 |
3. 服务与进程信息
命令 | 含义 |
netstat -lnp(t)(network state) 常用方法:netstat -lnp|grep 端口号/进程号/进程名 |
一般用于检验本机各端口的网络连接情况。(l:只列出监听中的连接. n:禁用域名解析功能,查出IP且速度快。p:获取进程名、进程号。t:只列出 TCP协议的连接。) |
ps aux(process status) 常用方法:ps aux|grep 进程号/进程启动命令/服务名 |
查看进程的详细状况。(a:显示终端上的所有进程,包括其他用户的进程。u:显示进程的详细状态。x:显示没有控制终端的进程。(不是终端启动的)) |
top | 动态显示运行中的程序并且排序。(退出可以直接输入 q) |
kill [-9] 进程号 | 终止指定代号 |
示例:ps aux|grep tomcat netstat -lnp|grep 进程号 :查tomcat服务占用的端口。
4. 软/硬链接
-
软链接:相当于快捷方式,源文件删除时,软链接就会失效。
- 硬链接:相当于文件的副本,修改源文件时,副本也会被修改,源文件被删除时,副本依然存在。
命令格式 | 说明 |
ln -s 被链接源文件绝对路径+文件名 [新建软件链接名称] | 创建文件软链接。 |
ln 被链接源文件绝对路径+文件名 [新建软件链接名称] | 创建文件硬链接。 |
两者的差异是在图标上,硬链接的图标是没有快捷方式那样的箭头。
五、打包/解包 和 压缩/解压缩
- tar 打包/解包(后缀 .tar):将一系列文件打包到一个大文件中,也可以恢复回来。
- gzip 压缩/解压缩(后缀 .tar.gz):压缩或解压缩 tar 打包后的文件。(仅对单一文件)
- bzip2 压缩/解压缩(后缀 .tar.bz2):压缩或解压缩 tar 打包后的文件。(仅对单一文件)
- zip/unzip 压缩/解压缩(后缀 .zip):压缩或解压缩 zip 打包后的文件。
含义 | 命令格式 |
查看文件类型 | file 文件名 |
打包文件 | tar -cvf a.tar 文件1 文件2 ...或 路径 |
解包文件 | tar -xvf a.tar (到当前目录) |
压缩文件 | zip -r b.zip 文件1 文件2 ...或 路径 |
解压缩文件 | unzip b.zip (到当前目录) / unzip -o e.war -d 目标路径(推荐使用unzip解压war包) |
压缩一个文件 | gzip file1 (不能保留源文件) / gzip -9 file1 (最大程度压缩) / bzip2 -k file1 (-k表示保留源文件,bzip2格式,比gzip好) |
解压一个文件 | gzip -d file1.gz / bzip2 -d -k file1.bz2 |
打包并压缩文件 | tar -zcvf c.tar.gz 文件1 文件2 ....或 路径 |
解压缩并解包文件 | tar -zxvf c.tar.gz -C 目标路径 (必须存在) |
打包并压缩文件 | tar -jcvf d.tar.bz2 文件1 文件2 ....或 路径 |
解压缩并解包文件 | tar -jxvf d.tar.bz2 (到当前目录) |
选项 | 含义 |
c | 生成档案文件,创建打包文件。(压缩) |
C | 指定文件解压到存储的目录。 |
d | 解压文件。 |
f | 指定档案文件的名称,必须放在选项的最后一位。 |
k | 表示保留源文件。 |
o | 表示覆盖原有文件。 |
r | 用于压缩文件夹。 |
z | 压缩/解压缩打包文件。 |