常用shell命令(git/svn/vim等)

1、git

 1.1 推代码

git checkout file_name //回退某文件修改 
git add file_name  //添加文件(git add --all添加所有) 
git commit -m "xxxxxx" //生成conmit信息
git push origin HEAD:refs/for/master //将代码推送到分支master最新节点上
git push origin hash_Idxxx:refs/for/master  //推送指定节点master

1.2 新环境配置git

git config --global user.name "Your Name" 
git config --global user.email "your.email@example.com"
git config --global color.ui auto
git config  --global  remote.origin.push refs/heads/*:refs/for/*
git config --list
ssh-keygen -t rsa -b 4096 -C "your.email@example.com" //生成ssh 密匙
cat ~/.ssh/id_rsa.pub //将本地密匙添加到 Git 服务器账户

1.3 

 

//1.1、推代码
//1.2、去除git add添加的文件
去除git add修改
git rm --cached “文件路径”,不删除物理文件,仅将该文件从缓存中删除;
git reset 也可以
git rm --f “文件路径”,不仅将该文件从缓存中删除,还会将物理文件删除

//1.3、去掉每行结尾的^M
windows和linux行结尾差异导致

%s/^M//g  或者 %s/\r//g 然后esc退出 :wq保存退出
git diff 去掉匹配换行差异
git config --global core.whitespace cr-at-eol

//1.4、git push 失败
push 失败:显示 error Missing tree

git push 后增加 --no-thin
https://opendev.org/opendev/git-review/commit/39cd763d5d3ae310b00e54f6fc24eba993ed57f5
这是gerrit的一个bug,丢失了git tree ,gerrit在推送是默认是采用thin,将发生的包降低到最低,忽略本地和远端文档公共部分。

//1.5、git status 只显示被跟踪文件
git status -uno   

//1.6、更新代码、回退代码
git pull --all    更新所有分支
git pull origin xxxx 更新远端分支xxx到本地
 
//1.7、查看comimit
git show  commit的ID
git show  commit的ID --stat
 回退修复并删除修改

git reset HEAD  文件名     //回退修改
git  checkout 文件名         //删除修改

//1.8 带本地commit 并更新代码
git pull origin 分支名 --rebase

//1.9 合并commit
git rebase -i xxxxcommit节点(合并节点前的一个节点)
将第一个改为pich,其他的都改为squash。
再从新编辑commit

 

2、svn

 

svn  revert  [-R]  [something]   //回退本地修改[-R] [文件名]

 

 

3、vim

3.1 设置tab为4个空格

set ts=4
set expandtab
set autoindent

3.2 粘贴代码取消自动缩进

1,在拷贝前输入:set paste (这样的话,vim就不会启动自动缩进,而只是纯拷贝粘贴)
2,拷贝完成之后,输入:set nopaste (关闭paste)

3.3 替换某字符串(全部替换)

将dev替换成mydev
:%s/dev/mydev/g

 

4、patch

 

5、查看栈的大小

内核栈:默认8K(32位)16K(64位)

用户态线程栈:ulimit -s 

临时改变线程栈空间的大小:ulimit -s 大小

进程栈:是动态开辟的,比线程栈大小大

 

6、解压/压缩文件

*.tar 文件

tar –xvf file.tar //解压 tar包

*.tar.gz 和 *.tgz 文件

tar -xzvf file.tar.gz //解压tar.g

*.gz 文件

gunzip FileName.gz //第一种 *.gz 解压
gzip -d FileName.gz //第二种 *.gz 解压

*.bz2 文件

bzip2 -d FileName.bz2 //第一种解压 *.bz2 文件
bunzip2 FileName.bz2 //第二种解压 *.bz2 文件

*.tar.bz2 文件

tar jxvf FileName.tar.bz2 //第一种解压 *.tar.bz2 文件
tar --bzip xvf FileName.tar.bz2 //第二种解压 *.tar.bz2 文件

*.zip 文件

unzip FileName.zip //解压 *.zip 文件

.xz 文件

XZ compressed data   
xz -d filename.xz  //解压

.cpio 文件

cpio -iv < filename.cpio

7z文件

7z x xx.7z

*.rar 文件

unrar e Filename.rar  //解压 *.rar 文件

 7、tar 压缩/加密/解密

tar -czvf -  file-name | openssl des3 -salt -k  password -out  file-name.tar.gz  //加密文件 file-name文件名 password 加密密码
openssl des3 -d -k  password -salt -in  file-name.tar.gz | tar xzf - //解密文件 file-name文件名 password 加密密码

 

openssl version -a   //查看openssl 版本,解压失败,可能是OpenSSL 版本差异较大导致

 

 8、grep

grep -C 5 foo file //显示file文件里匹配foo字串那行以及上下5行
grep -B 5 foo file //显示foo及前5行
grep -A 5 foo file //显示foo及后5行
grep -rn foo--exclude-dir={proc,sys} //搜索foo,不包括proc,sys文件夹
cat /proc/interrupts | grep -v 'eth1' //匹配文件中不包含 eth1 的那一行
cat /proc/interrupts | grep -E 'LOC|ERR' //grep -E 同时匹配多个关键词,既搜索LOC又搜索ERR
grep xxx --binary-files=without-match //忽略二进制

 

9、dmidecode

dmidecode –t slot  //查看pci 插槽对应设备

 

10、getconf

[root@localhost ~]# getconf PAGESIZE   //查看页大小
4096
[root@localhost ~]# getconf -a   //查看所有的系统配置

 11、ifconfig

ifconfig vEth0 down
ifconfig vEth0 hw ether 00:40:08:01:01:01
ifconfig vEth0 172.16.201.201 netmask 255.255.255.0 up

 12、dd 命令

time dd if=/dev/zero of=test.txt oflag=direct bs=4k count=100000
// 测试读写速度

13、major、minor

cat /proc/devices
//查看 major
cat /sys/bus/usb/..../uevent/
//查看 minor

//如果有设备节点:
# ls /dev/watchdog -lah
crw-rw----    1 root     root       10, 130 Jan  1 00:00 /dev/watchdog
//c 表示字符设备, major 10,minor 130

14、rpm

rpm -ivh  --nodeps --force sysstat-11.7.3-5.el8.aarch64.rpm
//如果命令安装存在依赖,强行安装

 

15、设置core操作

ulimit -c unlimited
echo 1 > /proc/sys/kernel/core_uses_pid echo "/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

 

 

 

16、设置hugepage

/***** 设置hugepage ****/
dts 传参:
hugepagesz=512M default_hugepagesz=512M  hugepages=6
echo 6 >  /proc/sys/vm/nr_hugepages 或
echo 6 > /sys/kernel/mm/hugepages/hugepages-524288kB/nr_hugepages

