1. 命令格式
1.1 打开终端的方式
ubuntu中的命令基本都是在终端执行的打开终端的方式:
第一种方法:在ubuntu桌面中鼠标右键选择“打开终端”
第二种方法:使用快捷键ctrl + alt + t
1.2 终端提示符
stu@qfedu:~$ stu:用户名 qfedu:主机名 ~:表示路径
~:家目录
/:根目录
$:表示权限
$:普通用户权限
#:管理员权限
1.3 命令的格式
命令 选项 参数
注意:命令、选项和参数之间必须用空格隔开
ls ‐l //空格隔开
例如:
2. 命令帮助信息
命令 ‐‐help
注意:并不是所有的命令都有帮助信息,pwd就没有
3. man命令
3.1 用法
man 章节 查找信息
例如:
man 1 ls 或者 man lsman 2 open
3.2 man手册
man命令是linux提供的帮助手册,可以查询命令、函数或者特殊的文件
man是Linux提供的一个手册,这个手册有很多个章节(通过man man)
第一章中放的是命令的帮助信息
第二章中放的是系统调用(操作系统提供的函数 open)
第三章中放的是库函数(c库提供的函数 printf)的帮助信息
4. 常用命令技巧
4.1 自动补全
输入命令的一部分,然后按tab键,就自动补全命令,如果有多个相同开头的命令多按一次tab键,他会将所有的以你输入开头的命令提示出来
例:ifconfig 输入 if 按两下tab键输入ifc 按tab键
注意:目录或文件的名字,也可以自动补全在当前目录下有个文件夹叫mydir
我要删除文件夹得话 rm my
然后按tab键就可以补全目录
4.2 历史命令
可以按 上下键 将以前输入的命令调出来,敲回车执行或者修改之后敲回车执行
4.3 重定向
命令 > 目的文件 先清空原本文件内容,然后将命令的输出结果写入文件
命令 >> 目的文件 以追加的方式将命令的输出结果写入文件
本来输出到屏幕上的数据,重定向输出到了目的文件中
4.3.1 命令 > 目的文件:先清空原本文件内容,然后将命令的输出结果写入文件
4.3.2 命令 >> 目的文件:以追加的方式将命令的输出结果写入文件
5. 管道命令(|)
一个程序的输出,作为另外一个程序的输入
ls ‐‐help | more 以每页的方式查看ls命令的帮助信息
ls /etc | wc ‐w 统计根目录下的etc目录中的文件数
6. ls
1. ls:查看当前目下的文件名
2. ls 目录名:查看指定目录下的文件名
3. ls / :查看根目下的文件名
4. ls -a:查看当前目录下的所有文件名,包括隐藏文件
5. ls -l:查看当前目录下文件的详细信息,以列表的形式展现
6. ls -al:查看当前目录下所有文件的详细信息
7. ls -hl:详细信息中的字节数可以带单位的显示
7. tree命令
系统默认没有这个命令,需要安装 sudo apt-get install tree
如果报错显示无法获得锁,请使用一下命令删除一些文件即可:
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/cache/apt/archives/lock
用法: tree -L 层数 用于显示指定的层数
例如: tree ‐L 3
8. clear
clear 清屏
可以使用快捷键 ctrl + l 也可以清屏
9. cd 和 pwd
9.1 cd命令
- cd 当前目录下的目录名:进入指定的目录
- cd / :进入根目录
- cd ~ 或 cd :进入家目录
- cd . .:进入当前目录的上一级目录
- cd ‐ : 返回到上一次的路径
9.2 pwd
显示当前路径的绝对路径
10. 路径
绝对路径:从根目录(最顶层目录开始的路径)例如:/home/teacher/test.c
相对路径: 相对当前路径下的那个路径 cd . 当前目录,cd .. 返回上一级目录
11. 查看命令(cant)
cat 文件名:显示文件的内容
cat ‐n 文件名:带行号的显示文件的内容
12. 删除命令(rm)
- rm 文件名:删除指定的文件
- rm ‐rf 目录文件名:删除指定的目录文件
13. 复制(cp)
- cp 文件名 目录名:将文件复制到目录中
- cp 目录1 目录2 ‐a:将目录1复制到目录2中
- cp 文件名1 文件名2:如果文件2不是目录,则文件1复制一份为文件2
- 如果文件2存在且不是一个目录,则直接将内容替换传文件1的
14. 移动(mv)
mv 文件名 目录名:将文件移动到指定的目录中
mv 目录1 目录2:将目录1移动到目录2中
mv 文件1 文件2:如果文件2不存在,则功能为重命名
15.创建文件夹和文件
15.1 创建文件夹(mkdir)
mkdir 目录名:创建一个目录文件
mkdir 目录1 目录2 ...:创建多个目录
mkdir ‐p 目录1/目录2/目录3/...:嵌套的创建多个文件
15.2 创建文件(touch)
touch 文件名:创建一个文件
注意:如果文件已经存在,则touch会修改当前时间的时间戳
16. 查找文件(find)
find 路径 ‐name 文件名:在指定的路径下查找指定的文件,会从指定路径下包括所有的子目录中寻找
17. 查找文件内容(grep)
- grep 查找信息 文件名:在指定的文件中查找指定的内容,将查找到的内容整行输出并高亮显示查找的内容
- grep 查找信息 文件名 ‐n:在指定的文件中查找指定的内容,将查找到的内容整行且带行号输出并高亮显示查找的内容
- grep 查找信息 * ‐R ‐n:从当前目录以及子目录中的文件中查找指定信息
18. 数量统计(wc)
语法:wc [-c -m -l -w] 文件路径
- wc -c: 统计bytes数量
- wc -m: 统计字符数量
- wc -l: 统计行数
- wc -w:统计单词数量
19、创建链接文件(ln)
ln ‐s 源文件名 链接文件名 :创建一个链接文件(类似windows的快捷方式)
注意:不管对源文件还是链接文件进行修改,双方的内容都会改变;如果删除链接文件,对源文件没有任何影响;如果删除源文件,则链接文件失效。
20、压缩和解压缩
tar命令是一个用于归档和压缩文件的命令行工具。它具有丰富的选项参数,可以根据不同的需求选择不同的功能。
以下是tar命令常用的选项参数:
- -c:创建新的归档文件。
- -x:从归档文件中提取文件。
- -f:指定归档文件的名称。
- -v:显示归档过程中的详细信息。
- -z:在归档文件中使用gzip进行压缩。
- -j:在归档文件中使用bzip2进行压缩。
- -t:查看归档文件中的内容。
- -p:保留文件的权限和属性。
- -C:在指定目录中解压文件。
- -s:对归档文件中的文件进行重命名。
- -r:向归档文件中追加文件。
- -u:只将比归档文件中相应文件更新的文件添加到归档文件中。
- --exclude:排除指定的文件或目录。
- --wildcards:使用通配符匹配文件。
- --strip-components:指定要从文件名中剥离的路径组件的数量。
- --totals:显示归档文件中已处理文件的总字节数和文件数。
以上只是tar命令的一部分选项参数,还有其他一些参数可以根据具体需求进行使用。可以通过在命令行中输入"man tar"命令查看tar命令的完整选项参数和用法。
20.1 gzip压缩
tar zcvf 压缩包包名 文件1 文件2 文件3 ...
注意:压缩包包名一般以.tar.gz作为后缀名
20.2 gzip解压
tar zxvf 压缩包包名
tar zxvf 压缩包包名 -C 路径 解压到指定的路径
20.3 bzp2压缩
tar jcvf 压缩包包名 文件1 文件2 文件3 ...
注意:压缩包包名一般以.tar.bz2作为后缀名
20.4 bzp2解压
tar jxvf 压缩包包名
tar jxvf 压缩包包名 -C 路径 解压到指定的路径
20.5 zip和unzip
压缩:
命令:zip
语法:zip [-d] 压缩文件
- -d:指定要压缩的位置
解压:
命令:unzip
语法:unzip -[-d] 解压文件
- -d:指定要解压的位置
21、编辑器之神 -- vi
21.1 安装vim
sudo apt-get install vim
21.2 安装ctags
sudo apt-get install ctags
21.3 vi的使用
vi 文件名:在vi编辑器中打开或者创建一个文件,并将光标置于第一行行首
vi +n 文件名:打开存在文件,并将光标置于第n行行首
21.4 vi的三种模式
1. 插入模式
这种模式可以直接编辑文档.....
2. 编辑模式
在编辑模式下可以敲一些命令,执行例如 复制n行、剪切n行、粘贴等功能注意:vi在打开 一个已经存在的文件的时候,默认进入的是编辑模式
3. 命令模式(最后一行模式)
在此模式下可以保存文件,退出vi 等功能
21.5 三种模式之间的切换:
- 由编辑模式进插入模式 按 a i o,这几个字母区别是插入的位置不一样
- 由插入模式进编辑模式按ESC键
- 只能由编辑模式才能进最后一行模式
- 在编辑模式下按 shift : 进入 最后一行模式
- 由命令模式(最后一行模式)也可以进编辑模式按ESC
总结:
- 由插入模式或者命令模式(最后一行模式)进编辑模式,方法是按ESC键
- 由编辑模式进命令模式(最后一行模式)按 shift :
- 由编辑模式进插入模式按 a i o
- 插入模式和命令模式(最后一行模式)不能直接切换
21.6 命令模式下的一些指令
:w 保存文件
:wq 保存文件并退出vi
:x 保存文件并退出vi
:q! 不保存文件,强制退出vi
:w filename另存为filename
21.7 命令模式下的操作
u 撤消前面多次修改。 ctl r 反撤销
[n]x 删除光标后n个字符。例如:[3]x,删除光标后的3个字符
[n]X 删除光标前n个字符。例如:[3]X,删除光标前的3个字符
[n]dd 剪切从当前行开始的n行(只剪切不粘贴,认为就是删除) 例如:[3]dd,剪切3行
[n]yy 复制从当前行开始的n行。例如:[3]yy,复制了3行
p 把粘贴板上的内容插入到当前行
. . 执行上一次操作
shift+zz:保存退出当前文件
21.8 命令模式下的移动光标
[n]g:将光标定位到第n行开始处
5G:将光标移动第5行开始处
G:将光标定位到文件结束处
gg:将光标定位到文件开始处
21.9 命令模式下的查找
/ 字符串:从光标开始处向文件尾查找字符串。
n:同一方向重复上一次查找命令。
N:反方向重复上一次查找命令
22、gcc编译器
22.1 一步编译
编译程序:
gcc hello.c 默认会生成一个名为 a.out的可执行文件
运行程序:./a.out
22.2 分步进行
gcc -E hello.c -o hello.i 1、预处理
gcc -S hello.i -o hello.s 2、编译
gcc -c hello.s -o hello.o 3、汇编
gcc hello.o –o hello 4、链接
23. echo(输出)
24. tail(尾部内容)
语法:
tail [-f -num] 文件路径 :表示被跟踪的文件路径
- tail -f:表示持续跟踪
- tail -num:表示查看尾部多少行,不填默认10行
25. 权限
drwxrwxr-x 2 stu 4096 12月 19 09:30 share
d:文件类型,Linux里面不以后缀名作为文件类型来区分
Linux里面一共有七种文件类型:bcd-lsp,Linux里面一切皆文件
b:块设备文件
c:字符设备文件
d:目录文件
-:普通文件
l:软连接文件
s:套接字文件
p:管道文件
rwxrwxr-x:文件权限,以三个为一组,分别表示用户主,用户组以及其他用户对文件 的操作权限。
r:读权限;w:写权限;x:可执行权限,如果是 - ,表示没有这个权限
2:链接文件的个数
stu:用户名
stu:用户组名
4096:文件大小,默认以字节为单位
12月 19 09:30 时间戳,文件最后修改时间
share:文件名
数字权限:
- 0:无任何权限,即---
- 1:仅有x权限,即--x
- 2:仅有w权限,即-w-
- 3:有w和x权限,即-wx
- 4:仅有r权限,即r--
- 5:仅有r和x权限,即r-x
- 6:仅有r和w权限,即rw-
- 7:有所有权限,即rwx
26. 修改权限
chmod命令:修改文件、文件夹的权限信息
注意:只有文件、文件夹所属用户或者root用户可以修改
语法:chmod [-R] 权限 文件或者文件夹
- chmod -R :对文件夹的内的全部内容有所应用同样的操作
例如:
chmod u=rwx,g=rx,o=x hello.txt,将文件权限修改为rwxr-x--x
其中:u表示user所属用户权限,g表示group组权限,o表示other其他用户权限
27. 修改用户
使用chown命令,可以修改文件、文件夹的所属用户和用户组
普通用户无法修改所属为其他用户或组,所以此命令只适用于root用户执行。
语法:chown [-R] [用户] [:] [用户组] 文件或文件夹
- chown -R:同chmod对文件夹内容全部应用相同规则
- chown [用户]:修改所属用户
- chown [用户组]:修改所属用户组
- [:] :用于分割用户和用户组
28. 快捷键
- Ctrl + c:结束进程
- Ctrl + d:退出登录
- Ctrl + r:历史命令筛选
- history:历史搜索命令
- Ctrl + a:调到命令开头
- Ctrl + e:调到命令结尾
- Ctrl + 键盘左键:向左跳一个单词
- Ctrl + 键盘右键:向右跳一个单词
29. apt命令(Ubuntu)
安装软件
语法:apt [-y] [install] | [remove] | [seach] 软件名称
30.systemctl命令
语法:systemctl [start] [stop] [status] [enble] [disable] 服务名
31. 时间和时区
31.1查看系统时间
语法:date [-d] [+格式化字符串]
- -d:按照给定的字符串显示日期,一般用于日期计算
- 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
格式字符串:
- %Y:年
- %y:年份后两数字(00 99)
- %m:月份(01.12)
- %d:日(01.31)
- %H:小时
- %M:分钟
- %S:秒
- %s:自1970-01-01 00:00:00 UTC 到现在的秒数
31.2 时区和时间修改
安装ntp:yum install ntp
启动并设置开机自启:
- systemctl start ntpd 启动
- systemctl enable ntpd 开机自启动
当前ntad启动后定期帮助我们联网校准系统的时间
-- 1.删除本地时间
sudo rm -f /etc/localtime
-- 2.软连接
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
32. ping命令
测试某服务器是否连通
语法:ping [-c num] ip 或者主机名
- -c:测试的次数
33. 网络文件的下载
wget命令进行网络文件的下载
语法:wget [-b] url
- -b:后台下载
34. 网络请求
curl命令可以发起网络请求
语法:curl [-O] url
- -O:用于下载
35. 端口
35.1 概念
端口是指计算机和外部交互的出入口,可以分为物理端口和虚拟端口
- 物理端口:USB、HDM、DP、VGA、RJ45等
- 虚拟端口:操作系统的外部交互的出入口
IP只能确定计算机,通过端口才能锁定要交互的程序
35.2 端口的划分
- 公认端口:1~1023,用于系统内置或常用之名软件绑定使用
- 注册端口:1024~49151,用于松散绑定使用(用户自定义)
- 动态端口:49152~65535,用于临时使用(多用于出口)
35.3 查看端口占用
查看指定IP的对外暴露端口
语法:nmap 127.0.0.1(本机IP)
查看本机指定端口号的占用情况
语法:netstat -anp | grep 端口号
36. 进程
语法:ps [-e -f ]
- -e:显示出全部进程
- -f:以格式化的形式展示信息(展示全部信息)
一般的固定用法:ps -ef ;展示全部信息
36.1 kill
关闭进程
语法:kill [-9] 进程Id
- -9:强制杀死进程
37. 修改主机名
查看主机名
- 命令:hostname:
修改主机名:
- 命令:hostnamectl set- hostname 主机名
38. 查看任务管理器
命令:top
- PID:进程ID
- USER:进程所属用户
- PR:进程优先级,越小越高
- NI:负值表示高优先级,正表示低优先级
- VIRT:进程使用虚拟内存,单位KB
- RES:进程使用物理内存,单位KB
- SHR:进程使用共享内存,单位KB
- S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
- %CPU:进程占用CPU率
- %MEM:进程占用内存率
- TIME+:进程使用CPU时间总计,单位10毫秒
- COMMAND:进程的命令或者名称程序的文件路径
top命令选项:
- - `-d <秒数>`:指定更新间隔。默认值为3秒。
- - `-n <次数>`:指定显示的次数。默认情况下,top命令将一直运行,直到用户中断。
- - `-p <进程ID>`:指定要监视的特定进程ID。
- - `-u <用户名>`:只显示特定用户的进程。
- - `-o <排序字段>`:按指定的字段进行排序。常见的字段包括CPU使用率(%CPU)、内存使用率(%MEM)和虚拟内存(VIRT)。
- - `-b`:以批处理模式运行top命令,并将结果输出到标准输出。
- - `-c`:显示进程的完整命令行。
- - `-i`:忽略空闲和僵尸进程。
- - `-H`:显示每个进程的线程。
- - `-s <秒数>`:安全模式运行top命令,每个进程的计算时间限制为指定的秒数。
- - `-W`:将宽度调整为适应终端大小。
这只是一些常见的top命令选项,还有许多其他选项可用。要查看所有选项,请查阅top命令的手册页(man页)。
39. 磁盘信息监控
语法: df [-h]
- -h:以更加人性化的单位显示
查看磁盘相关信息
语法:iostat [-x] [num1] [num2]
- -x:显示更多信息
- num1:数字,刷新间隔,num2:数字,刷新几次
40. 网络状态监控
语法:sar -n DEV [ num1 num2 ]
- -n:查看网络,DEV num1,num2
- num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填写无限次数)
41. 环境变量
41.1 查看环境变量
命令:env
41.2 自行设置环境变量
临时设置:
语法:export 变量名=变量值
永久生效:
- 针对当前用户生效,配置在当前用户的:~/.bashrc文件中
- 针对所有用户生效,配置在系统中:/etc/profile文件中
- 通过语法:source 配置文件,进行立刻生效或者重新登录
42. 配置固定IP
第一步如图:
第二步:使用vim编辑:/etc/sysconfig/network-scripts/ifcfg-ens33文件
第三步:
-- 停止启动网卡
systemctl stop network
-- 重新启动网卡
systemctl start network