from http://elain.blog.51cto.com/3339379/623310

Linux命令大总结
------------------------------------------------------------------------------------
开机自启动命令行模式和图形模式:
vi /etc/inittab   改3为命令行模式    改5为图形模式

开关机命令:
关机 init 0   shtudown -h now     重启    reboot   init 6

从命令行模式切换图形模式:
startx   init 5

多用户登录,可用使用 Alt+F1 Alt+F2 Alt+F3来切换
-------------------------------------------------------------------------------------
GRUB相关问题解决命令:
*无法引导*:
1)插入光盘,进入后按F5,然后输入: linux rescue   回车
cd /mnt/sysimage/
cd /sbin
./grub-install /dev/hda
2)插入光盘,进入后按F5,然后输入: linux rescue   回车
cd /mnt/sysimage/
cd /sbin
./grub
grub>root (hd0,0)
grub>setup (hd0)
grub>K
grub>Kernel /vmliuz-2.4.20-8
grub>initrd /initrd-2.4.30-8.img
重启……

*用户名密码忘记问题*:
选系统菜单 按“e” 。在kernel下输入/1 按b引导内核
进入单用户模式后 输入:vi /etc/passwd
把root后的两个冒号之间的"x"删除就行,重启……
或者进入单用户模式后。输入:passwd root 更改一个root密码
-------------------------------------------------------------------------------------
文件系统命令:
Ctrl+z                   快速退出到字符输入模式
df                       查看硬盘所剩空间
du                       查看文件占用空间 -s -k -hs
touch                    创建文件
rm                       删除文件     -f -rf(常用)
mount                    挂载   -t
用法:#mkdir usb     /*建立一个挂载点*/
#cd /mnt       /*进入挂载点*/
#ls
#mount -t auto /dev/sdb1 /mnt/usb
umount                   卸载
#umount -a
#umount /mnt/usb
cal                      万年历 如:cal 10 2008 /*显示08年10月*/
data                     更改日期           dmesg                    显示系统信息
uname -a                 显示当前系统版本
man                      显示参考手册   如:man -l
--help                   查看命令帮助
---------------------------------------------------------------------------------------
目录文件操作命令:
ls                       显示目录下的文件 -a -R ll   -aR|more(多行显示按ENTER翻页)find                     查找文件
where is                 寻找文件        如:where is kqzj
clear                    清屏
cd ..                    返回上一级目录
pwd                      显示当前所在目录的绝对路径
cd                       进入所对应的相对路径
mkdir                    创建文件夹   -p(创建多层目录)如:mkdir -p aaa/bbb/ccc
rmdir                    删除文件夹
cp                       拷贝一个文件
more                     阅读文件   按Enter阅读(每次向下翻几行) 按q退出 再clear清屏
cat                      阅读文件   (从头看到尾)按PgUp向上翻
vi                       同上      先按ESC,加冒号 q! (!表示强行退出)
chmod                    修改文件的权限
如:chmod 777 kqzj.img 表示kqzj完全控制

