常用-F00160

流程图

linux cmd

项目

用 Callgraph 轻松画出 C 函数的调用关系图
静态分析 C 程序函数调用关系图

工具书

几种USB控制器类型:OHCI,UHCI,EHCI,xHCI

  • HDMI

HDMI之HPD

  • linux kernel源码

Elixir Cross Referencer
Code Browser by Woboq for C & C++
kernel.org-子模块
kernel/git/chenhuacai/linux-loongson.git
loongnix镜像官网下载
龙芯开源社区 MantisBT 系统
mips
linux-insides
linux内核版本下载

  • GPU

amd-gfx
coreboot
community.amd.com

gcc交叉编译器下载
Packages for Linux and Unix
https://github.com/
Building and Testing gcc/glibc cross toolchains
https://ftp.gnu.org/
交叉编译工具链(GCC)建立

开发工具及文档

  • emacs网址

emacs配置文件
onlyoffice目录下执行,每次更新
git submodule update --init --recursive

  • emacs开发环境搭建

sudo apt install xaw3dg-dev
sudo apt install libjpeg-dev
sudo apt install libpng-dev
sudo apt install libgif-dev
sudo apt install libtiff-dev
sudo apt install libncurses-dev
sudo apt install libgtk-3-dev
sudo apt install cmake
sudo apt install libtool-bin
sudo apt install xsel
sudo apt install autojump
sudo apt install global
sudo apt install gnome-screenshot(gnome-screenshot, scrot, gm,org使用图片)
sudo apt install auctex
sudo apt install silversearcher-ag

  1. git clone https://hub.fastgit.org/loongson/glibc.git
  2. apt-cache policy libc6
  3. sudo libinput debug-events – sudo apt install libinput-tools or libinput-dev
  4. systemd-analyze – kernel + userspace 启动时间
  5. cat /etc/.kyinfo – 系统镜像信息
  6. rm -r ~/.local/share/keyrings/login.keyring – 解决UOS每次开机跳解锁登录密钥环
  7. xrandr --verbose
  8. cat /sys/class/drm/card0-*/status
  9. Oops 内核调试技巧
  10. MotionPro_ID="ps -ef |grep -E ‘/opt/MotionPro/MotionPro’ |grep -v grep | awk ‘{print $2}’"
  11. grep -lar “struct timespec xtime;”
  12. grep . /sys/devices/system/clockevents/clockevent*/current_device
  13. watch -d ‘cat /proc/interrupts’
  14. grep -o 'CONFIG_[A-Z0-9_]’ arch/x86/entry/entry_64.S | sort | uniq
  15. cat /proc/interrupts | grep ‘CPU|44:’
  16. curl members.3322.org/dyndns/getip
  17. screenfetch
  18. du -h -x --max-depth=1
  19. ps aux --sort=-rss
  20. find . -type f -name “*.log” | xargs grep “BW” 查找当前目录下所有文件某一行的内容

区别linux支持rpm还是deb的简单方法

  • 用以下两个命令查看,如果第一命令有打印出版本号就说明支持rpm,第二有打印出版本号就说明支持deb。
  1. rpm --version
  2. dpkg --version

clean_cache

#!/bin/bash

for  i in 46  104 184 145
do 
    a=1 
    if (($i == 46));then 
        a="Uos123!!"
    fi 
    ssh uos@10.10.53.${i} "echo ${a} |sudo -S bash -c 'echo 3 > /proc/sys/vm/drop_caches'" ;
done

制作启动盘

loongnix

lsblk
sudo mkfs.ext4 /dev/sdb1
sudo dd if=./Loongnix-20-loongarch64.beta9.iso of=/dev/sdb bs=4M && sync
uos@uos-PC:/media/uos/LOONGSONISO$ ls
boot  EFI  live
Linux-5 perf安装
# sudo apt install linux-perf-4.19
# sudo apt install libnuma-dev
# sudo apt install libbabeltrace1
chroot后网络不通
root@uos-PC:/home/uos/Desktop/iso/test/squashfs-root# df -h
文件系统        容量  已用  可用 已用% 挂载点
udev            7.8G     0  7.8G    0% /dev
tmpfs           1.6G  2.9M  1.6G    1% /run
/dev/nvme0n1p3  104G  8.9G   90G    9% /
tmpfs           7.8G   96M  7.8G    2% /dev/shm
tmpfs           7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/sda1       916G  627G  243G   73% /var
tmpfs           1.6G   56K  1.6G    1% /run/user/1000
/dev/loop0      2.5G  2.5G     0  100% /home/uos/Desktop/iso/mnt
root@uos# cp  /etc/resolv.conf /home/uos/Desktop/iso/test/squashfs-root/etc/
设置bash颜色
root#vim ~/.bashrc
alias ls='ls --color
linux 下usb转网口不识别问题,menuconfig 中开启usb相关的配置项
CONFIG_USB_RTL8152
查看显存容量
# dmesg |grep VRAM  
# sudo apt install mesa-utils
# glxinfo |egrep -i 'device|memory'
查看年月日十分秒
# date "+%Y%m%e%H%M%S"
# date "+%Y%m%d%H%M%S"
查看当前内核配置项
# grep -E --color "RADEON|AMDGPU" /boot/config-`uname -r`
gitconfig 配置
f00160@f00160-PC:~/linux$ cat ~/.gitconfig
[user]
        email = xxxx@163.com
        name = "xxxx"
