注册 登录
编程论坛 Linux教室

Linux 命令行

madfrogme 发布于 2012-10-16 19:52, 2625 次点击
$ splitvt 可以把一个窗口分割成两块,

Ctrl-W 可以在不同窗口之间切换


用ssh把本地文件tinyweb.c发到远程机器192.168.1.101上

$ scp tinyweb.c wzj@192.168.1.101:/Users/wzj/Git/TinyWeb


给IP地址排序

$ sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n addresses


vim 中 代码折叠的方法, 用zf

比如 zf5j 是折叠5行; 把光标移到 '{'或'}'处, zfa{ 则折叠一整块代码, 重新打开则是 zo



[ 本帖最后由 madfrogme 于 2012-11-9 18:51 编辑 ]
26 回复
#2
外部三电铃2012-10-16 20:18
sudo apt-get install splitvt
装上了,挺好用,一开始我还以为是vim命令,vim也是用Ctrl+W分割窗口的,谢谢搂住
#3
pangding2012-10-17 08:57
以下是引用外部三电铃在2012-10-16 20:18:55的发言:

用装上了,挺好用,一开始我还以为是vim命令,vim也是用Ctrl+W分割窗口的,谢谢搂住

vi 这个流派的编辑器是扎根 unix 的,有深远影响。很多工具用 hjkl 移动光标,是最常见的例子。
#4
madfrogme2012-10-20 09:26
经常进入一个深层目录的话,可以简化手续

# echo t='/home/wzj/Test' >> ~/.bashrc
# source ~/.bashrc
# cd $t
# pwd


当然还有一个方法是在经常使用的目录下建一个软连接

# ln -s /home/wzj/Test
~/Test



[ 本帖最后由 madfrogme 于 2012-10-20 10:34 编辑 ]
#5
pangding2012-10-21 08:59
还有一个方法是建一个 alias
#6
madfrogme2012-10-21 10:10
以下是引用pangding在2012-10-21 09:59:42的发言:

还有一个方法是建一个 alias

还有alias哈,版主平时来的少,要多来看看啊,
我最近也开学,不比放假时间多了!
其实我怪想经常请教一些关于bash的问题的
感觉掌握bash好像会很有用
只是觉得现在一直没有管理服务器的需要,所以不想系统的学

[ 本帖最后由 madfrogme 于 2012-10-21 11:16 编辑 ]
#7
madfrogme2012-10-21 11:29
最近才发现,bash默认的编辑方式是emacs,

对于vim用户想更快的编辑命令行

可以在 .bashrc中添加 set -o vi

这样在编辑命令行时,按一下ESC键,就进入了vim模式,

比如 0 是 移动到开头, $ 是移动到末尾,

当然还有 e, E, B,W 之类


[ 本帖最后由 madfrogme 于 2012-10-21 22:43 编辑 ]
#8
zklhp2012-10-21 11:41
以下是引用madfrogme在2012-10-21 11:29:55的发言:

最近才发现,bash默认的编辑方式是emacs,  
 
对于vim用户想更快的编辑命令行可以在 .bashrc中添加 set -o vi
 
这样在编辑命令行时,按一下ESC键,就进入了vim模式,
 
比如 0 是 移动到开头, $ 是移动到末尾,
 
当然还有 e, E, B,W 之类

最近才发现,bash默认的编辑方式是emacs,

从历史上说 emacs的操作方式也就是C-f C-b 这样的东西 历史比hjkl要长罢
#9
madfrogme2012-10-21 11:56
以下是引用zklhp在2012-10-21 12:41:10的发言:


最近才发现,bash默认的编辑方式是emacs,

从历史上说 emacs的操作方式也就是C-f C-b 这样的东西 历史比hjkl要长罢

Z版,我知道啦!我就是懒得再去学新的编辑器是怎么用的了,如果
最先我用的时emacs,现在我就是emacs派了,要是Z版开一贴,从保存文件开始讲,
介绍emacs的简单用法,每天一个命令,我想我还是很愿意去学的,
上次帮人装了emacs之后,都不知道怎么保存退出,超级丢脸
#10
zklhp2012-10-21 12:41
以下是引用madfrogme在2012-10-21 11:56:16的发言:

 
Z版,我知道啦!我就是懒得再去学新的编辑器是怎么用的了,如果
最先我用的时emacs,现在我就是emacs派了,要是Z版开一贴,从保存文件开始讲,
介绍emacs的简单用法,每天一个命令,我想我还是很愿意去学的,
上次帮人装了emacs之后,都不知道怎么保存退出,超级丢脸

明显没看我发的那个贴 退出是C-x C-c 如果没保存 退出的时候有提示

保存貌似我那个贴没说 是C-x C-s 如果知道C-x是一个prefix也就是前缀 那么里面这个不难 就是save么
#11
zklhp2012-10-21 12:46
以下是引用madfrogme在2012-10-21 11:56:16的发言:

 
Z版,我知道啦!我就是懒得再去学新的编辑器是怎么用的了,如果
最先我用的时emacs,现在我就是emacs派了,要是Z版开一贴,从保存文件开始讲,
介绍emacs的简单用法,每天一个命令,我想我还是很愿意去学的,
上次帮人装了emacs之后,都不知道怎么保存退出,超级丢脸

多说一句啦 搞计算机的 怎么能怕学习呢 貌似搞计算机一辈子都得学习 你现在这么年轻就怕了 以后可怎么办啊。。

怕学习不如跟我去搬砖罢 嘻嘻
#12
madfrogme2012-10-21 21:39
Bash中判断字符串长度的三种方式

1. ${#string}

2. expr length $string

    相当于C中的strlen()

3. expr "$string" : '.*'


例:
$ stringZ=abcABC123ABCabc

$ echo ${#stringZ}

15

$ echo `expr length $stringZ`

15

$ echo `"$stringZ" : '.*'`

15


[ 本帖最后由 madfrogme 于 2012-10-22 20:50 编辑 ]
#13
madfrogme2012-10-21 21:42
回复 11楼 zklhp
我晕!
#14
madfrogme2012-10-21 22:02
在Bash中一行行的读文件的方法, 用while 和 read 的组合

while read -r line
do
        echo "$line"
done < "foo.c"

如果没有 -r 选项, backslash 就会被忽略,

原本的两行也就变成了一行

例如果

printf("Hello, \
            world\n");


[ 本帖最后由 madfrogme 于 2012-10-21 23:20 编辑 ]
#15
madfrogme2012-10-21 22:18
关于字符串的比较 “>"

if [[ "$a" < "$b" ]]

或者是

if [ "$a" \< "$b" ]

在 一个 [] 中, backslash 是必要的
#16
madfrogme2012-10-21 22:44
终端显示时间

$ date +%T

23:40:18

上面太无聊了,来个暴力的

$ watch -tn 1 date +%T \| figlet -l

watch 用来重复执行命令, n 指定了 1 秒一次,

figlet 则是输出 text image

Ctrl-C来结束


[ 本帖最后由 madfrogme 于 2012-10-22 20:44 编辑 ]
#17
madfrogme2012-10-22 19:48
#!/bin/bash

filename=${1:?"filename missing"}

howmany=${2:-10}

sort -nr $filename | head -$howmany

主要是  ' : ? ' 和 ' : - ' 的用法

: ? 的情况, 若参数没定义,捕捉错误,输出清算

: - 的情况, 若参数没定义,返回默认值
#18
外部三电铃2012-10-22 21:27
今天刚发现一个同类软件tmux
安装
sudo apt-get install tmux
#19
madfrogme2012-10-22 21:45
回复 18楼 外部三电铃
嗯,tmux好像和screen 命令很像吧,不过不会用,欢迎扫盲
#20
外部三电铃2012-10-22 23:33
以下是引用madfrogme在2012-10-22 21:45:51的发言:

嗯,tmux好像和screen 命令很像吧,不过不会用,欢迎扫盲

我也是刚知道tmux的,比screen和splitvt功能都要多,也能实现分屏,窗口切换什么的,功能多,配置也复杂一些
#21
pangding2012-10-23 23:17
以下是引用madfrogme在2012-10-21 10:10:42的发言:

 
还有alias哈,版主平时来的少,要多来看看啊,
我最近也开学,不比放假时间多了!
其实我怪想经常请教一些关于bash的问题的
感觉掌握bash好像会很有用
只是觉得现在一直没有管理服务器的需要,所以不想系统的学

在下最近交了个女朋友,不能天天搬砖了。

bash 学一些基本的东西就行了吧,如果有精力学学 python 我觉得不错。平时用命令行,我觉得 emacs 模式比 vi 模式方便。
vi 在编辑文本方面比 emacs 好用很多,不过写作文本的时候差不太多,有时感觉多多少少还不如 emacs 方便。
比如写变量名的时候,就打 $abcd 然后 M-- M-u(alt 加 减号 和 u) 就可以变成 $ABCD 还是很方便的,不用按着 shift 单手平移了。反正我只打这么几个大写字母的时候不爱用 caps lock。会 emacs 之后,连 shift 也不用用了。

用用就好了,emacs 的基本功能我已经很熟练了。就是感觉用 emacs 写代码不习惯。应该是 vim 用得久了,先入为主了吧。
#22
madfrogme2012-10-23 23:29
以下是引用pangding在2012-10-24 00:17:23的发言:


在下最近交了个女朋友,不能天天搬砖了。

bash 学一些基本的东西就行了吧,如果有精力学学 python 我觉得不错。平时用命令行,我觉得 emacs 模式比 vi 模式方便。
vi 在编辑文本方面比 emacs 好用很多,不过写作文本的时候差不太多,有时感觉多多少少还不如 emacs 方便。
比如写变量名的时候,就打 $abcd 然后 M-- M-u(alt 加 减号 和 u) 就可以变成 $ABCD 还是很方便的,不用按着 shift 单手平移了。反正我只打这么几个大写字母的时候不爱用 caps lock。会 emacs 之后,连 shift 也不用用了。

用用就好了,emacs 的基本功能我已经很熟练了。就是感觉用 emacs 写代码不习惯。应该是 vim 用得久了,先入为主了吧。

哈哈,恭喜恭喜,原来如此啊!!

python前段时间看了一阵没能坚持!关键是被他的各种花样繁多的库函数吓到了,

估计会看一阵,停一阵
#23
madfrogme2012-10-26 19:32
平时须要把一些文本导出成pdf放入kindle

但是一行字数太多就使字变的很小,于是就想到用fmt命令

fmt 命令是一个简单的可以调节文本宽度的工具

$ fmt -w 40 old_file > new_file

指定宽度之后再导出成pdf一行上的字就大多了



[ 本帖最后由 madfrogme 于 2012-10-26 20:34 编辑 ]
#24
pangding2012-10-27 09:49
fmt呀,indent 这种工具估计以前比较常用。现在基本都是用编辑器来完成这些工作了。
我一般要重排文本就用 vim;emacs 也有这些功能。而且这些编辑器都有脚本模式,可以批量处理文本,甚至可以批量对文本作复杂变换。
#25
madfrogme2012-10-27 10:00
以下是引用pangding在2012-10-27 10:49:10的发言:

fmt呀,indent 这种工具估计以前比较常用。现在基本都是用编辑器来完成这些工作了。
我一般要重排文本就用 vim;emacs 也有这些功能。而且这些编辑器都有脚本模式,可以批量处理文本,甚至可以批量对文本作复杂变换。

我还真不知道vim里怎么实现这个功能,更别说emacs,还望版主不吝赐教
#26
pangding2012-10-27 11:02
以下是引用madfrogme在2012-10-27 10:00:32的发言:

 
我还真不知道vim里怎么实现这个功能,更别说emacs,还望版主不吝赐教

vim 的话,gq 是 fmt 的功能,= 是 indent 的功能。自己 :h 一下就行了,文档里还提点了一些定制这些功能要用到的选项。

emacs 的话,还是等 z版 来传教吧。
#27
pangding2012-10-27 11:09
另开了一个帖子,应该答的人会多一些:
https://bbs.bccn.net/thread-384629-1-1.html
1