读          写          执行
r           w           x
4           2           1
chown                    修改文件的属主
file                     显示文件类型
---------------------------------------------------------------------------------------
文件压缩命令:
gzip                     压缩    -v(显示进度)
gunzip                   解压    -fv(f表示不提示覆盖原文件)     相当于gzip -d
zip                      压缩    格式:zip (压缩后文件名) (原文件名)
unzip                    解压
bzip2                    压缩
bunzip2                  解压
tar -cvf                 打包          格式:tar -cvf (压缩后文件名) (原文件名)
-xvf                 解包
-czvf                打包并压缩    格式:tar -czvf kqzj.php.tar.gz kqzj.php
-zxvf                解包并解压
也可以把tar和gz合并成tgz 如:tar -czvf kqzj.php.tgz kqzj.php
---------------------------------------------------------------------------------------
软件包安装命令:
*安装二进制软件包*
tar -zxvf                先解压
chmod 755                再改权限
./                       执行当前目录下的文件    /usr/local/   默认安装路径
./(程序名) &             执行程序并在后台运行
*安装rpm软件包*
rpm 常用命令: -ivh
-Uvh
-i       安装一个新的安装包
-U       升级一个系统存在的一个软件包若不存在就安装它
-F       更新一个软件包若不存在就不安装它
-v       显示系统安装软件时显示的各种信息(路径等)
-h       显示系统安装软件时显示的进度
-e       删除一个软件包(接软件名)
-q(a)    列出用户已安装的软件
./setup.sh               进入安装文件目录后执行直接安装
*源代码安装命令*
tar -xvf                 解包
./configure              配置安装
vi README                查看说明
make                     读取并编译源代码
./configure make make
---------------------------------------------------------------------------------------
用户管理命令:
vi /etc/passwd           用户名(passwd)           :set nu 用序列形式显示
vi /etc/shadow           密码 (shadow)
vi /etc/login.defs       建立用户时系统默认的信息   #表示该信息被注释,不起作用
useradd                  添加用户 -u   -g   -G -d   -s -p
如:useradd -u 502 -g root -G ftp -d /home/kqzj/ -s /bash -p                            123456 kqzj
userdel                  删除用户 -r
passwd                   更改用户密码
--------------------------------------------------------------------------------------- 进程管理命令:
who(w)                   查看当前登录的用户    其实w更实用
last                     显示最近用户登录的情况
top                      系统监视命令
ps                       显示系统当前进程 -A   -aux(基于top与ps命令的综合)
kill                     结束一个进程   -9(无条件)
踢出一个用户,kill -9 pid(-bash)
---------------------------------------------------------------------------------------
日志管理命令:
vi /etc/syslog.conf       系统日志配置文件
cd /var/log               进入日志文件目录
---------------------------------------------------------------------------------------
shell编程命令:
bash                      执行shell脚本                     bash < a.sh
=============================================
a.sh 脚本内容如下:
#! /bin/bash
abc()
{
a=kqzjhack
echo $a
}
echo hostname:$HOSTNAME
echo username:$USERNAME
echo uid:$UID
echo pwd:`pwd`
abc
ls -l
==============================================
--------------------------------------------------------------------------------------
网络管理命令:
gdmconfig                 登录界面的配置
ifconfig                  查看当前的网络配置
setup                     配置网络
service network restart   重启网络服务 stop    start
service network state     查看当前网络状态
vi /etc/sysconfig/network-scripts/ifcfg-eth0   用vi编辑器修改IP地址
ping                      测试网络的连通
at                        计划任务命令 [-V][-q 队列][-f 文件名][-mldbv] 时间
-c 作业

Vim

首先简单的说一下vi编辑器──unix的通用编辑器,
读作vee-eye (visual editor的简写)。
(这里的vim,是改进的vi, Vi Improved简写,Vim 由Bram Moolenaar编写)
vi的工作模式
分为命令模式和插入模式 以及 : ex模式;
按esc键就可以让vi进入命令模式;
插入模式就是你输入文本的模式了。

vi的一些简单操作:
普通操作:
插入文本
命令 i 、a、I、A、o、O
i 进入命令模式输入 i ,这时候就是和普通的文本编辑器一般了;
a 或者 输入 a ,不同的是,a是在字符的后面插入追加文本,而i在字符的前面插入;
I 行首插入;
A 行尾插入。
o 光标下新建空行
O 光标上新建空行
修改删除文本
命令 c、x、d、D
cw 删除当前位置到该位置单词的末尾,外加插入文本; cw删除的是英文单词,中文不行的。
c$ or C 删除当前位置到行末,外加插入文本。
x 只删除当前字符 如果要删一个中文字的话请用 2x (当然也可以用4x 8x) 因为一个汉字占两个字符。
cc 删除一行,外加可以插入文本。
r 删除当前字符,外加可以插入文本。
dw 只删除当前位置到这个单词末。
[n]dd 删除[n]一行。 当然可以用 2dd 3dd 删除两行,三行。
D 删除到行尾。

粘贴,复制,合并
命令 p、y、J、"(引号)
p 当你执行上面的删除操作后,你所删除的文本会留在缓存中,当你输入 p 后会把这些删除的文本粘贴到当前光标后面。
y 组合有(yw,4yy,y$等) //复制单词,复制四行,复制到行末 复制后可用p进行粘贴
J 把下一行合并到当前行,注意J大写
"[x]yy 命名你的缓冲区 在复制命令前加上冒号和名称(a到z) 例如 "ryy "d2dd "zd)复制一行到r缓冲区,删除2行到d缓冲区,删除光标到句尾到z缓冲区。
"[x]p 粘贴x缓冲区到当前位置后。
默认有1~9缓冲区 为前9次删除操作。
可视操作
命令 v、V、Ctrl+v

