Skip to content

Latest commit

 

History

History
164 lines (117 loc) · 4.82 KB

shell.org

File metadata and controls

164 lines (117 loc) · 4.82 KB

Shell拾零

1 20%去对付80%的应用

  • ls -l :

    detail information

  • ls -t :

    按时间排序,在凌乱的Download下最有效

  • apt-cache search apt-get source:

    Ubuntu(deb系)下载源码的好搭档

  • yum search yum-download --source:

    Fedora(rpm系)上下载源码的好搭档

  • rpmbuild -ba rpmbuild -bp:

    打包命令

  • top

    top 的输出中 M 按内存使用排序 P 按CPU使用排序

  • ps aux pgrep kill

    进程查看都靠这些了

  • cat
    • -e 参数将结尾符打印出来,对排查空格,代码洁癖者有疗效
    • 新建临时文件, cat > newfile.txt ==> 输入内容 ==> <C-d>
  • less
  • more
  • cut

    -d -f

  • nl
  • grep -i grep -v grep -H grep -n
  • sed -e sed ='=s/ab/cd/
  • awk -F '{print $0}
  • find . -name a -o -name b -exec rm -rf {} \;
  • echo{1..10}
  • seq 1 10
  • rm !$
  • df -h
  • du -sh
  • df -T

    显示fs类型

  • wc -c -l
  • tr -d

    删除Windows换行可以用这个命令 |

  • tra-z’ ’A-Z

    大小写改变

  • sort uniq

    Shell中的好基友

  • uniq -c
  • find ~ -type f -mtime 0

    连位置都记不得的时候,ls -lt也不行了,就用这个

  • awk ='=NR%2==1

    只输出奇数行

  • yum provide/rpm -qf

    (RPM系)查询软件/文件属于哪个包

  • dpkg-query -S /file/path

    (Debian系)查询某个文件输入哪个包,配合 =apt-get source=有奇效

  • $#

    命令行参数的个数

  • $@ $*

    命令行所有参数

  • & % $ # _ { } ~ ^ \

    latex escape symbol

  • check 64 cpu?

    cat /proc/cpuinfo |grep lm

  • check OS 32 or 64?

    uname -a

  • 查看ascii码表

    man ascii

2 gsetting在调试中的应用

gsetting是gconf的上层封装,遇到个nautilus国际化的问题,即要求桌面上显示的”Computer”“Home”“Trash”三个图表的name要与系统当前的语言一致.这个过程就用到gsetting了.debug的大致过程如下:

gsettings list-schemas|grep nautilus # 找到org.gnome.nautilus.desktop这个setting name
gsettings  list-recursively org.gnome.nautilus.desktop #列出此setting中的所有选项以及选项当前的值
grep -rn computer-icon-name nautilus/ #在nautilus源码中搜寻一个关键字,找到相关代码文件,最终定位在./libnautilus-private/nautilus-global-preferences.h文件中
根据头文件的宏一路找去,最终是发现三个词没有国际化.
加上_()这个用来国际化的函数,重启发现只有Home实现了国际化,最终发现Home在setting中的name为空值,尝试将另外对应两项也设为空值看看,成功!

3 awesome wm setting

在文件 /usr/share/xsessions/awesome.desktop 中修改NoDisplay配置,项为true,则这样重启session才会有选择项

4 Python pip install 的代理设置,

export http_proxy=192.168.1.1:8888
sudo -E pip install package-name
pip install --proxy="http://xx.xx.xx.xx:xxxx" packagename

5 xmonad中去配置左手鼠标操作:

xmodmap -e "pointer = 3 2 1"

这样做法只是一次session中生效,如果要持久的要在 /usr/share/X11/xorg.conf.d/10-evdev.conf 的pointer字段添加:

Option "ButtonMapping" "3 2 1"

6 gcc option

gcc -pipe -m64 -ansi -fPIC -g -O3 -fno-exceptions -fstack-protector -Wl,-z,relro -Wl,-z,now -fvisibility=hidden -W -Wall -Wno-unused-parameter -Wno-unused-function -Wno-unused-label -Wpointer-arith -Wformat -Wreturn-type -Wsign-compare -Wmultichar -Wformat-nonliteral -Winit-self -Wuninitialized -Wno-deprecated -Wformat-security -Werror -c source.c -o dest.o

7 find

$ find $HOME/tmp -type f -name "*~" -exec echo rm {} ";"       echo for safety
rm /home/smith/tmp/file1~
rm /home/smith/tmp/junk/file2~
rm /home/smith/tmp/vm/vm-8.2.0b/lisp/vm-cus-load.el~
$ find $HOME/tmp -type f -name "*~" -exec rm {} ";"            Delete for real