17、taskset 改绑核

taskset -c 5  echo 463 > /sys/class/gpio/export
taskset -c 5  echo out > /sys/class/gpio/gpio463/direction
taskset -c 5  cat /sys/class/gpio/gpio463/value
taskset -c 5  echo 1 > /sys/class/gpio/gpio463/value

 

18、telnet 操作

/bin/telnet 172.20.1.172

 

19、tftp 操作

tftp 172.20.1.172
tftp>binary
tftp>get xxxx文件

或者

tftp 172.20.1.172 -g -r 文件名

 20、查看page/hugepage大小

//查看当前环境页大小:x86为4K页,ARM为64K页
[root@X86_64]# getconf PAGESIZE
4096
[root@ARM64]# getconf PAGE_SIZE
65536
//查看大页大小
cat /proc/meminfo | grep Hugepagesize

 21、scp 跨设备拷贝

scp local_file remote_username@remote_ip:remote_folder //本端拷贝到远端
scp  remote_username@remote_ip:remote_folder  local_file //远端拷贝到本端
//scp -r 则是拷贝文件夹
//local_file本地文件,remote_username  远端用户名,remote_ip 远端设备ip, remote_folder 远端设备文件路径

 22、export

./test_csdnping: error while loading shared libraries: librte_ethdev.so.21: cannot open shared object file: No such file 

export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH  //或者把/usr/lib改为需要添加lib 的路径

 23、读取设备节点内部数据(flash等)

hexdump -Cv /dev/mtdblock1 -s 16776704  -n 512
// 偏移16776704  字节读取512字节大小数据

24、ps 

1、查看进程内的线程信息 

ps -TF c PID
sh-4.4$ ps -TF c 616
UID        PID  SPID  PPID  C    SZ   RSS PSR STIME TTY      STAT   TIME CMD
root       616   616     1  0 1082457 528576 4 Aug21 ?       SLsl   5:55 xx1
root       616   622     1  0 1082457 528576 0 Aug21 ?       SLsl   0:00 xx2
root       616   623     1  0 1082457 528576 0 Aug21 ?       SLsl   0:00 xx3
root       616   624     1  1 1082457 528576 4 Aug21 ?       SLsl  16:29 xx4
root       616   625     1  0 1082457 528576 0 Aug21 ?       SLsl   0:00 xx5

2、查看进程 并排序

ps aux --sort=-pcpu  //按照cpu 占用率 排序进程
ps aux --sort=-rss    //按照物理内存占用率 排序进程

 

示例:

sh-4.4$ ps -aux --sort=-pcpu
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       616  107  7.3 69277248 528576 ?     SLsl Aug21 1226:36 xx1
root       633 12.7  1.1 1059904 82048 ?       Ssl  Aug21 145:50 xx2
root      1178  2.8  0.8 762496 60800 ?        Ssl  Aug21  32:47 xx3
root       835  0.7  0.2 148160 15104 ?        Ssl  Aug21   8:53 xx4
root      1539  0.7  0.5 715648 41728 ?        Sl   Aug21   8:57 xx5
root       807  0.5  0.4 356224 31552 ?        Ssl  Aug21   6:28 xx6

 

25、taskset

1、查看 线程/进程 绑核情况

taskset -c -p PID/TID (最好查看 TID 因为进程一般有多个线程)
sh-4.4$ taskset -c -p 616
pid 616's current affinity list: 0,2,4-7

 26、kill

根据进程名直接kill 进程

ps -aux | grep -E "test_a|test_b" | grep -v grep | awk '{print $2}' | xargs kill

 

posted on 2022-05-28 16:05  红旗kernel  阅读(86)  评论(0编辑  收藏  举报

导航