当用gvim可以用鼠标选择你需要复制,删除的文本,然后按d(删除)、p(粘贴)、y(复制)操作你的文本,
当然也可以和其他程序通过粘贴板进行共享数据。
v 对于xterm中的vim 则输入命令 v 进入可视状态,这时候你可以用右键进行复制粘贴操作

重复操作与撤消
命令 . (点号) 、 u 、U
. 重复上一次的操作,当并不是那种重作,他只是重复你上次输入的命令。
Ctrl+R 重做
u 撤消上次操作
U 撤消当前行进行的任意修改。
查找文本
命令 /、?、n、N
/ 向后查找文本进入命令模式输入 /[你要查找的文本]; 例如找edit 输入 /edit ;
? 而向前查找文本就是输入 ?[你要查找的文本] ;
n 当有许多搜索结果时,命令模式下输入 n 就可以找下一个搜索结果,而输入 N
N 则是反向下一个搜索结果。

打开,保存与退出
先进入ex模式,就是在命令模式下输入 : 再输入命令。
命令 ZZ、 q、 w、 e、r
:ZZ 进入命令模式 输入 ZZ (大写)就是保存+退出;
:w 保存文本 进入命令模式 输入 w 就是保存;
:q! 强行退出是输入 q! ;
:e! 撤消当前所有编辑,返回原始状态的话,请输入 e! ;
:w [filename] 另存为就是 w [filename] 。
:e [filename] 打开另外一个文件(打开新文件前,请先保存文件。
:r [filename] 读入filename内容到当前文件的当前位置后
移动光标
命令 hjkl、(、)、{、}、e、w、b、gg、G

hjkl 一般可直接用键盘上的方向键进行光标的移动。而page up/down 键就是前后翻页了;
或者,命令模式下 按
h(左) j(下) k(上) l(右)
或者在这个基础加上数字,进行几行几行的移动,例如 4j就表示向下移动四行。
nG 例如200G 就是移动200行了。而Ctrl+G就是显示当前行信息(多少行,在文本的位置);
G 到文件尾
gg 到文件头

e 另外 输入 e 可以一单词的移动光标,
( 当前句首
) 下一句开始 例如 2) 向前移动两个句子
{ 段开始
} 下一段头
b、w 后前以单词为单位移动。

标记命令 m、‘(单引号)、`(反引号也就是 ~ 那里那个键)
m[x] 标记x(a~z)位置 例如 mb 标记当前光标位置为标志b
’x 移动光标到x标记行的行首
`x 移动光标到x标记的原始光标位置
'' 移动到上一标记行首
`` 移动到上一标记原光标位;
zl zh zs ze 窗口左滚 右滚 左开始 右结束 //可设置 :set sidescroll=32 设置滚动长度(我好象用不了这个命令)
其他
Ctrl+L 刷屏
return 到下一行行首
-、+ 移动光标上下一行,上下一行的行首(好象+号要用小键盘的+号才行);
Ctrl+G 显示当前行信息
H 屏幕起点
M 屏幕中间
L 屏幕尾

组合使用例子   命令模式下
例子:现有文本

aaabbb
cccdddeeefff (光标在第一行)

输入 /aab回车 d /ccc回车 那就会删除掉当前位置aab(包括aab), 到ccc前所有数据并复制数据到缓冲(和剪切差不多)。当然d也可用改成y做复制用途,再用p粘贴。

vim的ex状态 当在: ex模式下可以用tab进行自动补齐命令(用: set nu 显示行数) 并可以利用 | 可以将多个命令组合在同一提示符下

文本搜索,替换,移动,删除,复制
命令 :g/、:s/ 、:m 、:d、:co (或者:t)
:g :g/[文本] 全局搜索文本,光标移动到最后一个搜索文本,并显示所有数据加所在行。
:g!/[文本] 没有[文本]的行
:s :[第n行],[到第m行]s/[要替换的]/[替换的] n-m行之间进行替换,如果没有n,m那么就进行当前行的替换
:%/s/[要替换的]/[替换的]/g 进行全局替换。 %表示每一行, 另外有 . 表示当前行, $ 表示最后一行,另外可用+-号表示该行的上下n行,例如.-2 表示当前行上面第二行
:m :[要移动的数据]m[移动的地方] 例子 :20,30m100 20-30行移动到100行前(最后一行是100行)
例子: :g/^$/d 删除所有空行 d加上删除动作