[sendemail]
        smtpserver = smtp.163.com
        smtpserverport = 25
        smtpencryption = tls
        confirm = auto
        smtpuser = xxxx@163.com
checking build system type... ./config.guess: unable to guess system type/you must specify one
MISC_DIR=/usr/share/misc
# cp ${MISC_DIR}/config.guess .
# cp ${MISC_DIR}/config.sub   .
ShellCheck - A shell script static analysis tool
https://blog.csdn.net/whatday/article/details/105070638
剪切版(终端、vim打开的文件)
shift+左右键
ctrl+shift+c复制
ctrl+shift+v粘贴
Linux下快速比较两个目录的不同
图形化
# vimdiff <(cd directory1; find . | sort) <(cd directory2; find . | sort)
Linux递归比较文件内容的差异
比较文件夹记得加上-r, 这样才可以递归所有文件夹
-q可以只输出哪些文件是不一样的,对于比较文件夹,可能这个比较有用
不过-q输出不同的文件时,有些情况是一个文件一个文件夹下有,一个没有,但是-q输出的是2个文件不一样 
# diff -Nrq a b
# colordiff -y a b
删除文件中包含指定字符串的行(sed)
# sed -e '/abc/d'  a.txt  > a.log   // 删除a.txt中含"abc"的行,将操作之后的结果保存到a.log
Shell逐行读取文件
while read line
do
echo $line
done  < filename
注释:这种方式在结束的时候需要执行文件,就好像是执行完的时候再把文件读进去一样。
vim技巧
ctags列出所有匹配项
ctrl + ],列出所有其他匹配项:ts
linux开机显示"failed to start set console font and keymap"
//看哪里错了:
# systemctl status console-setup.service
//解决错误:
# sudo systemctl restart console-setup.service
//看解决没有:
# systemctl status console-setup.service 
uos进入字符界面
# sudo systemctl set-default multi-user.target
uos进入图形模式
# sudo systemctl set-default graphical.target
Framebuffer 是自动开启的,除非使用 Nvidia 驱动,因为 Nvidia 驱动不支持 Framebuffer。要设置 Framebuffer 的分辨率,只需要修改GRUB配置文件的 GRUB_AFXMODE=1024x768x32 参数就可以了。而且这种方法只适用于虚拟机中的 Linux。在物理及中,想通过修改分辨率来放大字体是行不通的。
查看动态链接库关联
# ldconfig -p | less
 sudo journalctl -p err
按照数字顺序排序:
$ sort -n file.txt
跑完ltp需要重装系统,再测其他项。
debian apt info 查看包的信息
apt info emacs 
grep -r drmAuth . --include=*.c ./libdrm/ ./xorg-server
去掉字符串中的字符
cat file | tr -d "a-zA-Z">new_file
uos@uos-PC:~/Desktop$  systemd-analyze
Startup finished in 16.364s (firmware) + 7.268s (loader) + 5.083s (kernel) + 13.354s (userspace) = 42.071s 
graphical.target reached after 13.347s in userspace
设置drm的调试log等级:
sys结点位置: /sys/module/drm/parameters/debug
debug:Enable debug output, where each bit enables a debug category.
Bit 0 (0x01) will enable CORE messages (drm core code)
Bit 1 (0x02) will enable DRIVER messages (drm controller code)
Bit 2 (0x04) will enable KMS messages (modesetting code)
Bit 3 (0x08) will enable PRIME messages (prime code)
Bit 4 (0x10) will enable ATOMIC messages (atomic code)
Bit 5 (0x20) will enable VBL messages (vblank code) (int)
示例: echo 0x0c > /sys/module/drm/parameters/debug
打开了KMS, PRIME这些的打印, kernel驱动中使用DRM_DEBUG_KMS和
DRM_DEBUG_PRIME打印的信息都可以打印出来
一般设置为如下值:
echo 0x1f > /sys/module/drm/parameters/debug
apt install dosfstools genisoimage squashfs-tools xorriso grub-common grub-pc-bin grub-efi-amd64-bin debootstrap
// Base system installed successfully.
1. debootstrap kinetic chroot http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports
2. resolv.conf  
$ mv chroot/etc/resolv.conf chroot/etc/resolv.conf.1
$ cp /etc/resolv.conf chroot/etc/resolv.conf
3. mount
$ mount --bind /dev/ chroot/dev/
$ mount none -t proc chroot/proc
$ mount none -t sysfs chroot/sys
$ mount none -t devpts chroot/dev/pts
4. chroot chroot/
$ install package.sh
$ exit
5. rm chroot/root/.bash_history
6. umount 
$ umount chroot/dev/pts
$ umount chroot/dev
$ umount chroot/proc
$ umount chroot/sys
7. mkdir image/casper  -p
8. chroot chroot/ dpkg-query -W --showformat='${Package} ${Version}\n' | tee image/casper/filesystem.manifest
9. mksquashfs chroot/ image/casper/filesystem.squashfs
10. printf $(du -sx --block-size=1 chroot | cut -f1) > image/casper/filesystem.size
11. cp chroot/boot/vmlinuz* image/casper/
12. cp chroot/boot/initrd.img* image/casper/
13. grub & efi

