ubuntu命令-心得

ls -lSh 按文件大小反序排列
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-r 对目录反向排序。
-l 列出文件的详细信息
-r 对目录反向排序。 
-s 在每个文件名后输出该文件的大小。  
-t 以时间排序。
-u 以文件上次被访问的时间排序。
-A 显示除 “.”和“..”外的所有文件。
-R 列出所有子目录下的文件。
-S 以文件大小排序

sort命令
-f会将小写字母都转换为大写字母来进行比较,亦即忽略大小写
-r sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。
-u  在输出行中去除重复行。
-n  你有没有遇到过10比2小的情况出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面喽。这也是sort的一贯作风。


---------------------------------
你可能不知道的Shell http://coolshell.cn/articles/8619.html

!$
!$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串。如:你可能会这样:
$mkdir mydir
$mv mydir yourdir
$cd yourdir
可以改成:
$mkdir mydir
$mv !$ yourdir
$cd !$

sudo !!
以root的身份执行上一条命令 。
场景举例:比如Ubuntu里用apt-get安装软件包的时候是需要root身份的,我们经常会忘记在apt-get前加sudo。每次不得不加上sudo再重新键入这行命令,这时可以很方便的用sudo !!完事。
(陈皓注:在shell下,有时候你会输入很长的命令,你可以使用!xxx来重复最近的一次命令,比如,你以前输入过,vi /where/the/file/is, 下次你可以使用 !vi 重得上次最近一次的vi命令。)
cd –
回到上一次的目录 。

‘ALT+.’ or ‘<ESC> .’
热建alt+. 或 esc+. 可以把上次命令行的参数给重复出来。

du -s * | sort -n | tail
列出当前目录里最大的10个文件。

date -d@1234567890
时间截转时间
> file.txt
创建一个空文件,比touch短。


ps aux | sort -nk +4 | tail
列出头十个最耗内存的进程

ctrl-x e
快速启动你的默认编辑器(由变量$EDITOR设置)。
netstat –tlnp
列出本机进程监听的端口号。(陈皓注:netstat -anop 可以显示侦听在这个端口号的进程)

tail -f /path/to/file.log | sed '/^Finished: SUCCESS$/ q'
当file.log里出现Finished: SUCCESS时候就退出tail,这个命令用于实时监控并过滤log是否出现了某条记录。
ssh user@server bash < /path/to/local/script.sh
在远程机器上运行一段脚本。这条命令最大的好处就是不用把脚本拷到远程机器上。
ssh user@host cat /path/to/remotefile | diff /path/to/localfile -
比较一个远程文件和一个本地文件

curl ifconfig.me
当你的机器在内网的时候,可以通过这个命令查看外网的IP。
_____________________________________________________________________
一些杂心得 
应该知道的Linux技巧  http://coolshell.cn/articles/8883.html
Bash下Ctrl-C、Ctrl-D和Ctrl-Z的区别 
http://our2848884.blog.163.com/blog/static/146854834201322446383/

Bash下Ctrl-C、Ctrl-D和Ctrl-Z的区别?
Ctrl + C To terminate(终止进程)
Ctrl + D signals EOF(文件结束符)
Ctrl + Z suppends a program(暂停一个进程)
fg %jobnumber 将后台的任务拿到前台来处理
bg %jobnumber 将任务放到后台中去处理
kill 管理后台的任务


htop 和 iotop  用来查看进程,内存和IO负载。

使用SecureCRT时,屏幕假死的问题,只要数据ctrl+s,就会假死;输入ctrl+q就可以恢复过来。


Ctrl+\(SIGQUIT)和Ctrl+C (SIGINT)区别
2) SIGINT
程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。
3) SIGQUIT
和SIGINT类似, 但由QUIT字符(通常是Ctrl-\)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。
还有grep/egrep的各种选项。比如: -o, -A, 和 -B 这些选项是很值得了解的。
-A<显示列数>或--after-context=<显示列数>   除了显示符合范本样式的那一列之外,并显示该列之后的内容。
  -b或--byte-offset   在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。
  -B<显示列数>或--before-context=<显示列数>   除了显示符合范本样式的那一列之外,并显示该列之前的内容。
  -c或--count   计算符合范本样式的列数。
  在 bash 里,使用 Ctrl-R 而不是上下光标键来查找历史命令。
  Ctrl-P就能够从历史记录中取到前一条命令(Ctrl-n取下一条命令)
  ip addr
  在 bash里,使用 Ctrl-W 来删除最后一个单词,使用 Ctrl-U 来删除一行。请man bash后查找Readline Key Bindings一节来看看bash的默认热键,比如:Alt-. 把上一次命令的最后一个参数打出来,而Alt-* 则列出你可以输入的命令。
  pstree -p 可以帮你显示进程树。
  pgrep -l java,使用 pgrep 和 pkill 来找到或是kill 某个名字的进程。 (-f 选项很有用).
  把 HTML 转成文本: lynx -dump -stdin
