使用的Linux发行版是Ubuntu 10.10 maverick。(随时更新ing)
ubuntu软件仓库:
main,包含的是自由软件,提供完全支持
restricted,不是完全的自由软件,但也提供支持
universe,不提供安全支持,需依赖社区
multiverse,是非自由软件,不提供支持,不建议在服务器上安装
apt-get install命令下载的deb包在/var/cache/apt/archives下面
更改系统语言,修改/etc/default/locale文件
中文是 LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"
英文是 LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
然后使用
locale-gen zh_CN:UTF-8 命令生成
他自带终端gnome-terminal的编辑风格是emacs风格
Ctrl + a - 返回到当前命令的开始
Ctrl + e - 返回到当前命令的末尾
Ctrl + w - 删除光标左边的第一个条目(变量或者命令)
Ctrl + u - 剪切光标前面的所有内容
Ctrl + y - 剪切光标后面的所有内容
Ctrl + y - 粘贴你用Ctrl +u或者Ctrl + y剪切的内容
Ctrl + p - 滚动显示以前的命令
Ctrl + n - 下一个命令
Ctrl + l - 清屏
Ctrl + r - 启动查找,在history中查找以前的命令
如果习惯以vi的编辑和浏览方式,可以使用
set -o vi :将风格变为vi。set -o vi >> ~/.bashrc可以固定风格
set -o emacs :变风格为emacs
也可以自己定义当前命令为较短的格式,使用
alias xx='XX' :将xx命令用XX代替
eg:alias zhuang='apt-get install'
alias xie='apt-get remove'
-_-!
gksu:启动对话框,可以选择权限
useradd [-dsgfeM] username
:添加username用户
-d 自定义家目录
-s 自定义默认shell
-g 自定义所属群组
-f 指定密码的过期时间
-e 指定帐号过期时间
-M 指定不要自动创建用户的登录的主目录
passwd [-aldf] username:配置username的密码
-a显示密码属性的所有项目
-l锁住密码
-d删除用户密码
-f强制用户在下次登录时候更改密码
chage [-dEIl] [paras] username:
设置username账户
-d 将最近一次密码设置时间设为最近时间
-E Date 设置过期时间
-I 设置失效
-l 显示账户信息
chsh:更改个人shell
chfn:更改个人资讯
diff [-abcHirswy] file1 file2:比较file1和file2的不同
-a把所有文件视为文本并且逐行的比较它们
-b忽略空格字符的变化
-c使用context格式输出
-H提高大文件的处理速度,这些文件有很多分散的小变化
-i忽略大小写变化,大小写字母等同
-r在比较目录时,递归的比较子目录下的文件
-s当两个文件相同,仍然显示信息
-w当比较行时,忽略空格字符
-y使用并列的方式输出比较信息
fdisk命令,操作硬盘的命令,功能强大,谨慎使用
fdisk [options] :改变disk的分区表,linux中一般是/dev下面的sdx和hdx
fdisk -l :显示disk的详细信息
- root@hdp0:~# fdisk -l /dev/sda
- Disk /dev/sda: 21.5 GB, 21474836480 bytes
- 255 heads, 63 sectors/track, 2610 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk identifier: 0x000ea18c
- Device Boot Start End Blocks Id System
- /dev/sda1 * 1 2497 20051968 83 Linux
- /dev/sda2 2497 2611 916481 5 Extended
- /dev/sda5 2497 2611 916480 82 Linux swap
显示内容为一块硬盘sda,大小21.5GB,2个分区(可能有人纳闷了,这明明是3条信息!不能这么看,看硬盘详细信息可以看到2610cylinders,2610个柱面,从1--2497号,这之间就是一个分区,是主分区;再从2497--2611结束,整个盘分完了,第二个区就是扩展分区,而这扩展分区的功能就是swap)
fdisk /dev/sda :进入了fdisk命令的第二状态,也就是内部,进行具体的操作
- root@hdp0:~# fdisk /dev/sda
- WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').
- Command (m for help): m
- Command action
- a toggle a bootable flag //添加启动标志,boot分区有时需要
- b edit bsd disklabel
- c toggle the dos compatibility flag
- d delete a partition
- l list known partition types
- m print this menu
- n add a new partition
- o create a new empty DOS partition table
- p print the partition table
- q quit without saving changes
- s create a new empty Sun disklabel
- t change a partition's system id
- u change display/entry units
- v verify the partition table
- w write table to disk and exit
- x extra functionality (experts only)
其实看上面的提示都说的很清楚了,常用的功能就是红色标识的
n 添加新分区,然后选择是主分区还是扩展分区,主分区只能有4个,并且只能命名为sda1到sda4,5以后留给扩展分区。接下来是选择起始柱面号,第一个分区肯定是从1开始的,下一步是结束点选择,可以用柱面号,也可以使用容量大小,但要用+号开头,例如+500M,最后回车就分好一个区了。
t 指定分区格式,然后选择分区号,接着输入L显示所有支持的格式,然后需要的即可
d 删除分区,也很容易使用,先选分区号,然后删除,记着经常用p查看当前分区情况
q 不存储退出。其实在fdisk下面可以随便倒腾,只要你玩够以后按q退出就行,千万别按w啊。
w 执行生效且退出。慎用!
分完区和类型,然后使用mkfs命令,将分区格式化并赋予文件系统格式:
mkfs.ext3 /dev/sda1
sfdisk -d /dev/sda | sfdisk /dev/sdb :该命令是将sda的分区表信息复制给sdb
df [-ahHkitxT]
-a显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统
-h 更易读的方式显示
-H 同h,不过用1000进行容量转换
-i显示i节点信息,而不是磁盘块
-l 只显示本机文件系统,不包括nfs
-t filesystem 显示各指定类型的文件系统的磁盘空间使用情况
-T 显示文件系统类型
-a显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统
-h 更易读的方式显示
-H 同h,不过用1000进行容量转换
-i显示i节点信息,而不是磁盘块
-l 只显示本机文件系统,不包括nfs
-t filesystem 显示各指定类型的文件系统的磁盘空间使用情况
-T 显示文件系统类型
du [-achkms] directory
-a列出所有的文件和目录
-c最后求总和
-h以易读的KMG方式显示
-k以Kb输出
-m以Mb输出
-s只列出总和
eg:du -sh /home
cpio [-oitcvBdu] [<>] /dev/xxx
o output
i input
t 查看cpio建立的文件或设备内容
c 使用新格式
v 屏幕显示过程
B 增加blocks,加快大文件速度
d 自动建立目录
u 用较新文件覆盖旧文件
eg: find / -print |
cpio -covB > /dev/st0
cpio -icduv < /dev/st0
管道符命令(pipeline)
cut 主要的用途在于将同一行里的资料进行分解
cut [-dc]
-d '分隔符' -f 区域号 eg:echo $PATH | cut -d ':' -f 3 :输出path中被:分隔的第3区域
-c 字符区间 :指的是一行中的第几个字符 eg:export | cut -c 12-
-c 字符区间 :指的是一行中的第几个字符 eg:export | cut -c 12-
grep [-cinv] [--color=auto] '需求' filename
-c 计算需求找到的次数
-i 忽略大小写
-n 输出行号
-v 反向选择需求
eg:last | grep -v 'root'
-c 计算需求找到的次数
-i 忽略大小写
-n 输出行号
-v 反向选择需求
eg:last | grep -v 'root'
sort [-fbnrutk] file
-f 忽略大小写
-b 忽略前面空格
-n 以数字而不是字符排序
-r 逆序
-u 剔除重复项
-t '分隔符',默认是tab
-k 区域号
eg:cat /etc/passwd | sort -t ':' -k 3
-f 忽略大小写
-b 忽略前面空格
-n 以数字而不是字符排序
-r 逆序
-u 剔除重复项
-t '分隔符',默认是tab
-k 区域号
eg:cat /etc/passwd | sort -t ':' -k 3
uniq [-ic]
剔除重复项
-i 忽略大小写
-c 统计行数
eg:last | cut -d ' ' -f 1 | sort | uniq -c
-i 忽略大小写
-c 统计行数
eg:last | cut -d ' ' -f 1 | sort | uniq -c
wc [-lwm] 统计行,字,字符信息
-l 行数
-w 字数
-m 字符数
eg:cat /etc/man.config | wc
-l 行数
-w 字数
-m 字符数
eg:cat /etc/man.config | wc
tee [-a] file 复制stdout标准输出到file中
-a 以追加方式输入file中
eg:ls -l / | tee -a ~/homefile | less
-a 以追加方式输入file中
eg:ls -l / | tee -a ~/homefile | less
tr [-ds] strings
-d 删除strings
-s 取代重复字符
eg: cat trsplit | tr '[a-z]''[A-Z]'
cat /etc/passwd | tr -d :
split [-abl] number file prefix
-a 更改自动命令的字母位数,模式是两位:aa
-b 以文件size划分
-l 以行划分
eg: split -l 5 /etc/passwd test 以5行为单位划分passwd,并分别命名为testaa,testab,...
split -b 5k book 以2k为单位划分book,并命令为xaa,xab,...
split -l 4 -a 3 book sect 以4行为单位划分book,命令为sectaaa,sectaab,...
tar [-cxt|zjvfpPN] files
-c:create,创建
-x:解开压缩文件
-t:查看tar中文件
-z:是否具有gzip属性
-j:是否具有bz2属性
-v:压缩过程中显示文件
-f使用档案名,要直接接档案名
-p使用源文件属性
-P使用绝对路径压缩
-N比后面接的日期(yyyy/mm/dd)要新的文件才会被打包
--exclude FILE不要将FILE打包
-c:create,创建
-x:解开压缩文件
-t:查看tar中文件
-z:是否具有gzip属性
-j:是否具有bz2属性
-v:压缩过程中显示文件
-f使用档案名,要直接接档案名
-p使用源文件属性
-P使用绝对路径压缩
-N比后面接的日期(yyyy/mm/dd)要新的文件才会被打包
--exclude FILE不要将FILE打包
gzip [options] files 操作.gz文件,不是tar.gz
-c 标准输出,并保留原文件
-d 解压缩
chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以 `/`,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 `/` 位置。
两种运行方式
[1] chroot NEWROOT [COMMAND...] eg:chroot . /bin/ash
[2] chroot OPTION eg:chroot . (默认执行/bin/sh)
[1] chroot NEWROOT [COMMAND...] eg:chroot . /bin/ash
[2] chroot OPTION eg:chroot . (默认执行/bin/sh)
记录一下RPM包的操作命令,毕竟用处也还很广
rpm -ivh mypackage.rpm 安装mypackage.rpm包
rpm [-ievhVUq]
i 安装
e 删除
v 详细信息
h 过程
V 验证
U 升级
q 查询
qa 查询已安装
在shell中进行操作,有时会出现一个问题:当运行一个长时间的程序时,shell会被占用,不能进行操作,这时要么等着,要么再开一个shell或者tty,但这不方便。所以需要将当前进程放在后台运行
1.使用后台运行符
&
eg: gedit &
缺点:这样运行的进程的父进程仍然是当前shell,shell退,全退
2.忽略来自shell的终止信号
nohup
eg: nohup gedit &
3.将当前shell的进程变为系统根进程,退出时就不会发出hup信号 eg:
setsid gedit
wget [options][url][localdir]
-c 断点续传
-b 在后台运行
-k 将绝对连接转换为相对连接
-r 递归下载
mount [-ahl]
-a按fstab文件内容装载设备
-h列出mount参数
-l列出当前已装载的设备
mount -t type /dev/xxx mountpoint
将/dev/xxx按type格式装载在mountpoint
mount -o [options]
options包含控制命令,如rw,suid,exec,auto,defaults
ln [-s] targetfile linkfile
-s:软链接,相当于快捷方式,数据还在其指向的文件中,但inode号是新号
硬链接,只在目录中添加这个文件的inode号以及一个新名称,数据不创建,删除最后一个硬链接才会删除数据。不能对目录硬链接,不能跨越分区
硬链接基于inode,软链接基于路径
其他命令
free:显示系统内存,缓冲区,交换分区的使用情况
swapon , swapoff:打开、关闭swap分区
vmstat:显示系统硬件的使用情况
blkid:显示硬盘分区uuid号
bc:linux计算器
cal [month] [year]:显示日历
nl :等于cat -n
tac file:逆序显示文件,和cat相反
sync:立即将内存中数据写入硬盘
source filename [args]:不注销直接读入变量文件filename
stat:查看文件详细inode信息