linux 系统笔记
shell 学习:http://www.jb51.net/article/25729.htm
一、常用命令
1.Linux 系统shell分类:Bourne shell(sh),C shell(csh),Korn shell(ksh)
注释:sh是unix最初使用的shell,在编程方面非常出色,但在处理用户之间交换做的不如其他shell,linux系统缺省使用的shell是
Bourne Again shell(bash),对普通用户用用$做提示符,对超级用户root用#作提示符csh是一种更适合于编程的shell,他的
语法和C语言相似,ksh结合了sh和csh的优点
2.ls 该命令用来列出当前目录下的所有文件和子目录,相当于windows的dir命令,常用的参数有三个:-a,-l,-f
-a 显示所有文件,包括隐藏文件
-l 查看更详尽的文件资料
-f 在列出的文件(目录)后加个符号,例如:可执行文件加*,目录则加‘/’
3.cp 该命令式用来复制文件,相当于dos下的copy命令,
使用格式: cp -r源文件(source) 目的文件(target)
文件复制并可以覆盖原来的文件
1) 将new目录下的所有文件拷贝到test下,并覆盖test下的文件(这个总会提示是否要覆盖文件)
cp -rf new/* test
2) 功能同上,但不会提示覆盖
yes | cp -rf new/* test
4.rm 该命令用来删除文件,常用的参数有-i,-r,-f
-i 在删除文件时要先询问我们是否要删除,输入y则删除
-r 和rmdir命令相同,不过比rmdir功能更强大,-r是连同这个目录下的子目录一起删除
-f 不经确认强制删除
5.mv 可以用来移动文件和重名文件,如: mv /temp/test.txt /root mv test.txt t1.txt
6.ps 进程及任务管理,参数 -e 显示所有进程 -f 全格式 -l 长格式 -x后台进程
ps -aux|grep www.project.com
7.pwd 表示当前路径
8.whoami 表示当前用户
9.设备不能直接用cd 命令进入,应为设备不是一个目录,如cd cdrom将报错,如果要访问必须将cdrom挂载到一个目录下,例如:
mount /dev/cdrom /mnt/cdrom 表示将cdrom挂载到mnt目录下的cdrom文件夹下,然后我们就可以访问挂载的那个文件访问cdrom
里的内容了。如果不想挂载了用命令 unmont /dev/cdrom 就把/dev/cdrom 卸载了。
10.装linux操作系统至少两个分区,/ 根分区 swap 交换分区
11.linux的启动过程
a.load bios
b.read MBR's config to find out the OS(找到要启动的操作系统)
c.load the kernel of the OS(操作系统)
d.init process starts
e.execute /etc/rc.d/rc.sysinit
f.start other modules(etc/modules.conf)
g.execute the run level scripts
h.execute /etc/rc.d/rc.local
i.execute /bin/login
j.shell started
12.linux 的run level 启动级别
命令:init n
0:系统停机状态
1: 但用户工作状态
2:多用户工作状态(没有NFS(网络文件系统))
3: 多用户工作状态(有NFS)
4:系统未使用,预留的
5:图形界面
6:系统正常关闭并重启
13.logout 注销
14.显示命令参数的用法 用man 命令;或 命令 --help
15.touch 创建文件
16.more 查看文件内容,并分页
16.cat 正序查看文件内容
17.tac 逆序查看文件内容
18.head 查看文件前几条记录,可以带参数
19.tail 查看文件末尾几条记录,可以带参数
tail -f -n100 filename 显示末尾100行数据
20.find 查找文件 例如:find / -name *local 在根目录下查找文件名后缀是local的文件
find /test -name file1.txt 查找/test目录下名字为file1.txt 的文件
21.whereis 命令 表示命令从哪里来的(文件的地址)
22.echo 输出命令 例如:echo $path 表示输出path环境变量的值,变量用$表示
23.grep 查找字符 文件名 表示在文件中查找包含查找字符在文件中的行并显示
24.fdisk -l 显示磁盘的信息
25.ctrl+c 执行停止
26.| 管道 例如:ls -l | grep "^d" 表示显示当前目录下的所有文件
27.wall 内容 表示广播消息,每个登陆的用户都会受到同样的消息
28.>输出重定向 例如:ls > cmd.txt 把内容输出到cmd.txt文件中
29.<输入重定向 例如:wall < aa.txt 把文件中的内容输入到控制台中
30.reboot 重启
31.startx 进入图形界面
32.chkconfig 检查配置文件,参数--list 显示所有的配置列表,--add 增加,--del 删除,--level 启动级别,
例如:chkconfig --level 5 vsftpd on在图形界面下启动vsftpd
chkconfig vsftpd on 在所有级别上都启动vsftpd
33.wget 命令行下连接网络资源
34.kill 进程号 杀死进程。参数 -9 表示强制关闭
35.以.开头的都是隐藏文件
36.shutdown -h now 立即关机
shutdown -r now 立即重启
logout 注销
37.修改系统启动级别要修改文件/etc/inittab 文件
1)如果你现在系统默认启动进入图形用户界面,则修改这个文件就可以实现默认启动进入命令行模式
vi /etc/inittab
最后一行中# Run xdm in runlevel 5 下面
x:5:respawn 这里面的5改成3 就可以了
38.按两下tab键会自动补全
39.df 目录名 表示目录属于哪个分区
40.chsh -s shell的目录 表示更改shell 例如 :chsh -s /bin/csh 更改shell后要注销用户,不然不起作用
41.history 显示最近使用的命令
42.网络设置
第一种方法:
a.root 用户登录过后,输入setup命令
b.在进入的页面text mode setup utiliy中选择network configration 就可以设置ip,子网掩码,网关,dns
c.输入/etc/rc.d/init.d/network restart 就能生效了
第二种方法:
修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,再输入/etc/rc.d/init.d/network restart 就能生效了
43.任务调度crontab -e
终止任务调度 crontab -r
列出调度任务 crontab -l
44.cal 年 查看日历
45.alias 别名名字=‘命令’ 给命令起别名
46.查看文件大小
du -sh filename
47.vi 分页
ctrl+u向前翻滚半屛,ctrl+d向后翻滚半屛
ctrl+b向前翻滚全屛,ctrl+f向后翻滚全屏
48.vi打开文件时光标定位
vi +n filename //打开文件时光标定位在第n行
vi + filename //打开文件时光标定位在最后一行
49.ddp vi的上下两行交换
50.修改linux启动级别
修改的/etc/inittab 文件 initdefault
二、硬盘分区
1.一个硬盘最多只能分四个分区,也就是说主分区加扩展分区最多只能有四个,因为硬盘的分区表上只能记录四条记录,扩展分区又可以分多个逻辑分区,逻辑分区没有限制个数。
2.dev 设备,所有的分区都存在这个目录下,所有的linux分区的命名格式是:/dev/xxyN
xx表示设备的类型,通常是hd(IDE硬盘)或sd(SCSI硬盘)
y表示分区所在的设备(哪一块硬盘,字母从a开始),例如:/dev/hda(第一个IDE硬盘)或
/dev/sda(第一个SCSI硬盘)
N是数字表示分区,前四个分区(主分区和扩展分区)是从数字1到4排列,逻辑分区从5开始
例如:/dev/hda3表示第一块IDE硬盘上的第三个主分区或扩展分区,/dev/sdb6表示第二块
SCIS硬盘的第二个逻辑分区
三、编辑器命令 vi
1.vi有两种模式,一种是命令模式,一种是编辑模式,模式切换用esc
2.输入a 表示添加(编辑)
3.在命令模式下输入:表示要执行什么命令,后跟w表示要存盘,q是退出,q!是不存盘退出,wq存盘退出
4.在命令模式下敲dd 删一行,dw删一个单词,o往下插入一行,O往上插入一行
5.替换字符串:在命令模式下输入s/test/test1 表示把第一个test替换为test1;
s/test/test1/g 表示把当前行所有test替换为test1;
n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
6.显示行号:set nu
7.ctrl+v 可视区域模式
8.1,3d 删除1到3行的数据
9.3dd 删除当前行开始的三行数据
10 拷贝, 删除与粘贴
在 vi 中 y 表示拷贝, d 表示删除, p 表示粘贴 其中拷贝与删除是与光标移动命令
结合的, 看几个例子就能够明白了
yw 表示拷贝从当前光标到光标所在单词结尾的内容
dw 表示删除从当前光标到光标所在单词结尾的内容
y0 表示拷贝从当前光标到光标所在行首的内容
d0 表示删除从当前光标到光标所在行首的内容
y$ 表示拷贝从当前光标到光标所在行尾的内容
d$ 表示删除从当前光标到光标所在行尾的内容
yfa 表示拷贝从当前光标到光标后面的第一个a字符之间的内容
dfa 表示删除从当前光标到光标后面的第一个a字符之间的内容
特殊地:
yy 表示拷贝光标所在行
dd 表示删除光标所在行
D 表示删除从当前光标到光标所在行尾的内容
关于拷贝, 删除和粘贴的复杂用法与寄存器有关, 可以自行查询
11 撤销操作
u撤销一次
12 快速移动光标
在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定位和编辑 因此能更快一点移动光标是很有用的
w(e) 移动光标到下一个单词
b 移动光标到上一个单词
0 移动光标到本行最开头
^ 移动光标到本行最开头的字符处
$ 移动光标到本行结尾处
H 移动光标到屏幕的首行
M 移动光标到屏幕的中间一行
L 移动光标到屏幕的尾行
gg 移动光标到文档首行
G 移动光标到文档尾行
c-f (即 ctrl 键与 f 键一同按下) 本命令即 page down
c-b (即 ctrl 键与 b 键一同按下, 后同) 本命令即 page up
'' 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查
找到某个单词后, 再输入此命令则回到上次停留的位置
' 此命令相当好使, 它移动光标到上一次的修改行
` 此命令相当强大, 它移动光标到上一次的修改点