---------------
grub-efi.disk.img
$ dd if=/dev/zero of=grub-efi-disk.img bs=12M count=1
$ mkfs.vfat grub-efi-disk.img
$ mkdir mnt-grub
$ mount grub-efi-disk.img mnt-grub/
$ grub-install --target x86_64-efi --removable grub-efi-disk.img --efi-directory=mnt-grub --boot-directory=mnt-grub/boot --uefi-secure-boot
$ vi mnt-grub/EFI/BOOT/grub.cfg
search --set=root --file /casper/vmlinuz
configfile /BOOT/grub.cfg

------------------
efi.img

$ dd if=/dev/zero of=efi.img bs=4M count=1
$ mkdir mnt-efi
$ mkfs.vfat efi.img
$ mount efi.img mnt-efi/
$ cp mnt-grub/EFI mnt-efi/ -rf
$ mkdir -p image/boot
$ cp mnt-grub/boot/* image/boot/ -rf
$ umount mnt-grub/
$ umount mnt-efi/
$ cp efi.img image/boot/grub/
$ cp /usr/lib/grub/i386-pc image/boot/grub/ -rf
$ touch image/boot/grub/grub.cfg
search --set=root --file /casper/vmlinuz

set timeout=30

menuentry "Try or Install Ubuntu" {
set gfxpayload=keep
linux /casper/vmlinuz boot=casper quiet splash ---
initrd /casper/initrd
}
menuentry "Ubuntu (safe graphics)" {
set gfxpayload=keep
linux /casper/vmlinuz nomodeset boot=casper quiet splash ---
initrd /casper/initrd
}
grub_platform
if [ "$grub_platform" = "efi" ]; then
menuentry 'Boot from next volume' {
exit 1
}
menuentry 'UEFI Firmware Settings' {
fwsetup
}
else
fi

14. cd image/ && find . -type f -print0 | xargs -0 md5sum | grep -v "\./md5sum.txt" > md5sum.txt
15. xorriso -as mkisofs -iso-level 3 -full-iso9660-filenames -volid "UBUNTU_LIVE_BUILD" -output ../ubuntu-live.iso -isohybrid-mbr /usr/lib/grub/arm64-efi/boot.mod --grub2-mbr /usr/lib/grub/arm64-efi/boot.mod --grub2-boot-info -append_partition 2 0xef boot/grub/efi.img -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat .
计算机缓存
缓存的概念可以理解为冰箱里保存的一堆食材,用的时候就可以直接拿,不用下楼买
1. 冰箱为一级 cache,冰箱里没有的食材,就得下楼了,这就耗时了
2. 小区楼下开了超市,提供部分食材,这就是二级L2 cache
3. 市场就是三级 L3 cache 
4. 这都没有就得让市场去重新采购,就是从内存拿数据到L3 cache
总结,假设 cpu 就是你所在的小区,冰箱为一级 cache,小区楼下的超市为二级 cache,市场为三级 cache,批发中心为内存。所以分了多级 cache,所有的电脑操作都来源生活。
常见的target相关的systemctl 操作
1. 查看systemd的默认target:
    systemctl get-default
2. 查看systemd的所有可用targets:
    systemctl list-unit-files --type=target
3. 查看systemd的所有启动targets:
    systemctl list-units --type=target
4. 设置systemd的默认target:
    systemctl set-default graphical.target
linux如何给格式化U盘后让Windows也识别到
1. 查看磁盘情况
sudo fdisk -l
2. 删除分区
sudo fdisk /dev/sdb
m # 获取帮助命令
d # 删除分区
n # 新建分区
p # 打印分区表
w # 写入分区表并退出
3. 手动将挂在的U盘分区卸载:umount /dev/sdbX
4. 格式化分区,根据要格式化为分区格式的不同选择命令
mkfs.vfat /dev/sdb
mkfs.vfat /dev/sdbX
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值