搜索模式
.(点号) 任一个单字符,汉字用两个点 ..
* 匹配前面字符零个或者多个任意(并不表示任意字符) 例如 /abcdl* 就会查找abcdl或者以abcd开始的,而查找所有是 /.*
^ 表示从行首开始
$ $在表达式末表示以正则表达式要在行末。
转义 .表示找. *表示找* \表示找
[ ] [0~9]表示匹配0~9之间任意一个数字 同理有[A~Z]和[a~z],而[AB3a]表示找有A,B, 3,a其中任意一个字符。
< , > 单词开始或者末尾以空格或者标点符号开始或者结束。 例如 inux> 匹配linux.
r 回车
t 制表符
执行sh命令
:![shell command] 例如 :!ls

添加数据到文件末 >>
例子 :1,10w>>newfile

需要注意的是vim可以把一些命令组合起来应用
:1,3d | s/they/she/ 一到三行删除,并把当前行they替换为she
:.,/while/d 删除当前行到匹配while行所有数据(包括当前行和含有while所在行)
:/aaa/,/bbbb/d aaa到bbbb之间行删除(包括这两行)
:/aaa/,/bbb/m. aaa到bbb行move到当前行

分屏
:[N]sp[lit] [filename] 另开窗口,高度是N行,并打开filename文件。
Ctrl+w [x] 准备进行窗口操作,其中x是按Ctrl+w后,需要选择的功能键(可参见下一行) 例如Ctrl+w 再按t就会到顶端窗口
Ctrl+w [s/w/t/b/c/q/r/i/=] s 再分屏,w下一个窗口,t顶窗口,b底端窗口,c关闭窗口 q退出窗口 r循环窗口 i打开并进入新窗口 =所有窗口同高
:hide 隐藏当前窗口,当不关闭该文件缓冲(也就是说再次用 :e [filename] 打开后依然是先前的文件)
:q 关闭窗口,并释放缓冲。
:qa[!] 关闭所有窗口并强行退出vim;
:on[ly] 只显示当前窗口
:new [filename] 新建文件并打开新窗口。
:res[ize][n] :res[ize][+ -n] 改变窗口大小,或者增加减少行数

用vim编程
:make [arguments] 运行make 然后移动到第一个错误,
:cf[ile] [!] [errorfile]读取错误文件,并移动到第一个错误处,!强迫vim移动到另外的缓冲区,
:cl[ist] [!] 列出含有文件名的错误,有!就列出所有错误,
:cc[!] [n] 如果有n就显示错误n,否则重新显示当前错误,
:cn[ext] 移动到下一个错误。
:cp 移动到上一个错误。

另外一个有用的编程功能是使用ctags(unix命令,给C语言中的函数打标记。这个命令与vi的tags结合使用)
先用ctags命令 :!ctags file.c 创建该c程序tags文件,再在vi中使用 :tag [函数名] ,那么vi就直接调出该c原文件并跳到函数定义处。
例如: :!ctags *.c
:tag aaa 其中bbb.c 中有aaa函数,那么就跳到aaa的定义处
:tn 跳到下一个匹配标志
:tp 上一个标志

设置vim
:set all 显示所有选项。
:set nu[mber] 显示行数。
:set binary 可读二进制文件
:syntax on 语法高亮
:set taglength=4 设置tag长度
记不住可使用tab键补齐命令(也可以显示可以选择的命令)

vim的配置文件 .vimrc
在vim的安装目录下有一个vimrc_example.vim文件,你可以copy到你的工作目录上作为你的原始vim配置文件(文件改名为.vimrc)

vi引证
最后,这里有关vi的认证:vi是完美的
论证:VI在罗马数字中是六,小于六的自然数可以整除6的是1,2,3, 6=1X2X3; 而6有可以表示为6=1+2+3,可见VI是个完美的数字,从而VI也是完美的。

对于vim
罗马数字中VIM可能表示为(1000-(5+1))=994,而刚好等于2×496+2,而496刚好可以被1,2,4,8,16,31,62,124,248等整除,而且1+2+4+8+16+31+62+124+248=496
因此496是个更完美的数字,可见vim比vi更加完美了。

