zoukankan      html  css  js  c++  java
  • linux下的小问题

    启动程序查找共享库失败,解决方法:

    1. sudo vi /etc/ld.so.conf,添加对应的共享库路径; 
    2. sudo ldconfig,生效;

    查找应用程序失败,解决方法:

    1. vi ~/.bashrc,添加:export PATH=/usr/local/bin/your_bin/:$PATH;仅对当前用户的bash生效;
    2. 如是用zsh,则对应修改~/.zshrc;
    3. 如是全局生效,则对应修改/etc/profile
    4. 如果是sudo启动的,则修改/etc/sudoers文件,找到“secure_path”一行,添加对应的路径;

    去除'^M’

    1. "^M"在Linux下的输入方法 ctrl v + ctrl m
    2. find -type f | xargs sed -i 's/^M//g'     其中:^M 可以用 ’ ‘或‘15'代替;
    查看未挂载的设备的文件类型
    1. 安装parted工具
    2. 执行:parted /dev/sdx
    3. 进入了parted的命令行,执行:print list
    4. 注意:如果是fat32,mount的时候使用vfat 类型即可 
    gcc warning: 提示函数没有声明或函数类型冲突之类的
    1. 在使用的地方添加声明
    2. 否则有可能出现返回值不符合预期; 

    修改默认挂载

    1. vi /etc/fstab/

    cp参数:cp -rfvdp, d: 保存链接,p:保存权限

    sshd启动:sudo service sshd start / sudo systemctl ....

    添加用户到sudo:sudo vim /etc/sudoers   拷贝一行root,然后替换用户名

    readelf -s exe | grep symbol,可确认是否将新函数/全局变量之类的编进去

    addr2line -e exe addr

    useradd 和 adduser 区别??

    分析coredump

    1. 看到前三个堆栈是对的,第四个堆栈显示是0xffffffffffffffff,再往下就显示“Backtrace stopped: previous frame identical to this frame (corrupt stack?)”
    2. 更新了动态库之后,就可以bt看到所有堆栈了,挂死在assert()里面,而且所有的堆栈都出来了
    3. 这是个好奇怪的问题??

    追加写与非追加写

    1. 非追加写,多个线程一起写,则文件会错乱,因为每个线程的写入流程如下:
      • 锁住inode
      • 找到自己的f_ops
      • 从f_ops的地方开始写数据
      • 解锁inode
    2. 追加写,多个线程一起写,文件也不会错乱,因为每个线程的写入都是如下流程
      • 锁住inode
      • 获取i_size
      • 从i_size的位置开始写数据
      • 解锁inode

    PS:

    1. libevent安装方式:./autogen.sh && ./configure && make && sudo make install. 注意:当系统时间老于文件时间时,会使得make一直在循环;
    2. zlog安装方式:make && sudo make install.
    3. protobuf安装:同libevent;
  • 相关阅读:
    python 代码片段8
    python 代码片段7
    python 代码片段6
    python 代码片段5
    python 代码片段4
    django 代码片段3
    python 代码片段2
    Redis事物
    Redis的java客户端jedis
    Redis五大数据类型
  • 原文地址:https://www.cnblogs.com/zengjianrong/p/12304675.html
Copyright © 2011-2022 走看看