如果你要处理XML,使用 xmlstarlet
了解 awk 和 sed,并用他们来做一些简单的数据修改操作。例如:求第三列的数字之和: awk ‘{ x += $3 } END { print x }’。这可能会比Python快3倍,并比Python的代码少三倍。
使用 shuf 来打乱一个文件中的行或是选择文件中一个随机的行。
Java 系统监控有一个小的技巧是,你可以使用kill -3 <pid> 发一个SIGQUIT的信号给JVM,可以把堆栈信息(包括垃圾回收的信息)dump到stderr/logs。

-----------------------------------------------------------------------
文本编辑命令
more命令
ctrl+f(或空格键)是向下显示一屏,ctrl+b是返回上一屏; Enter键可以向下滚动显示n行,要通过自己设定,默认为1行;
= 输出当前行的行号; :f 输出文件名和当前行的行号; v 调用vi编辑器; ! 命令 调用Shell,并执行命令;
q 退出more,还有一个当我们查看某一文件时,想调用vi来编辑它,不要忘记了v动作指令,这是比较方便的。

cat [选项]
-e 等价于 -vE
选项 -A, --show-all 等价于 -vET
-E, --show-ends 在每行完毕处显现 $
-v, --show-nonprinting 运用 ^ 和 M- 引证,除了 LFD 和 TAB 之外
-n 显示行号

less [选项]
-M 显示读取文件的百分比、行号及总行数
-N 在每行前输入行号
-p pattern   例如在/etc/user中搜索单词 mine,可以使用 “less -p mine /etc/user”


  • 打开大文件不要用 vi 用 more或less 等 否则内存受不了 小文件用vi

  • 防火墙在 /etc/sysconfig/iptables

  • echo 3 > /proc/sys/vm/drop_caches 释放系统缓存


  • cp -rf 深度copy

  • tar -zxvf xxx.tar.gz文件


  • 一般启动文件都在都在 /etc/init.d/ 目录下 中毒后 进去 ll -t 按时间倒序排 看下时间排名前吗的执行脚本是否正常的 否则就直接删掉


  • top 查看 cpu 内存等消耗情况 top -H -p 进程ID 可以查看进程下线程的 IO CPU 内存等消耗情况



# wget http://www.linuxsense.org/xxxx/xxx.tar.gz
简单说一下-c参数, 这个也非常常见, 可以断点续传, 如果不小心终止了, 可以继续使用命令接着下载
例如: # wget -c http://www.linuxsense.org/xxxx/xxx.tar.gz

把CPU#1 #2 #3分配给PID为2345的
进程:# taskset -cp 1,2,3 2345

查看程序所使用的核心
taskset -p $pid

  cat /proc/cpuinfo | grep processor 查看cpu core 情况
  cat /proc/cpuinfo | grep processor | wc -l 当然你也可以直接统计cpu个数

例如查看java进程的CPU核中的分布情况:
top -p$(pgrep java |awk 'BEGIN{ORS=","}{print $0}' |sed 's/.$//') 
top -p$(pgrep 'kvm -S' |awk 'BEGIN{ORS=","}{print $0}' |sed 's/.$//') 


在ps -ef | grep "abc" 匹配行时,为什么结果里面会有条grep abc的记录?
ps -ef | grep "abc" | grep -v grep

ls -lsa 查看当前目录下的权限



sh", "-c","export LANG=uc_EN;ifconfig" 执行第3个的命令
export LANG=uc_EN;ifconfig,展示ifconfig的结果
grep "hello" file.txt|wc -l 在file.txt中搜索包含有hello的行并计算其行数
管道(|)是将一个命令的输出作为另外一个命令的输入
ls *|grep *.sac |wc -l 统计当前目录下所有文件中包含*.sac的文件个数
cat *.txt|grep "love"|wc -l 输出文件中所有包含单词love的行数
wc -l test.sh --行数lines
wc -w test.sh --字数words
wc -c test.sh --字符数


ps -ef|sort +6r|head -10 列出消耗最多的10个进程
ps-ef|grep <PID号>;sleep 20;ps-ef|grep<PID号>
如果这次的ps命令输出中cpu战胜时间>(time)差接近20秒,那么这个进程就是那个跑飞的进程


http://www.360doc.com/content/06/1103/16/2187_249160.shtml linux命令精通


列出某一CPU上跑的所有进程/线程
比如 CPU2 上的:
ps -eLo pid,psr,command |sed -ne '/^\W\+[0-9]\+\W\+2\W\+/p'
嗯,后面 sed 匹配串里选第几个CPU,嗯前面的参数里,psr 是 CPU 号,嗯。

ps -eLo pid,psr,command |sed -ne '/^\W\+[0-9]\+\W\+1\W\+/p'|grep 3574


让fodera linux启动时,重新获得eth0的MAC地址。
sudo ifdown eth0
sudo ifup eth0

Ubuntu 9.0.4 下如何查看所有用户信息
cat /etc/shadow

ll命令无法使用 echo "alias ll='ls -l'" >> ~/.bashrc
  source  ~/.bashrc

解决ubuntu 11.10 输入法图标不显示
打开终端,输入:
killall ibus-daemon
(结束进程)
ibus-daemon -d
(重启ibus)

jar打包:jar -cvf 要打包的名称.jar a文件 b文件夹
unzip解压  unzip 要解压的包.jar
tracert 域名 看路由到域名的情况
rz 解压文件

猜你喜欢

转载自yingbin920.iteye.com/blog/1462547
今日推荐