目录
Linux命令总结
文件操作相关命令
ls
cd
pwd
cp
mv
rm
cat
mkdir
rmdir
touch
文本处理操作命令
grep
awk
sed
进程管理操作相关命令
ps
top
htop
kill
pkill
killall
chmod
chown
网络操作相关命令
ping
ifconfig
netstat
ss
lsof
curl
wget
ssh
端口操作相关命令
nmap
系统信息查看相关命令
uname
df
du
free
查看CPU和内存使用相关命令
top
htop
ps
vmstat
free
gcc/g++编译器选项总结
编译链接选项
调优选项
警告和错误选项
其他选项
Linux命令总结
文件操作相关命令
ls
1. ls:列出目录中的文件和目录。
常用选项:
-a 显示包括隐藏文件在内的所有文件;
-l 以长格式显示文件信息,包括文件权限、所有者、大小等;
-t 按修改时间排序。
示例:ls -al列出当前目录下所有文件的详细信息,包括隐藏文件。
cd
2. cd :切换目录。
常用选项:
.. 返回上一级目录;
~ 返回当前用户的主目录。
示例:cd /home/user切换到 /home/user目录;cd ..返回上一级目录。
pwd
3. pwd:显示当前工作目录。
cp
4. cp :复制文件或目录。
常用选项:
-r 复制目录时递归复制子目录。
示例:cp file1.txt file2.txt复制/拷贝 file1.txt为 file2.txt;cp -r dir1 dir2复制/拷贝目录 dir1到 dir2。
mv
5. mv :移动或重命名文件或目录。
示例:mv file1.txt /home/user 将 file1.txt 移动到 /home/user目录;mv oldname.txt newname.txt将文件 oldname.txt重命名为 newname.txt。
rm
6.rm :删除文件或目录。
常用选项:
-r 递归删除目录及其内容。
示例:rm file.txt删除文件 file.txt;rm -r dir删除目录 dir及其内容。
cat
7. cat :查看文件内容。
示例:cat file.txt 显示 file.txt的内容。
mkdir
8.mkdir:创建目录。
示例:mkdir dir 创建一个名为 dir的目录。
rmdir
9. rmdir :删除空白目录。
示例:rmdir dir删除空白的 dir目录。
touch
10. touch :创建空文件或更新文件的访问和修改时间。
示例:touch file.txt创建一个名为 file.txt的空文件。
文本处理操作命令
grep
grep:在文件中搜索特定的字符串。
awk
awk:强大的文本处理工具。
sed
sed:流编辑器,用于文本的替换、插入、删除等操作。
进程管理操作相关命令
ps
1.ps:显示当前系统中的进程信息。
常用选项:
aux 显示所有进程,包括其他用户的进程;
-eo pid,ppid,%cpu,%mem,cmd 指定显示的列,如进程 ID、父进程 ID、CPU 使用率、内存使用率和命令等。
示例:ps aux显示系统中所有进程的信息;ps -eo pid,ppid,%cpu,%mem,cmd指定显示特定的列。
top
2.top:动态显示系统中进程的资源使用情况,包括 CPU 和内存使用情况等。
常用选项:
-d 后跟时间间隔,以秒为单位指定两次屏幕刷新之间的间隔时间。
示例:top -d 2每 2 秒刷新一次屏幕,动态显示进程信息。
htop
3. htop:类似于 top,但提供了更直观的界面和更多的功能。
常用选项:
可以通过方向键和各种快捷键来操作,如 F5以树形视图显示进程,F6按内存使用排序等。
示例:直接输入 htop 启动该命令。
kill
4. kill :终止进程。
常用选项:
-9(信号) 强制终止进程。
示例:kill 1234终止进程 ID 为 1234 的进程;kill -9 1234强制终止进程 ID 为 1234 的进程。
pkill
5. pkill:通过进程名或其他属性终止进程。
示例:pkill firefox终止所有名为 firefox 的进程。
killall
6. killall:通过进程名终止所有匹配的进程。
示例:killall firefox终止所有名为 firefox 的进程。
chmod
7. chmod:更改文件或目录的权限。
chown
8.chown:更改文件或目录的所有者。
网络操作相关命令
ping
1. ping :测试网络连通性。
示例:ping google.com测试与 google.com 的网络连通性。
ifconfig
2. ifconfig :配置和显示网络接口信息。
示例:ifconfig 查看当前网络接口的配置信息。
netstat
3. netstat :显示网络连接、路由表等信息,可以查看端口的使用情况。
常用选项:
-an 显示所有监听的和非监听的端口;
-tuln 显示监听的 TCP 和 UDP 端口。
示例:netstat -an显示所有网络连接和端口信息;netstat -tuln显示监听的 TCP 和 UDP 端口。
ss
4. ss :类似于 netstat,用于查看套接字统计信息,可以更快速地显示端口的使用情况。
常用选项:
-antlp 显示所有监听的 TCP 端口及其对应的进程信息;
-anu 显示所有监听的 UDP 端口。
示例:ss -antlp 显示所有监听的 TCP 端口及其对应的进程信息;ss -anu 显示所有监听的 UDP 端口。
lsof
5. sof :列出当前系统打开的文件和端口等信息。
常用选项:
-i 后跟端口号,显示指定端口的使用情况。
示例:lsof -i :80 显示 80 端口的使用情况及对应进程信息。
curl
6. curl :用于从服务器传输数据或向服务器发送数据,常用于测试和操作网络请求。
示例:curl google.com获取 google.com 的网页内容;curl -X POST -d "key=value" google.com向 google.com 发送 POST 请求并携带数据。
wget
7. wget :从网络上下载文件。
示例:wget google.com下载 google.com 的网页内容;wget -O output.html google.com将下载的内容保存为 output.html文件。
ssh
8. ssh:用于远程登录到另一台计算机。
端口操作相关命令
nmap
nmap 命令
功能:网络探测工具,可用于扫描端口开放情况等。
常用选项:
-p 后跟端口号或端口范围,指定扫描的端口;
-sS 进行 TCP SYN 扫描。
示例:nmap -p 1-1000 192.168.1.1 扫描 192.168.1.1 主机的 1 到 1000 端口开放情况。
系统信息查看相关命令
uname
1. uname:显示系统信息。
常用选项:
-a 显示所有系统信息,包括内核版本、主机名等;
-r 仅显示内核版本号。
示例:uname -a 显示所有系统信息;uname -r显示内核版本号。
df
2. df:显示文件系统的磁盘使用情况。
常用选项:
-h 以人类可读的格式显示磁盘空间,如自动根据大小选择合适的单位。
示例:df -h显示文件系统的磁盘使用情况,包括每个文件系统的总空间、已用空间、可用空间等。
du
3. du:显示文件或目录的磁盘使用情况。
常用选项:
-h 以人类可读的格式显示磁盘空间;
-s 仅显示总计。
示例:du -h /home/user显示 /home/user目录及其子目录的磁盘使用情况;du -sh /home/user仅显示 /home/user目录的总计磁盘使用情况。
free
4. free:用于显示系统中空闲、已用和交换的内存量,可以方便地查看内存的使用情况。
常用选项:
-m 以 MB 为单位显示内存信息;
-h 以人类可读的格式显示内存信息,如自动根据大小选择合适的单位;
-s 指定更新时间间隔,持续显示内存信息。
示例:free -m表示以 MB 为单位显示内存信息;free -h以人类可读的格式显示内存信息;free -s 2 表示每 2 秒更新一次内存信息。
查看CPU和内存使用相关命令
top
top命令
功能:提供了动态的实时系统进程信息,可以查看 CPU 和内存的使用情况以及其他相关信息,如进程的用户、运行时间、命令等。
常用选项:
-d 后跟时间间隔,以秒为单位指定两次屏幕刷新之间的间隔时间。
示例:top -d 2,表示每 2 秒刷新一次屏幕。
htop
htop命令
功能:是一个更高级的进程浏览器,它提供了比 top更直观的界面和更多的功能,可以方便地查看 CPU 和内存的使用情况,以及各个进程的信息。
常用选项:
可以通过方向键和各种快捷键来操作,如 F5以树形视图显示进程,F6按内存使用排序等。
示例:直接输入 htop即可启动该命令。
ps
ps命令
功能:用于报告当前系统中的进程状态,结合不同的选项可以查看进程的 CPU 和内存使用情况。
常用选项:
aux 显示所有进程的信息,包括其他用户的进程。
eo pid,ppid,%cpu,%mem,cmd 指定显示的列,包括进程 ID、父进程 ID、CPU 使用率、内存使用率和命令等。
示例:ps aux | less,表示分页显示所有进程的信息;ps -eo pid,ppid,%cpu,%mem,cmd,指定显示特定的列。
vmstat
vmstat命令
功能:报告虚拟内存的统计信息,包括进程、内存、分页、块设备、陷阱和 CPU 活动等信息,可以间接反映出 CPU 和内存的使用情况。
常用选项:
1 表示每秒更新一次。
-s 以更易读的格式显示统计信息。
示例:vmstat 1,表示每秒更新一次虚拟内存统计信息;vmstat -s,以更易读的格式显示统计信息。
free
free命令
功能:用于显示系统中空闲、已用和交换的内存量,可以方便地查看内存的使用情况。
常用选项:
-m 以 MB 为单位显示内存信息。
-h 以人类可读的格式显示内存信息,如自动根据大小选择合适的单位。
-s 指定更新时间间隔,持续显示内存信息。
示例:free -m,表示以 MB 为单位显示内存信息;free -h,以人类可读的格式显示内存信息;free -s 2,表示每 2 秒更新一次内存信息。
gcc/g++编译器选项总结
编译链接选项
-c:只编译,不链接。
示例:g++ -c main.cpp 将 main.cpp 编译成目标文件 main.o。
-o :指定输出文件名。
示例:g++ -o myprogram main.cpp将编译链接后的可执行文件命名为 myprogram。
-I:添加头文件搜索路径。(i大写)
示例:g++ -I /usr/local/include main.cpp指定在 /usr/local/include目录下搜索头文件。
-L:添加库文件搜索路径。
示例:g++ -L /usr/local/lib main.cpp -lmylibc指定在 /usr/local/lib目录下搜索库文件 mylibc。
-l:链接库文件。(L小写)
示例:g++ main.cpp -lmylib 链接库文件 mylib。
-shared:生成共享库(动态库)。
示例:g++ -shared -fPIC mylib.cpp -o libmylib.so 生成共享库 libmylib.so。
-static :生成静态库。
示例:g++ -static mylib.cpp -o libmylib.a生成静态库 libmylib.a。
调优选项
-O1:启用基本的优化。
示例:g++ -O1 main.cpp -o myprogram对生成的代码进行基本的优化。
-O2:更高一级的优化,在 -O1的基础上增加更多的优化。
示例:g++ -O2 main.cpp -o myprogram对生成的代码进行更高级的优化。
-O3 :最高级别的优化,会在编译时进行更充分的优化,但可能会增加编译时间。
示例:g++ -O3 main.cpp -o myprogram对生成的代码进行最高级别的优化。
-Os:优化代码大小,在优化代码执行效率的同时,尽可能减小生成的二进制文件大小。
示例:g++ -Os main.cpp -o myprogram优化代码大小。
-g :生成调试信息,便于使用调试器(如 GDB)进行调试。
示例:g++ -g main.cpp -o myprogram在生成的可执行文件中包含调试信息。
警告和错误选项
-Wall:启用所有常见的警告。
示例:g++ -Wall main.cpp -o myprogram启用所有常见的警告。
-Wextra:启用额外的警告,比 -Wall更严格。
示例:g++ -Wextra main.cpp -o myprogram启用额外的警告。
-Werror:将所有警告视为错误,如果出现警告,编译将失败。
示例:g++ -Werror main.cpp -o myprogram将所有警告视为错误。
其他选项
-std=c++11:指定使用 C++11 标准。
示例:g++ -std=c++11 main.cpp -o myprogram指定使用 C++11 标准进行编译。
-fPIC:生成位置无关代码,通常用于生成共享库。
示例:g++ -fPIC mylib.cpp -shared -o libmylib.so生成位置无关代码并生成共享库。
-pg:添加性能分析代码,用于性能分析工具(如 gprof)。
示例:g++ -pg main.cpp -o myprogram添加性能分析代码。
-v :显示编译器版本信息和编译过程的详细信息。
示例:g++ -v显示编译器版本信息。