linux各种命令归类
1.文件
cp 拷贝命令 cp a.c b.c
cp 拷贝命令 cp a.c b.c
rm 删除命令 -r删除目录
mv 剪切命令 mv a.c b.c
vi编辑命令
cat打印命令
tail查看文档尾部
awk功能较为复杂后跟正则表达 awk -F":" '{print $1}' file(输出文件第一列(域),分割符是:,不加-F":"就是默认
空格分隔。printf每一行不加回车,print加回车。)
tar -zcvf 目标文件 原来文件 z压缩zip cvf打包
find查找文件 find /home -name "*.txt" 找文件.txt后缀 find /home -iname "*.txt"忽略大小写
type查看可执行文件的类型以及外部类型可执行文件路径
type cd 看cd的内外类型
type -p gedit 查找外部命令gedit的路径
locate找可执行文件相关文件(并不是命名必须有关键字与find不同)
locate pwd 找pwd相关文件
locate /etc/sh 查找sh开头文件
whereis
whereis cd 查找可执行文件地点
which
which pwd 查找命令
grep
grep+“关键字”+文件名 搜索文件中关键字一行
grep -v “关键字”+文件名 搜索文件中除关键字的其他行
cat file.c|grep "a"
ls
-A 所有文件包括隐藏文件
-l文件详细属性
-R递归显示文件
-r逆序显示文件
echo 如同printf
find查找文件 find /home -name "*.txt" 找文件.txt后缀 find /home -iname "*.txt"忽略大小写
type查看可执行文件的类型以及外部类型可执行文件路径
type cd 看cd的内外类型
type -p gedit 查找外部命令gedit的路径
locate找可执行文件相关文件(并不是命名必须有关键字与find不同)
locate pwd 找pwd相关文件
locate /etc/sh 查找sh开头文件
whereis
whereis cd 查找可执行文件地点
which
which pwd 查找命令
grep
grep+“关键字”+文件名 搜索文件中关键字一行
grep -v “关键字”+文件名 搜索文件中除关键字的其他行
cat file.c|grep "a"
ls
-A 所有文件包括隐藏文件
-l文件详细属性
-R递归显示文件
-r逆序显示文件
echo 如同printf
2.管理
su管理员切换
su管理员切换
(useradd a) 增加用户a
(userdel a) 删除用户a不能彻底删除要find相关文件 userdel -r a 是彻底删除
(passwd a) 设置a的密码
(chmod 777 a) 修改a文件的读写权限
(chown root a需要在管理员权限下使用)修改文件属主
3.进程
top进程系统资源情况
ps(-f -ef -L线程)
jobs(显示后台有多少命令)
&(转到后台执行,一般在command最后)
sh(shell的一种) 通常我们使用./main执行应用程序其实默认的是bash,如果我们要运行脚本程序可以 sh text.sh
nohup退出用户不挂起进程结合&使用 nohup sh a.sh &
bg % 第几个(通过jobs查出来的) 启动这个后台进程
fg % 第几个 后台放前台
crtl+z正在执行前台命令放到后台
文件重定位:
>重定位覆盖 >>追加到文件中 < 输入(1 <文件)
命令 >文件 2>&1 12输出都在这个里面(命令 &>文件)
crontab -e 修改用户crontab文件(文件分格式 分 时 日 月 年 命令)。-i查看这个文件
这个文件记录了定时启动周期性执行的工作(cron服务)。
4.网络
******lsof文件资源的使用情况********************
用户-》进程-》文件(普通,管道,端口)
+资源
lsof 查看哪个进程使用文件lsof dev/passwd
-i(ip) @ip:port 显示被占用端口,不加端口名就全部显示 lsof -i @196.168.31.56:884
-t(target) 显示使用目标文件的进程,这个与lsof区别在于这个只返回pid没有详细信息
+使用者
-u(user) 显示某个用户使用进程打开文件 lsof -u lch
-c(command) 显示命令打开文件 lsof -c bash 只是识别command的name可能有多个pid
-p(pid)进程打开那些文件 lsof -p 1
******nc(netcat)**********************
它可以迅速建立网络连接可以让他以服务器(客户端)方式运行来调试客户端(服务器)
******ping************************************
ping ip(域名)www.baidu.com 检查网络的链接情况
******telnet**********************************
由此可见,ping通常是用来检查网络是否通畅或者网络连接速度的命令。
而telnet是用来探测指定ip是否开放指定端口的
******netstat********************************
显示网络连接路由表等信息
-r路由信息 -a连接信息
*******ifstat************************
网络流量监测工具
*******ifconfig**********************
网络ip mac等信息
ifconfig eth0网卡 addr:ip地址 Bcast:广播地址 lo显示的是回路ip
ifconfig eth0 (地址,协议) 可以开启eth0 up,让eth0配置一个ip地址
*******vmstat************************
cpu(-s),内存(-s),io,进程使用情况
*******mpstat************************
cup详细使用情况
*******free*************
内存使用情况
*******iostat***********************
io详细使用情况
*******tcpdump*****************
抓包工具
5.gdb调试
***************gcc & g++********************
gcc与g++区别
他们都可以编译.c和.cpp文件gcc与g++分别视.c文件为c与c++,而视cpp文件都为c++文件。
(原因在于gcc负责程序的编译过程,但是gcc无法连接c++库,因此,g++来负责c++的链接部分。对于c文件,g++会调用
gcc编译链接使用g++链接所以会视为c++文件,而gcc编译链接全程使用自己所以会当成c文件处理。对于.cpp文件gcc会
先使用自己编译但是无法连接必须交由g++链接因此还是看成一个c++文件,g++处理cpp先使用gcc在使用自己所以也会看成一个
c++文件)
*描述符调整 limit -n 查看用户可以打开最大描述符个数(该用户所有进程打开的描述符个数)还有一种是对系统限制的,就是所有用户打开
描述符个数的总和是有一个上限的。
/etc/security/limits.conf这个文件可以修改
hard nofile max-file-number soft nofile max-file-number
*内核参数调整
sysctl -a 查看所有的内核参数(他们都放在/proc/sys目录下,文件名就是参数名里面的内容就是参数值)
我们可以修改目录下的参数,但是这是临时的。
或者进入/etc/sysctl.conf文件加入参数和相应的值。在使用sysctl -p更新
eg:修改系统最大文件描述符
fs.file-max=max-file-number(前面是文件名字后面是参数)
****gdb调试工具*******
gdb main
l(line) 显示10行源代码
b+函数名|行号。 断点
info 查看一些标示信息,eg:info+b查看断点信息
p+变量 就是显示变量值
s逐过程 n逐语句
bt(backtrace)显示现处于哪个函数内部以及该函数参数
display+变量 在该函数中自动没执行一次都显示display后的变量值
info display可以产生序号 undisplay+序号 删除刚才display的变量
多进程---set follow-fork-mode child attach+pid跟踪指定进程
多线程---info threads显示线程号id thread+id切换线程