linux 常用命令

svn cleanup  提示找不到系统文件cleanup failed to process the following paths 错误
1、cd .svn
2、sqlite3 wc.db
3、delete from work_queue;
4、svn cleanup

svn 冲突解决
Select:     (p) postpone, (df) diff-full, (e) edit,

                (mc) mine-conflict, (tc) theirs-conflict,

                (s) show all options:

(e)  edit             - change merged file in an editor                           #直接进入编辑
(df) diff-full        - show all changes made to merged file               #显示更改至目标文件的所有变化
(r)  resolved         - accept merged version of file
(dc) display-conflict - show all conflicts (ignoring merged version)          #显示所有冲突
(mc) mine-conflict    - accept my version for all conflicts (same)             #冲突以本地为准
(tc) theirs-conflict  - accept their version for all conflicts (same)              #冲突以服务器为准
(mf) mine-full        - accept my version of entire file (even non-conflicts)  #完全以本地为准
(tf) theirs-full      - accept their version of entire file (same)                    #完全以服务器为准
(p)  postpone         - mark the conflict to be resolved later                        #标记冲突,稍后解决
(l)  launch           - launch external tool to resolve conflict
(s)  show all         - show this list


---------------------------------------------------------------------------------------------------------------------------------
查看Linux内核版本
cat /proc/version
查看Linux系统发行版本
sb_release -a

查看CPU相关信息
cat /proc/cpuinfo
查看当前CPU运行在32位模式还是64位模式
getconf LONG_BIT

查看核数
cat /proc/cpuinfo| grep "cpu cores"| uniq
---------------------------------------------------------------------------------------------------------------------------------
查看进程运行在哪个核上
1、top    按下f,使用上下键选择P=Last Used Cpu,空格选中,q退出就可以看到
2、taskset 
3、ps -eo pid,comm,psr   psr列是运行的核,会输出所有grep筛选

显示进程运行的CPU: -p
taskset -p <pid>
指定进程运行在特定的CPU,显示结果的ffffff实际上是二进制24个低位均为1的bitmask,每一个1对应于1个CPU,表示该进程在24个CPU上运行。

taskset -pc <哪个核/3> <pid>
3:表示运行在第四个CPU(从0开始计数)

查看进程里面一共有几个线程
ps -eLF | grep 进程名
gdb <线程id>  然后bt 看调用栈
frame [number]    单独查看某函数中的错误
list 查看错误位置附近的代码
info local 查看错误函数中的局部变量
print [var_name]    查看单数某一个变量的值
set print pretty  
thread apply all bt

查看进程启动时间,运行时间
ps -o lstart -p PID             #根据PID来查询
ps -o lstart,etime -p PID       #根据PID来查询,打印出启动时间和已经运行的时间
ps -eO lstart | grep PROCESS    #根据进程名字查询
---------------------------------------------------------------------------------------------------------------------------------
配置网卡IP
$ sudo ifconfig eth1 10.0.0.1/24
$ sudo ifconfig eth1 up
-----
$ sudo ip addr add 10.0.0.1/24 dev eth1
$ sudo ip link set up eth1

修改网络接口的MTU(最大传输单元)
ip l set set mtu 1500 dev eth0
ip l show eth0    命令查询 eth0网络接口的信息

为网络接口 添加、移除 IP地址
ip a add 192.168.1.10/20 dev eth0
ip a del ip地址 dev 接口名字

修改网络接口状态
ip link set dev 接口名字 up/down

curl -X POST www.example.com   
curl --user name:password example.com
---------------------------------------------------------------------------------------------------------------------------------
查看路由表
ip -r
route -n

添加路由
单独加路由;route add 14.18.86.238/32 gw 10.109.8.1
创建或者删除指定的路由,语法为“route add/del -net gw”或者“route add/del -host dev”。
---------------------------------------------------------------------------------------------------------------------------------
修改系统时间
date -s "2022-10-24 12:00:00"
date -s 12:00:00
date -s 2022-10-24
hwclock -w    输入命令hwclock -w写入BIOS,否则重启后系统时间失效:
date -R    查看系统时间(带时区),可以确认是不是UTC时间

