一、
常用命令
LINUX
常用操作命令和命令行编辑快捷键
终端快捷键:
Ctrl + a/Home
切换到命令行开始
Ctrl + e/End
切换到命令行末尾
Ctrl + l
清除屏幕内容,效果等同于
clear
Ctrl + u
清除剪切光标之前的内容
Ctrl + k
剪切清除光标之后的内容
Ctrl + y
粘贴刚才所删除的字符
Ctrl + r
在历史命令中查找 (这个非常好用,输入关键字就调出以前的命令了)
Ctrl + c
终止命令
ctrl + o
重复执行命令
Ctrl + d
退出
shell
,
logout
Ctrl + z
转入后台运行
,
但在当前用户退出后就会终止
Ctrl + t
颠倒光标所在处及其之前的字符位置,并将光标移动到下一个字符
Alt + t
交换当前与以前单词的位置
Alt + d
剪切光标之后的词
Ctrl+w
剪切光标所在处之前的一个词(以空格、标点等为分隔符)
Ctrl+
(
x u
) 按住
Ctrl
的同时再先后按
x
和
u
,撤销刚才的操作
Ctrl+s
锁住终端
Ctrl+q
解锁终端
!!
重复执行最后一条命令
history
显示你所有执行过的编号
+
历史命令。这个可以配合
!
编辑来执行某某命令
!$
显示系统最近的一条参数
最后这个比较有用,比如我先用
cat /etc/sysconfig/network-scripts/ifconfig-eth0
,然后我想用
vim
编辑。
一般的做法是先用↑ 显示最后一条命令,然后用
Home
移动到命令最前,删除
cat
,然后再输入
vim
命
令。其实完全可以用
vim !$
来代替。
gnome
快捷键
Alt + F1
类似
Windows
下的
Win
键,在
GNOME
中打开
"
应用程序
"
菜单
(Applications)
Alt + F2
类似
Windows
下的
Win + R
组合键,在
GNOME
中运行应用程序
Ctrl + Alt + D
类似
Windows
下的
Win + D
组合键,显示桌面
Ctrl + Alt + L
锁定桌面并启动屏幕保护程序
Alt + Tab
同
Windows
下的
Alt + Tab
组合键,在不同程序窗口间切换
PrintScreen
全屏抓图
Alt + PrintScreen
当前窗口抓图
Ctrl + Alt +
→
/
← 在不同工作台间切换
Ctrl + Alt + Shift +
→
/
← 移动当前窗口到不同工作台
Ctrl+Alt+Fn
终端
N
或模拟终端
N(n
和
N
为数字
1
-
6)
Ctrl+Alt+F7
返回桌面
窗口操作快捷键
Alt + F4
关闭窗口
Alt + F5
取消最大化窗口
(
恢复窗口原来的大小
)
Alt + F7
移动窗口
(
注
:
在窗口最大化的状态下无效
)
Alt + F8
改变窗口大小
(
注
:
在窗口最大化的状态下无效
)
Alt + F9
最小化窗口
Alt + F10
最大化窗口
Alt +
空格键 打开窗口的控制菜单
(
点击窗口左上角图标出现的菜单)
文件浏览器
Ctrl+N
新建窗口
Ctrl + Shift + W
关闭所有文件浏览器
Ctrl + 1/2
改变文件夹视图查看方式,图标视图
/
列表视图
Alt +
→
/
← 后退
/
前进
Alt +
↑
/
↓ 移动到父文件夹
/
选择的文件夹
Alt + Home
直接移动到主文件夹
F9
开关显示隐藏
Nautilus
侧边栏
Ctrl+H
显示隐藏文件(切换键)
Shift+Ctrl+N
新建文件夹, 很有用
Alt + Enter
查看选择文件
/
文件夹的属性,代替单击右键选择属性
Ctrl+Page Up
上一个标签
Ctrl+Page Down
下一个标签
Alt+N
切换到第
N
个标签(
N
为数字)
关机和重启命令
Shutdown
Reboot
Halt
poweroff
grep
和管道符
昨天的时候
leader
给我出了道问题:
找出文件夹下包含
“aaa”
同时不包含
“bbb”
的文件,然后把他们重新生成一下。要求只能用一行命令。
我对
Linux
是个白痴,工作了之后才开始接触的,会用的命令只有那几个常用的。这个问题对我来说就有
点难度,我只是大概知道查找文件用
grep
,其他的就不知道了。不过没关系,用
Google
,查找到
grep
的完整用法:
1
、
grep -l ‘boss’ *
显示所有包含
boss
的文件名。
2
、
grep -n ‘boss’ file
在匹配行之前加行号。
3
、
grep -i ‘boss’ file
显示匹配行,
boss
不区分大小写。
4
、
grep -v ‘boss’ file
显示所有不匹配行。
5
、
grep -q ‘boss’ file
找到匹配行,但不显示,但可以检查
grep
的退出状态。(
0
为匹配成功)
6
、
grep -c ‘boss’ file
只显示匹配行数(包括
0
)。
7
、
grep “$boss” file
扩展变量
boss
的值再执行命令。
8
、
ps -ef|grep “^*user1″
搜索
user1
的命令,即使它前面有零个或多个空格。
9
、
ps -e|grep -E ‘grant_server|commsvr|tcpsvr|dainfo’
查找多个字符串的匹配(
grep -E
相当于
egrep
)
(来源:
蓝森林
)
了解了
grep
的参数之后,问题就解决了一半了,因为可以搜索出符合条件的文件了。不过光有
grep
还是
不行,因为要把搜索出来的文件名作为参数传给
generate
命令。
OK
,接下来该管道符出场了。
即使是像我这样对
Linux
只是有一点了解的人也经常用到管道符,比如
“|”
,示例:
ls -a | more
。但是对
于管道符的具体意义和它做了什么我就不知道了,没关系,
Google
一下,找到一些资料:
利用
Linux
所提供的管道符
“|”
将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。
连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命
令的输入,依此类推。
所以查找的时候可以这样写:
grep -rl “aaa” * | grep -v “bbb”
这样右边的命令就可以从前面的结果中筛选了。然后还有
generate
命令,因为生成文件的命令格式是这
样的:
generate
文件名
不过如果直接使用
generate grep -rl “aaa” * | grep -v “bbb”
的话会出错,因为命令会从左向右执行,这条
命令就会把
grep
作为一个文件名来看待。怎么办呢?这个时候就要使用
· (
键盘上数字键
1
旁边的那个符
号,和
“~”
在一个按键上
)
来做命令替换了,用
·
把后面的
grep
命令包起来就好了,这样:
generate ·grep -rl “aaa” * | grep -v “bbb”·
然后就搞定了。
工作一段时间之后,越来越喜欢
Linux
的哲学了,它有很多命令,看起来功能都不是那么强劲,但是如果
你开动脑筋把这些命令组合起来的话,就能实现 很多让你意想不到的功能,有时候你忍不住惊呼:实在
是太
coooool
了! 这对于像我这种被
Windows
的傻瓜式操作惯坏了的人来说,是个福音,以后要多多开
动生锈了的大脑。如果单纯使用电脑的话,还是
Windows
好用,但 是对于程序员,最好还是多玩玩
Linux
。
BTW
,现在也越来越喜欢使用
VIM
了,虽然刚开始用的时候就觉得它是个记事本
~
囧
~~
以前总听说
“
真正
的牛人编码都是用记事本编写的
”
,当时就觉得这些人实在太厉害了,代码提示和自动补全都不用,现在
想想,可能是外行看到他们使用灵活
+
强 大的
VIM
或者
EMACS
了吧。
^_^
我的补充
:
查找包含
logField
又包含
open
的文件:
用
grep "logFileId" *.tbc|grep "open"
二、
磁盘管理
文件系统配置文件
/etc/filesystems
:系统指定的测试挂载文件系统类型
/proc/filesystems
:
Linux
系统已经加载的文件系统类型
/lib/modules/2.6.18-274.el5/kernel/fs/
文件系统类型的驱动所在目录
/etc/fstab
/etc/mtab
linux
文件类型的颜色
linux
文件颜色的含义:蓝色代表目录 绿色代表可执行文件 红色表示压缩文件 浅蓝色表示链接文件 灰
色表示其他文件 红色闪烁表示链接的文件有问题了 黄色表示设备文件
蓝色文件
----------
目录
白色文件
----------
一般性文件,如文本文件,配置文件,源码文件等
浅蓝色文件
----------
链接文件,主要是使用
ln
命令建立的文件
绿色文件
----------
可执行文件,可执行的程序
红色文件
-----------
压缩文件或者包文件
Linux
下用字符表示的文件类型
-
:普通文件
d
:目录文件
l
:链接文件
b
:块设备文件
c
:字符设备文件
p
:管道文件
文件系统操作命令
df
:列出文件系统的整体磁盘使用情况
[root@centos57 ~]# df -h
文件系统
容量
已用 可用 已用
%
挂载点
/dev/mapper/VolGroup00-LogVol00
16G 4.2G 11G 28% /
/dev/sda1 99M 13M 81M 14% /boot
tmpfs 1005M 0 1005M 0% /dev/shm
[root@centos57 ~]# df -i
文件系统
Inode (I)
已用
(I)
可用
(I)
已用
%
挂载点
/dev/mapper/VolGroup00-LogVol00
4186112 154441 4031671 4% /
/dev/sda1 26104 36 26068 1% /boot
tmpfs 257210 1 257209 1% /dev/shm
.host:/ 0 0 0 - /mnt/hgfs
du
:列出目录所占空间
du -sh
显示当前目录大小
du –sh /
显示
/
目录下的所有目录大小
dumpe2fs
:显示当前的磁盘状态
ln
:连接文件(快捷方式)
ln –sf
源文件 目标文件
不加任何参数就进行连接,就是
hard link
,加上
-s
就是
Symbolic link
,
hard link
不支持目录和跨文件系统。
Fdisk
Fdisk
不支持大于
2T
的磁盘
Fdisk –l
显示系统中的所有分区内容
[root@centos57 ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
总扇区数,可以和下面的最后扇区数比较,看剩余
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2610 20860402+ 8e Linux LVM
[root@centos57 ~]# fdisk /dev/sda2
Parted
:
2T
以上磁盘分区工具
支持大于
2T
的磁盘,
2T
以下的最好还是用
Fdisk
来分区。
[root@centos57 aixi]# parted /dev/hda print
Model: VMware Virtual IDE Hard Drive (ide)
Disk /dev/hda: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system
标志
1 32.3kB 101MB 101MB
主分区
ext3
2
101MB 357MB 256MB
主分区
linux-swap
# parted /dev/hda rm
2
删除第
2
个分区
# parted /dev/hda mkpart primary ext3 120MB 200MB
创建分区,
primary
代表主分区,还可以是
extended
扩展分区,
logical
逻辑分区
;ext3
代表分区类型,
120MB
是开始位置,最好是接上一分区的结束位
置,
200M
是结束位置
partprobe :
更新分区表
/
磁盘
用于重读分区表,当出现删除文件后
,
出现仍然占用空间。可以
partprobe
在不重启的情况下重读分区
# partprobe
这个命令执行完毕之后不会输出任何返回信息,你可以使用
mke2fs
命令在新的分区上创建文件系统。
Mkfs:
磁盘格式化
Mkfs –t
文件系统格式 设备文件名(盘符)
[root@centos57 ~]# mkfs -t ext3 /dev/hda1
e2label
:设置磁盘卷标
e2label
设备名称 新
label
名称,可以用
dumpe2fs
查看卷标
[root@centos57 ~]# e2label /dev/hda1 aixi
Mount:
挂载磁盘
命令格式:
mount [-t vfstype] [-o options] device dir
mount –o remount,rw,auto /
重新挂载
mount –n –o remount,rw /
重新挂载根目录,设置为可读写
其中:
1.-t vfstype
指定文件系统的类型,通常不必指定。
mount
会自动选择正确的类型。常用类型有:
光盘或光盘镜像:
iso9660
DOS fat16
文件系统:
msdos
Windows 9x fat32
文件系统:
vfat
Windows NT ntfs
文件系统:
ntfs
Mount Windows
文件网络共享:
smbfs
UNIX(LINUX)
文件网络共享:
nfs
2.-o options
主要用来描述设备或档案的挂接方式。常用的参数有:
loop
:用来把一个文件当成硬盘分区挂接上系统
ro
:采用只读方式挂接设备
rw
:采用读写方式挂接设备
iocharset
:指定访问文件系统所用字符集
3.device
要挂接
(mount)
的设备。
4.dir
设备在系统上的挂接点
(mount point)
。
挂接光盘镜像文件
1
、从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。
#cp /dev/cdrom /home/sunky/mydisk.iso
或
#dd if=/dev/cdrom of=/home/sunky/mydisk.iso
注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件
/home/sunky/mydisk.iso
2
、将文件和目录制作成光盘镜像文件,执行下面的命令。
#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir
注:这条命令将
/home/sunky/mydir
目录下所有的目录和文件制作成光盘镜像文件
/home/sunky/mydisk.iso
,光盘卷标为:
mydisk
3
、光盘镜像文件的挂接
(mount)
#mkdir /mnt/vcdrom
注:建立一个目录用来作挂接点
(mount point)
#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
注:使用
/mnt/vcdrom
就可以访问盘镜像文件
mydisk.iso
里的所有文件了