Linux命令大总结的更多相关文章

  1. Windows+linux命令大集合

    net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user: ...

  2. Linux 命令行下搜索工具大盘点,效率提高不止一倍!

    在 Linux 命令行下进行文本关键字的搜索,大家肯定第一时间会想到 grep 命令.grep 命令确实十分强大,但如果需要用到它更加灵活的功能时,可能命令就会显得十分复杂. 于是,为了简化 grep ...

  3. Linux命令行 3大技巧归纳

    在软件开发的世界中,作为web端程序猿打交道最多的操作系统相信就是Linux系统了吧.而对于Linux系统的使用,如果能掌握一些小技巧,在程序开发.调试的过程中,相信做事的效率也会有一些提升.下面就和 ...

  4. 像黑客一样使用 Linux 命令行

    前言 之前在博客园看到一篇介绍 IntelliJ IDEA 配置的文章,它里面用的是 gif 动态图片进行展示,我觉得很不错.所以在我今天以及以后的博文中,我也会尽量使用 gif 动图进行展示.制作 ...

  5. Linux命令随笔

    Linux命令总结 man ==命令帮助; help ==命令的帮助(bash的内置命令); ls ==list,查看目录列表; -ld:查看目录权限; -l:(long)长格式显示属性; -F:给不 ...

  6. 我常用的那些linux命令

    我常用的那些linux命令 用linux也有些年头了,说来也忏愧,说是有些年头了,其实也还是个不长进的主.记得第一次接触linux是boss跟我说的怎么操作,什么编辑模式,按i,a,o进入编辑模式.在 ...

  7. 每天一个linux命令(46):vmstat命令

    vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动进行监控.他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深 ...

  8. 详解Linux命令行下常用svn命令

    1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/do ...

  9. 别出心裁的Linux命令学习法

    别出心裁的Linux命令学习法 操作系统操作系统为你完成所有"硬件相关.应用无关"的工作,以给你方便.效率.安全.操作系统的功能我总结为两点:管家婆和服务生: 管家婆:通过进程.虚 ...

随机推荐

  1. 介绍 Active Directory 域服务 (AD DS) 虚拟化

    TechNet 库 Windows Server Windows Server 2012 R2 和 Windows Server 2012 服务器角色和技术 Active Directory Acti ...

  2. Spider_Man_6 の Scrapy(未完待续)

    一:自我介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所 ...

  3. wordpress 区分多语言站点

    $blog_title = get_bloginfo( 'name' ); $table_name = ''; if ( $blog_title == 'Driver Easy' ) { $table ...

  4. 【数据结构与算法】Fibonacci Sequence

    学计算机的对 Fibonacci 都并不陌生,在课堂上一讲到递归几乎都会提到 Fibonacci 数列.不久前,我对 Fibonacci 产生了一些兴趣,就在这里把自己的想法给记录下来. 递推公式: ...

  5. python 打印9*9乘法表

    # -*- coding: utf8 -*- # Author:wxq 1. for i in range(1,10): for j in range(1,i+1): print "%d*% ...

  6. python基础-集合小结

    Python-基础-集合小结 集合 简介 声明 常用操作 成员关系 新增删除 集合间操作 其他 补充 集合 简介 python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和 ...

  7. 【bzoj3217】ALOEXT 替罪羊树套Trie树

    题目描述 taorunz平时最喜欢的东西就是可移动存储器了……只要看到别人的可移动存储器,他总是用尽一切办法把它里面的东西弄到手. 突然有一天,taorunz来到了一个密室,里面放着一排可移动存储器, ...

  8. [tsinsen_A1278]串珠子

    [tsinsen_A1278]串珠子 试题描述 铭铭有 \(n\) 个十分漂亮的珠子和若干根颜色不同的绳子.现在铭铭想用绳子把所有的珠子连接成一个整体. 现在已知所有珠子互不相同,用整数 \(1\) ...

  9. 秀秀的森林(forest)

    秀秀的森林(forest) 题目要求树上两条不相交的链,且要求权值的和最大 性质: 1.如果某棵树上的最长链端点为x,y,则该树上任意一点z出发的最长链为max(xz,zy) 2如果两个点被连进了树里 ...

  10. PE415

    那个条件其实是个结论吧..除非全部共线就是存在一条线只经过两点.. 那就容斥一发,然后变成个传统数论题,xjb杜教筛就好了.. (最终那个式子不太好看的..)