查看UTC时间    timedatectl
设置时区  sudo timedatectl set-timezone Asia/Shanghai
---------------------------------------------------------------------------------------------------------------------------------
grep  匹配行的上几行、下几行、上下几行
打印行的前后5行:  cat filename | grep -5 'partern'     cat filename | grep -C 5 'partern'
打印行的后5行: cat filename | grep -A 5 'partern'
打印行的前5行: cat filename | grep -B 5 'partern'

查看某一文件的第5行和第10行
sed -n '5,10p' filename

grep和find区别
find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等
grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找
grep -r magic /usr/src   显示/usr/src目录下的文件(包含子目录)包含magic的行
---------------------------------------------------------------------------------------------------------------------------------

查看符号表(判断bin文件里面有没有编译成功对应的函数)
nm -a tr069_agent |grep startup
查看bin文件tr069_agent有没有judge_event_exist函数
strings tr069_agent | grep XXX

ldd用来打印或者查看程序运行所需的共享库(访问共享对象依赖关系),常用来解决程序因缺少某个库文件而不能运行的一些问题
lsmod  列出linux内核中modules的状态;格式化文件/proc/modules的内容,包含所有当前加载的linux kernel modules 的状态的信息
---------------------------------------------------------------------------------------------------------------------------------
tar XXX.tar -C 目录
-C:选择特定的目录
---------------------------------------------------------------------------------------------------------------------------------
文件压缩
tar -zcf xx.tar.gz 待压缩的目录
tar -zcPf   源文件是绝对路径时要加P参数,并且P不能放最后
tar -zcf x:x:x 待压缩的目录  --force-local  压缩文件名包含冒号时,需要忽略,此时需要加上--force-local参数
---------------------------------------------------------------------------------------------------------------------------------
查看磁盘占用
df -h
du -sh +目录   查看目录及目录里面的文件所占的磁盘大小
du -S +目录    查看该目录下的所有文件以及文件夹所占的磁盘大小
du -sh /home/* | sort -rn 磁盘占用从大到小排序
ls -lh +文件   查看文件所占磁盘大小
---------------------------------------------------------------------------------------------------------------------------------
文件内容校验,查看文件有没有被修改过
md5sum -c *.md5
---------------------------------------------------------------------------------------------------------------------------------
修改文件编码格式
iconv -c -f UTF-8 -t GBK old_file -o new_file
---------------------------------------------------------------------------------------------------------------------------------
抓包
tcpdump -i <interface-name> -w /home/xxxx.pcap
---------------------------------------------------------------------------------------------------------------------------------
一. 查询core dump文件路径:
方法1:
# cat /proc/sys/kernel/core_pattern
方法2:
# /sbin/sysctl kernel.core_pattern

二. 修改core dump文件路径:
方法1:临时修改:修改/proc/sys/kernel/core_pattern文件,但/proc目录本身是动态加载的,每次系统重启都会重新加载,因此这种方法只能作为临时修改。
/proc/sys/kernel/core_pattern
例:echo '/var/log/%e.core.%p' > /proc/sys/kernel/core_pattern

方法2:永久修改:使用sysctl -w name=value命令。
例:/sbin/sysctl -w kernel.core_pattern=/var/log/%e.core.%p

为了更详尽的记录core dump当时的系统状态,可通过以下参数来丰富core文件的命名:
%% 单个%字符
%p 所dump进程的进程ID
%u 所dump进程的实际用户ID
%g 所dump进程的实际组ID
%s 导致本次core dump的信号
%t core dump的时间 (由1970年1月1日计起的秒数)
%h 主机名
%e 程序文件名
---------------------------------------------------------------------------------------------------------------------------------

linux 系统 如何查看堆栈信息
1、TOP命令,找到占用CPU最高的进程
2、通过TOP -H -p 进程ID,找到具体的线程占用情况,Shift+H可以开启关闭线程显示
3、通过命令pstack 进程ID显示线程堆栈,LWP 24729对应线程ID的堆栈,就是占用CPU最高的堆栈,可以具体分析什么原因造成的。

---------------------------------------------------------------------------------------------------------------------------------

ehco的重定向
1.echo “想要的内容”> 文件名   将想要的内容覆盖到对应的文件当中去,文件当中之前的内容不复存在了,也就是说修改了原文件的内容
2.echo “想要的内容”>> 文件名  将想要的内容追加到文件后,对文件之前的内容不修改,只进行增添,也叫追加重定向。
---------------------------------------------------------------------------------------------------------------------------------
下面测试一下tr常用的命令:
1、将文件bqh.log中出现的“abc”替换成“jyw”
[root@bqh-118 scripts]# cat bqh.log |tr "abe" "jyw" 
My fjvoritw fruit is jpplw jnd yjnjnj.
注:凡是在bqh.log中出现的"a"字母,都替换成"j"字母,"b"字母替换为"y"字母,"e"字母替换为"w"字母,这是知识替换文件内容,而不是修改源文
件,更不是将字符串"abc"替换为字符串"jyw"。
2、删除文件中出现“abe”字符
[root@bqh-118 scripts]# cat bqh.log|tr -d "abe"
注:凡是在bqh.log中出现的"abe"字母的都会被删除掉,而不是只去除掉"abe"字符串的,如果需要修改源文件后面加文件路径即可。
3、删除文件中出现的换行'\n'和制表'\t'字符
[root@bqh-118 scripts]# cat bqh.log|tr -d "\n\t" >>bqh.log
4、删除“连续出现的”重复字符,压缩至一个
[root@bqh-118 scripts]# cat bqh.log|tr -s [a-zA-Z] >>bqh.log
5、删除空行 
[root@bqh-118 scripts]# cat bqh.log|tr -s "\n" >>bqh.log
---------------------------------------------------------------------------------------------------------------------------------

linux http链路测试方法
1、仅显示headert头信息
curl -I http://10.161.53.73:8080/
2、使用curl获取http的状态码
curl -s -o /dev/null -w%{http_code}"\n" http://10.161.53.73:8080/
3、下载网页内容保存到本地
curl -O https://www.qianzhigang.com/archives/880.html             -O 该参数使用url中默认的文件名保存文件到本地
curl -o test.html https://www.qianzhigang.com/archives/880.html   -o 该参数将文件保存为命令行中默认的文件名保存文件到本地
---------------------------------------------------------------------------------------------------------------------------------
linux测试IP 端口号还可以用telnet  nc  ssh  wget
telnet IP port    --链路不同会直接回Connection refused
ssh -v -p port root@ip
wget ip:port
---------------------------------------------------------------------------------------------------------------------------------

软链接
目标目录:指软链接指向的目标目录下
软链接地址:指“快捷键”文件名称,该文件是指被指令创建的

1、创建软链接         ln -s [目标目录] [软链接地址]
2、删除软链接         rm -rf [链接地址]
3、修改软链接         ln -snf [新目标目录] [软链接地址]
--------------------------------------------------------------------------------------------------------------------------------
1、查看系统默认的最大句柄数(文件描述符),ulimit是对单一程序的限制
ulimit -n
2、查看当前进程打开了多少句柄数
lsof -n|awk ‘{print $2}’|sort|uniq -c|sort -nr|more | grep $(pidof lte_trps)
3、Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令,系统重启后,又会恢复默认值
ulimit -HSn 4096
4、系统总限制呢
cat /proc/sys/fs/file-max
可以通过cat查看目前的值,echo来立刻修改
5、只读,可以看到整个系统目前使用的文件句柄数量
cat /proc/sys/fs/file-nr

---------------------------------------------------------------------------------------------------------------------------------
ntp时间同步命令

1、手动从ntp服务器上同步时间
ntpdate -u npt服务器IP
ntpdate -u 10.161.53.73

2、查看ntp同步功能是否开启
timedatectl     查看NTP enable
3、查看同步状态,有没有同步完成
ntpstat
4、#查看当前服务器与上层 ntp 的状态
ntpq -p 
remote - 本机和上层ntp的ip或主机名,“+”有连线可做候选,“*”正在使用的
refid - 更上一层的ntp地址
st - stratum的 级别
when - 多少秒前曾经同步过时间
poll - 下次更新在多少秒后
reach - 已经向上层ntp服务器要求更新的次数
delay - 网络延迟
offset - 时间补偿
jitter - 系统时间与bios时间差

---------------------------------------------------------------------------------------------------------------------------------
查看库是32位还是64位
动态库:file libsqlite3.so
静态库:objdump -a libsqlite3.a

查看静态库or动态库是32位or64位,及编译平台运行平台等信息
readelf -h libsqlite3.a
readelf -h libsqlite3.so


---------------------------------------------------------------------------------------------------------------------------------

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值