目录
- 概述
- 命令格式
- 帮助文档
- 内建命令
- 外部命令(--help)
- 帮助文档查看man
- 查看谁登陆过电脑
- 文件目录命令
- 创建目录
- 显示目录结构
- 删除目录
- 文件相关命令
- ls命令
- touch
- cp
- rm删除
- mv移动命令
- 文件查看命令
- cat 文件内容查看命令
- less 查看文件内容
- head 从文件头部查看
- tail 从文件尾部查看
- du和df命令
- du 查看目录大小
- df
- 查找相关命令
- find
- grep
- 管道
- 压缩包
- tar 打包归档
- gzip
- bzip2压缩
- zip和unzip
- 权限管理
- 文件权限
- 访问用户分类
- 1)只允许用户自己访问 (所有者)
- 2)允许一个预先指定的用户组中的用户访问 (用户组)
- 3) 允许系统中的任何用户访问 (其他用户)
- 访问权限说明
- chmod(授权)
- chown(用于修改文件所有者)
- chgrp(用于修改文件所属组)
- 网络
- netstat
- 查看端口状态情况
- 列出所有端口
- 软件安装
- 在线安装
- 软件包安装
- 重定向
- 进程命令
- kill
- 其他命令
- env环境变量
- tree
- ln 链接
- bc命令
- nc(socket客户端模拟)
- tcp
- udp
- ipc本地套接字
- 工具
- valgrind内存泄露排查工具
- 抓包 tcpdump
概述
命令格式
command[-options ] [parameter1 ] …
说明:
- command:命令名,相应功能的英文单词或单词的缩写
- [-options]: 选项,可用来对命令进行控制,也可以省略,
[]中括号代表可选。一个横杆后面跟单词缩写,两个横杆后面是跟完整单词
- parameter1…: 传给命令的参数,可以是零个一个或多个
帮助文档
内建命令
格式:help + 内建命令
help pwd
外部命令(–help)
一般是linux命令自带的帮助,并不是所有命令都有帮助
帮助文档查看man
查看谁登陆过电脑
root@sony-HP-Notebook:~# who
root pts/0 2023-06-05 10:48 (192.168.0.88)
root pts/1 2023-06-05 10:48 (192.168.0.88)
文件目录命令
创建目录
mkdir dir1
# 一次创建三层目录
mkdir -p /dir1/dir2/dir3
# 在当前目录下创建file1 ,file2 .....100个文件夹
mkdir file(1..100}
显示目录结构
tree dir1
删除目录
mkdir test
rmdir test
## 批量删除
rmdir file(1..100}
mkdir a b c
rmdir a b c
mkdir a/b
# 删除目录
rmdir a/b
文件相关命令
ls命令
ls常用参数
参数 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合1 以人性化的方式显示文件大小 |
使用示例:
ls-al # 显示所有文件包括隐藏文件列表
ls -lt # 显示按日期时间排序后的文件列表等价于Is -l -t
ls -lh # 显示计算大小为KB为单位的文件列表
ls -dl # 显示文件夹详细列表
touch
用法: touch [选项]… 文件…
- 1)如果文件不存在,创建新文件(只能是普通文件,不能是文件夹)
- 2)如果文件存在,更新文件时间
示例:
touch file #创建file空文件,如果file存在则更新file的存取和修改时间
touch file{2,3,4} #同时创建file2,file3,file4三个空文件
touch "file{2,3,4}" #创建file{2,3,4}一个空文件
cp
示例:
# 把file文件复制到dirs日录下
cp file dirs/
# 把file1 file2文件拷贝到dirs目录下
cp file1 file2 dirs/
# 把文件file1拷贝到file2中,并且提示
cp -i file1 file2
# 把文件file1拷贝到dirs目录下
cp -t dirs file1
# 把dir1目录复制到dir2目录下
cp -r dir1/ dir2/
# 把dir1目录拷贝到dir2目录下
cp -R dir1 dir2
# 把file文件复制到dirs目录下,保留文件的原来属性
cp -a file dirs/
# 强制复制文件夹,不提示
cp -rf dir1/ dir2/
# 把dir1日录复制到dir2目录下,并且显示复制过程
cp -rvf dir1/ dir2/
# 将目录递归拷贝到目录
cp -rp dir1 dir2/
rm删除
mv移动命令
文件查看命令
cat 文件内容查看命令
cat 将文件内容一次性输出到终端
less 查看文件内容
将文件内容分页显示到终端,可以自由上下浏览
head 从文件头部查看
tail 从文件尾部查看
du和df命令
du 查看目录大小
df
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况
查找相关命令
find
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
按文件名查询:使用参数-name
命令: find + 路径 + -name + “文件名“
示例: find /home -name “a.txt”
按文件大小查询:使用参数 -size
命令: find + 路径 + -size + 范围
范围
大于: +表示 – +100k
小于: - 表示 – -100k
等于: 不需要添加符号 – 100k
大小
M 必须大写 (10M)
k 必须小写 (20k)
例子:查询目录为家目录
等于100k的文件: find ~/ -size 100k
大于100k的文件: find ~/ -size +100k
大于50k,小于100k的文件: find ~/ -size +50k -size -100k
按文件类型查询:使用参数 -type
命令: find + 路径 + -type + 类型
类型
普通文件类型用f表示而不是-
d -> 目录
I -> 符号链接
b -> 块设备文件
c -> 字符设备文件
s -> socket文件,网络套接字
p ->管道
查找指定目录下的普通文件: find /home -type f
grep
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式grep打印包含模式的所有行。
grep一般格式为:
grep [-选项] ‘搜索内容串’ 文件名
在grep命令中输入字符串参数时,最好引号或双引号括起来。例如: grep “a” 1.txt.
命令:
搜索目录需要添加参数: -r
查找 /home/itcast 下包含"hello,world"字符串的文件
grep -r "hello,world" /home/itcast
示例:
# 将二进制文件以文本文件的方式搜索hello
grep -a hello /bin/ls
# 在/etc/passwd文件里找hello并目忽略大小写查找
grep -i hello /etc/passwd
# 搜索hello结果并显示在文件里出现的行号
grep -n hello /etc/passwd
# 搜索完全匹配hello单词的行
grep -w hello /etc/passwd
# 显示出在/etc/passwd文件里没有hello的行
grep -v hello /etc/passwd
# 在/etc/目录里所有文件里找hello并显示结果
grep -r hello /etc/
在/etc/passwd文件中找hello并且忽略大小写,然后高亮显示匹配的关键字
grep -i hello /etc/passwd -color=auto
管道
管道(I): 一个命令的输出可以通过管道做为另一个命令的输入。
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“”"的左右分为两端,左端塞东西(写),右端取东西(读)。
cat /etc/passwd | less
压缩包
tar 打包归档
计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据
tar使用格式
tar [选项] 打包文件名 文件
tar命令很特殊,其选项前面可以使用"-",也可以不使用
注意:除了f需要放参数的最后,其他参数的顺序任意
# 归档打包
tar -cvf test.tar 1.txt 2.txt 3.txt
# 解归档
tar -xvf test.tar
# 查看归档文件内容
tar -tvf test.tar
## 打包并压缩目录
tar -czvf test.tar.gz /test
## 打包并压缩多个文件
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
## 解压缩并拆包
tar -xzvf test.tar.gz
# 万能解压
tar -xvf test.tar.gz
## 解压并拆包到制定目录
tar -xzvf test.tar.gz -C /tmp
tar -xzvf test.tar.gz -C /tmp
压缩用法
解压用法
gzip
tar与gzip命令结合使用实现文件打包、压缩
tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
gzip使用格式如下:
gzip [选项] 被压缩文件
bzip2压缩
- tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。
- tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2
- 在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程.
- 压缩用法: tar -jcvf 压缩包包名 文件…(tar jcvf bk.tar.bz2*.c)
- 解压用法: tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)
zip和unzip
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip
压缩文件: zip -r 目标文件(没有扩展名)源文件
解压文件: unzip -d 解压后目录文件 压缩文件
权限管理
文件权限
文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作.
Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。在Unix/Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目
访问用户分类
通过设定权限可以从以下三种访问方式限制访问权限
1)只允许用户自己访问 (所有者)
所有者就是创建文件的用户,用户是所有用户所创建文件的所有者,用户可以允许所在的用户组能访问用户的文件。
2)允许一个预先指定的用户组中的用户访问 (用户组)
用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。
3) 允许系统中的任何用户访问 (其他用户)
用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件在这种意义上,系统内的其他所有用户就是 other 用户类
访问权限说明
用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限
- 读权限 ( r )
对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限 - 写权限 (w)
对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限 - 可执行权限 (x)
对文件而言,具有执行文件的权限:对目录了来说该用户具有进入目录的权限注意: 通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。
chmod(授权)
chmod 修改文件权限有两种使用格式: 字母法与数字法
字母法: chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ] | 含义 |
---|---|
u | user 表示该文件的所有者 |
g | group 表示与该文件的所有者属于同一组( group )者,即用户组 |
o | other 表示其他以外的人 |
a | all 表示这三者皆是 |
[ ±=] | 含义 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设定权限 |
rwx | 含义 |
---|---|
r | read 表示可读取,对于一个目录果没有r权限,那么就意味着不能通过Is查看这个目录内部的内容 |
w | write 表示可写入,对于一个目录如果没有w权限,那么就意味着不能在目录下创建新的文件 |
x | excute 表示可执行,对于一个目录如果没有x权限,那么就意味着不能通过cd进入这个目录 |
使用
# 给文件file的其他用户增加写权限
chmod o+w file
# 给文件file的拥有者减去读的权限
chmod u-r file
# 设置文件file的所属组织权限为可执行,同时去除读写权限
chmod g=x file
数字法
数字法:“rwx”这些权限也可以用数字来代替
字母 | 含义 |
---|---|
r | 读取权限,数字代号为“4" |
w | 写入权限,数字代号为“2" |
x | 执行权限,数字代号为“1" |
- | 不具任何权限,数字t代号为“0"" |
如执行: chmod u=rwx,g=rx,o=r filename
就等同于: chmod u=7,g=5,o=4 filename(不可以执行)
chmod 751 file
- 文件所有者:读、写、执行权限
- 同组用户:读 执行的权限
- 其他用户:执行的权限
二进制数字转换
rwx 111 --> 7
rw- 110 --> 6
r-- 100 --> 4
-W- 010 --> 2
--x 001 --> 1
r-X 101 --> 5
-wx 011 --> 3
chmod 777 file
给所有用户拥有读、写、执行的权限
chmod 777 test.txt
递归给目录及下所有文件授权(-R)
例如:chmod -R 777 test/
chown(用于修改文件所有者)
使用方法: chown 用户名 文件或目录名
# 将文件所属者修改为root用户
deng@itcast:-/share/test$ sudo chown root txt
[sudo] deng 的密码:
deng@itcast:-/share/test$ ls -l txt
-rw-rw-r-- 1 root deng 0 10月 10 11:12 txt
# 将文件所属者改为deng 所属组改为root
deng@itcast:-/share/test$ sudo chown deng:root txt
deng@itcast:~/share/test$ ls -l txt
-rw-rw-r-- 1 deng root 0 10月 10 11:12 txt
# 单独只改文件所属组
sudo chown :root txt
chgrp(用于修改文件所属组)
网络
netstat
查看端口状态情况
netstat -anp | grep 8000
列出所有端口
# 显示所有端口的统计信息
netstat- s
# 显示所有TCP端口统计信息
netstat -st
# 显示所有UDP端口统计信息
netstat -su
软件安装
在线安装
命令 | 含义 |
---|---|
sudo apt update | 获取最新的软件包的列表 |
sudo apt install xxx | 从源中安装xxx |
sudo apt remvte xxx | 删除xxx软件 |
sudo apt clean | 清理安装包 |
软件包安装
在Ubuntu下安装文件为deb格式
# 软件安装
sudo dpkg -i xxx.deb
# 软件卸载
sudo dpkg -r 软件名
重定向
标准输入 代码 0 默认设备为键盘标准输入
标准输出 代码 1 默认设备为屏幕
错误输出 代码 2 默认设备为屏幕
# 标准正确输出重定向到output.txt
ls /etc/passwd > output.txt
# 标准正确输出追加重定向到output.txt
ls /etc/shadow >> output.txt
# 标准错误输出重定向到error.txt
ls dddddd 2> error.txt
标准错误输出重定向到error.txt,追加的方式
ls ddddd 2>> error.txt
# 标准错误输出重定向到黑洞
ls dddddd 2> /dev/null
# 标准正确输出标准错误输出全都重定向到黑洞
ls ddddd /etc/passwd &> /dev/null
# 标准正确输出标准错误输出以追加的方式全都重定向到txt
ls ddddd /etc/passwd &>> txt
# 标准输入重定向,file作为cat输入的内容
cat < file
进程命令
kill
查看所有参数 kill -l
kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
# 暂停一个进程
kill -19 1124
# 唤醒一个进程
kill -18 1124
其他命令
env环境变量
可以查看到当前登录用户,当前目录PWD,等信息
env
tree
tree 以树状形式查看指定目录内容,使用该命令需要安装软件 tree
sudo apt install tree
ln 链接
In命令主要用于创建链接文件。Linux链接文件类似于Windows下的快捷方式
链接文件分为软链接和硬链接
- 软链接:软链接不占用磁盘空间,源文件删除则软链接失效
- 硬链接:硬链接只能链接普通文件,不能链接目录
使用格式:
硬链接 ln 源文件 链接文件
软连接(符号链接) ln -s 源文件 链接文件
如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-S选项是更常见的形式。
注意:如果软链接文件和源文件不在同一个目录,源文件最好要使用绝对路径不要使用相对路径
示例
root@sony-HP-Notebook:~# ln -s a a_link
root@sony-HP-Notebook:~# ls -l
总用量 2084
drwxr-xr-x 2 root root 4096 6月 5 15:43 a
lrwxrwxrwx 1 root root 1 6月 5 15:44 a_link -> a
readlink命令读取符号链接文件的内容(存储目标文件的路径)
root@sony-HP-Notebook:~# readlink a_link
a
bc命令
可以执行计算,比如计算2的16次方
root@sony-HP-Notebook:~# bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2^16
65536
nc(socket客户端模拟)
tcp
nc 192.168.0.44 8000
udp
nc -u 192.168.0.44 8000
ipc本地套接字
nc -U sock.s
工具
valgrind内存泄露排查工具
valgrind ./a.out
如下显示exit: 0 bytes in 0 blocks表明没有泄露
696830==
==696830== Process terminating with default action of signal 2 (SIGINT)
==696830== at 0x4872467: accept (accept.c:26)
==696830== by 0x109640: main (in /usr/local/cpp_demo/net/socket/a.out)
==696830==
==696830== HEAP SUMMARY:
==696830== in use at exit: 0 bytes in 0 blocks
==696830== total heap usage: 2 allocs, 2 frees, 1,496 bytes allocated
==696830==
==696830== All heap blocks were freed -- no leaks are possible
==696830==
==696830== For lists of detected and suppressed errors, rerun with: -s
==696830== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
抓包 tcpdump
安装:如何在CentOS中配置Tcpdump网络抓包工具?
tcpdump -i eth0 port 15692 -w /tmp/tcpdump.pcap
再使用wireshark打开