关机重启
poweroff
shutdown–h now
reboot
比较文件
diff -Nur [目录] [目录] > [输出文件]
diff [文件] [文件] > [输出文件]
meld [文件]/[目录] [文件]/[目录]
md5sum 得到两个结果 然后diff这两个结果
解压缩
最常用的压缩包是tar,gz, bz2.
zip和rar主要是从windows上来的.
把多个文件打包成一个文件, 一般尺寸并没有变化, 这叫打包.
把一个文件的大小进行缩减, 这叫压缩.
压缩有两种,一种叫有损压缩, 另一种是无损压缩. 标准是解开压缩之后是不是与被压缩之前是一模一样的, 一模一样的就叫无损压缩.
mp3,jpg, rm这几种格式属于有损压缩, 因为注重的是压缩率.
无损压缩主要是面对二进制文件, 文档等数据, 不允许数据有不一致的情况发生, 一般会牺牲压缩率.
Linux中文件是没有后缀名概念的, 点只是一个分隔符. 不像Windows中对后缀名很依赖.
打包命令:tar c v f x z j
c:create 创建压缩包
v:variable 可以查看详细的打包信息.
f: file 生成文件
x:extract 解压
z: gzip 掉gzip或gunzip之后再进行操作.
gz和bz2都是压缩命令, bz2的压缩率比较高.
7z命令是功能比较强大的, 支持上面的所有压缩格式.
.Z命令是压缩和解压缩时,常用的命令. (注意, Z大写).
先用tar工具把多个文件打包成一个文件,尺寸不会发生变化, 然后再用gz压缩, 生成.tar.gz文件.
或者先用tar再用bz2来压缩.
尝试解释以下的命令序列:
du –sh #查看当前目录占用空间的大小
tar cvf dest.tar * #将当前目录下的所有文件打包, 生成文件, 同时打印出详细的信息
ls –l dest.tar –h
gzipdest.tar #注意,运行完gzip命令之后dest.tar就被删除了,只剩下dest.tar.gz, 已经压缩过了.
lsdest.tar.gz –lh
gunzipdest.tar.gz #解压文件. 注意,执行该命令之后, dest.tar.gz就被dest.tar替换了.
ls –lhdest.tar
bzip2dest.tar #使用bzip2命令再次压缩.
ls –ldest.tar.bz2 –h
tar xvf dest.tar.bz2 #解压 注意j开关可以免除你调用bz2 -d来解压文件命令. z开关可以免除你调用gzip -d了.
zipdest2.zip * 打包压缩当前目录下的所有文件. 注意, zip相当于即打包又压缩两个命令.
unzipdest2.zip
#[ 启动管理 ]
启动分析
Windows的启动, 硬盘0到1扇区会有一个MBR. BIOS会读取MBR, MBR中存有Windows启动的引导程序.
Linux 系统中有一个Swap分区, 该分区是用来模拟内存的. Linux系统会安装在一个另外的分区上. Linux会修改MBR, 修改后的MBR在启动之后会先找到安装了Linux分区的grub. BIOS会调用安装了Linux的分区里的grub启动管理器, 来启动Linux. 安装了Linux的分区的首部存放grub启动器. 如果你选择启动Windows, 那么grub会去读取MBR中的Window启动程序, 从而完成Windows的启动.
这就是我为什么要先装Windows,后装Linux的原因.
修改启动图形界面为文本界面,修该/etc/inittab文件将id:5:initdefault:5改成3,reboot就可以
grub管理器
先进入grub,使用命令sudogrub
root(hd0,2)该命令指定使用第三个分区来启动. 可以使用tab键补全命令, 获得可能的值.
setup(hd0)设置MBR.
在Windows中, 可以使用fdisk/mbr来修复mbr扇区. 修复之后, 应该就可以启动了.
cat/boot/grub/menu.lst 命令, 为了显示方便, 可以使用less /boot/grub/menu.lst命令来查看.
结果中#代表注释的意思.
default0
timeout3 代表等待的时间是三秒, 然后采用default的值来启动.
initrd 代表init ram disk, 内存磁盘, 它的文件是/boot/initrd.img-2.6.28-11-generic
recoverymode就是把Linux启动到单人单任务的模式.
#[ 网络管理 ]
查看网络信息
ifconfig 查看网络信息(/sbin/ifconfig)
ifconfig[网络接口] 查看指定网络接口信息
ifconfig-a 查看系统中所有网络接口的信息
查看网关地址和路由信息
route 查看主机路由信息(/sbin/route)
route |grep default 显示默认网关地址
ping 目的主机地址 测试与其他主机的网络连接
Ctrl + C 结束ping命令执行
ping -c[测试数据包数量] [目的主机地址] 发送指定数量的数据包进行网测
traceroute[目的主机地址] 测试与其他主机的网络连接路径
查看主机名称信息
hostname 查看当前主机的主机名称
hostname[soul.com] 更改主机名(重启后消失)
vi/etc/sysconfig/network 更改主机名(重起后生效)
~# grepHOSTNAME /etc/sysconfig/network
HOSTNAME=soul.com
使用DNS服务器查询域名
nslookup 域名查询
exit 退出交换环境
网络设置
dhclient 从DHCP服务器中申请新的网络配置应用于当前Linux主机
ifconfig[网络接口名称][ip地址] netmask [子网掩码] 配置IP地址
路由配置
routeadd default gw[默认网关地址] 添加默认网关路由
routedel default gw[默认网关地址] 删除默认网关路由
route add default gw x.x.x.x dev ethx
netconfig --device=ethx --ip=x.x.x.x --netmask=x.x.x.x --gateway=x.x.x.x
使用工具进行网络配置
netconfig 窗口配置界面进行网络配置
网络服务启动脚本
/etc/init.d/networkrestart 重新设置当前系统的网络属性(否则新的配置将在系统下次启动时生效)
/etc/init.d/networkstop 停止网络服务
cat/etc/sysconfig/network-scripts/ifcfg-eth0 查看eth0接口的配置
ifdown [网络接口名称] 停止网络接口
ifup[网络接口名称] 启动网络接口
ifdowneth0 ; ifup eth0关闭接口并启动使网络配置生效
MAC地址设置
/sbin/ifconfigeth0down 关闭eth0接口
/sbin/ifconfigeth0 hw ether 00:0C:11:22:33:10
/sbin/ifconfigeth0 up
本地主机名称解析文件
cat/etc/hosts 保存本地的主机名与IP地址的对应记录
vi/etc/hosts 添加更多的IP地址与主机名称的对应记录
域名服务器配置文件
cat/etc/resolv.conf 查询用于域名解析的DNS服务器
linux 查询域名 ip (转)
host 命令:
host 命令是用来查找给出域名的ip地址并且也可以显示指定ip地址的域名。
语法:
host [-aCdlnrTwv] 域名/IP地址
命令开关:
-a 显示所有指定主机的DNS记录。
-C 输出SOA记录和权威服务器名
-d 与参数-v相同
-l 列出AXFR域中的所有主机。
-t 用来选择查询类型。查询类型: CNAME,NS,SOA,KEY 等等
-W 指定应答时间,指定对来自服务器的应答等待多长时间。
-v 详细方式显示主机生成的信息。
-T 用TCP代替UDP来查询服务器名称。这包含在TCP命令中,如AXFR请求语句。
示例:
查找一个主机的ip地址。
host 123456789.co.in
123456789.co.in has address 69.65.102.222
使用host命令敲入主机名称,你可以获得它的ip地址。 这个主机123456789.co.in的ip地址是69.65.102.222.
输出SOA记录信息:
host -C 123456789.co.in
Nameserver ns1.dnshorizon.com:
123456789.co.in SOA ns1.dnshorizon.com. saisan.gmail.com.
2007062001 86400 7200 3600000 86400
Nameserver ns2.dnshorizon.com:
123456789.co.in SOA ns1.dnshorizon.com. saisan.gmail.com.
2007062001 86400 7200 3600000 86400
上述命令显示主机的服务器名称和它的SOA记录信息。
Linux下查看网关的命令还是很多的,不过如果IP是DHCP获取,那么有些命令是不适用的,当然也有通用的查询网关命令.
#[ 系统管理 ]
环境变量 env
exportDISPLAY=localhost:0.0 该命令修改了环境变量中的DISPLAY的值为localhost:0.0
系统日期date
运行时间time 该命令用来计算一个程序需要多长时间
timegcalctool 该命令启动一个计算机进程, 并且计时. 结束计算器运行的时候, 终端中会返回一共运行的时间, cpu耗费的时间, 用户耗费的时间三样信息.
timewget http://www.abc.com/web1/mydoc.doc 该命令启动一个下载进程,并且在下载结束之后返回下载所有的时间.
历史命令history 可以最近使用过的命令, 默认为1000个.
history–c 该命令清除系统记录的命令信息.
系统信息dmesg
日志文件/var/log
系统运行时间 uptime
系统用户 w,who, whoami
w和who分别以不同的形式返回当前登录到机器上的用户列表.
whoami返回当前终端登录的用户名.
登录信息last
列出了以往的用户登录成功和退出的信息
cat/var/log/syslog 来查看登录失败的信息.
uname -a#查看内核/操作系统/CPU信息
head -n1 /etc/issue #查看操作系统版本
cat/proc/cpuinfo #查看CPU信息
hostname#查看计算机名
lspci-tv #列出所有PCI设备
lsusb-tv #列出所有USB设备
lsmod #列出加载的内核模块
env #查看环境变量
servicenetwork restart #重启网卡命令
#[ 进程管理 ]
查看: ps
ps aux 该命令返回详细的进程信息.
TTY代表终端是哪一个, 系统启动的进程终端用?表示. 认为的可以是tty1, tty2等.
STAT代表进程的状态
进程树:pstree
列举了所有进程之间的关系.
杀死进程:kill, pkill,xkill
kill[PID] 杀死进程标识为PID的进程.
pkill [进程名] 指定一个进程名来杀掉该进程.
xkill 鼠标光标会变成一个X, 选中那个窗口,就会杀掉那个窗口所属的进程.
动态查看:top
控制台中的文字每秒钟更新一下, 动态反映进程的状态.
q键以退出动态查看.
后台进程:&
Linux中的窗口计算器命令: gcalctool
ctrl + c可以终止进程, 这样的进程是一个前台进程, 前台进程可以交互.
后台进程不能交互, ctrl + c不能终止.
启动一个后台进程需要在进程名后加一个 &, 例如: gcalctool &
调回前台: fg
查看后台的进程可以使用命令jobs, 通过jobs命令,可以获取后台进程的jobnumber.
fg [jobnumber] 命令可以将job number的后台进程转换到前台.
回复挂起的后台进程: bg
[海明的liux讲座这里似乎有点不对头],一下是我找到的英文解释.
bg [jobspec]
Resumethe suspended jobjobspec in thebackground, as if it had been startedwith&. Ifjobspec is notpresent, the shell's notion of thecurrentjob is used.bgjobspecreturns 0 unless run when job controlis disabled or, when run with job controlenabled, ifjobspec was notfound or started without job control.
翻译一下应该是用来恢复本来就在后台运行的挂起的进程.
优先级调整: renice
任何进程都有优先级, Linux的系统包含的优先级从-20到+19, 共四十个等级. -20优先级最高, 19优先级最低.
renice-20 –p 4097 该命令将PID为4097的命令的优先级修改为-20.
#[ 用户管理 ]
添加用户:useradd
-u UID 指定新用户的uid, 默认使用当前最大UID加1
-g group指定新用户所在的组
-G 指定新用户的附加组
-d 指定新用户的家目录
-s 指定新用户使用的shell, 默认为bash
-c 附加信息
-e 指定用户失效时间
-m 建立新用户的家目录
查看用户的基本情况: id user1 该命令查看user1的基本情况.
只输入id 命令将会返回当前用户的基本情况. whoami也可以.who也可以.
添加用户组: groupadd
groupadd–g 888 group2 创建一个用户组group2, 其GID为888
删除用户:userdel
userdel–r username 删除帐户及其宿主目录
停用用户帐号
将帐号停用的意思是暂时不允许用户登录系统, 而其数据仍要予以保留. 可以编辑etc/passwd文件, 把要停止使用的帐号所在行标注就可以了. 如下, 添加一个井号, 将jane这个用户停用.
#jane:x:1000:1000:Jane,,,:/home/jane:/bin/bash
还可以使用另一种方法, 将该用户的shell修改为false或null或nologin都可以. 如下.
jane:x:1000:1000:Jane,,,:/home/jane:/bin/false
jane:x:1000:1000:Jane,,,:/home/jane:/bin/null
jane:x:1000:1000:Jane,,,:/home/jane:/usr/sbin/nologin
删除用户组: groupdel
更改用户:usermod
usermod-L username 禁用帐户
passwd–l username 禁用密码
usermod-U username 恢复禁用帐户
passwd-u username 恢复禁用密码
更改用户组: groupmod
更改密码:passwd
切换用户: su
在root未设置密码的情况下, 无法su到root账户来运行.
直接运行su命令,不带任何用户名参数, 会默认的切换回root用户.
注意, 使用su命令的时候推荐使用su -user, 这样才会就爱那个user的环境变量加载起来.
切换用户执行: sudo
sudopasswd 该命令给root用户设置密码.
sudo在默认情况下, 等效于sudo –u root command
如果想用另一个用户的情况下执行, 可以使用sudo -u user2 command.
#[ 磁盘管理 ]
FS容量: df
df -h命令, h是human的简写, 启动这个开关之后, 信息更加易读取.
结果当中的tmpfs指的内存中的一个系统.
想查看Swap分区需要用free命令.
目录容量: du /bin -h 该命令显示出bin文件夹用了多少空间.
sudo du/ –hs 该命令查看根目录中使用情况, 查看总数.
磁盘分区:fdisk, cfdisk
磁盘格式化: mkfs
sudomkfs –T fat32 /dev/sda1 格式化sda1分区.
加载:mount
mount/dev/cdrom /mnt 将cd映射到mnt设备挂载点. 挂在之后/mnt就是你的cd驱动器了.
相当于dos中的subst吧.
卸载:umount
umount/mnt或者 umount/dev/cdrom是一样的.
弹出光盘弹出的命令: eject/dev/cdrom
在windows中,按光驱的按钮就可以弹出了, 在Linux中必须使用eject命令.
硬盘速度:hdparm –tT/dev/sda该命令测试sda硬盘的速度
磁盘同步:sync
把硬盘和内存进行同步, 将内存中的内容及时的写回磁盘.
#[ 目录管理 ]*
切换目录
cddirname #切换到目录
cd .. #切换到上一级目录
cd ~ #切换到当前用户的家目录
cd #切换到当前用户的家目录
显示目录文件
ls#显示当前目录文件列表
-a 列出全部文件,包括隐藏文件(文件名以.开头的文件)
-l 详细列表
创建目录
mkdirdirname
删除目录
rm-rf dirname
-r 递归处理
-f 强制删除(不显示确定删除提示对话)
rm -ri dirname
-i 显示确定删除提示框(推荐带上此参数)
复制
cp-r dirname1 dirname2 # 将dirname1 复制到dirname2 中
cp -r dirname1/* dirname2 # 推荐这样写
移动/重命名
mvfilename1 filename2 # 将filename1 重命令为filename2
mv -r dirname1/* dirname2/ # 将 dirname1 下面的文件称动到 dirname2 中
查看文本内容
catfilename # 显示filename 全部第1行到第N行的内容
tac filename # 显示filename 全部第N行到第1行的内容, 逆向显示
more filename # 一屏一屏的显示内容, 回车翻页
less filename # 显示内容, 可用k/j上下翻动, q退出
head -3 filename # 只显示 filename 前3行的内容
tail -3 filename # 只显示 filename 最后3行的内容
tail -f filename # 实时监视 filename 最后10行内容(常用于查看日志)
sed -n '5,10p' filename #显示 filename 第5行到第10行的内容
head -3 filename | tail -1 #查看 filename 第3行内容
统计文本文件行数
wcfilename # 行数(-l),字数(-w),字节数(-c)
查找命令位置
whereisphp # 查找 php程序目录
按文件名查找
find/root -name test.* # 在/root 目录下查找文件名为test.* 的文件
在文件内部查找
grep-r "aaaa"/root/* # 在/root 目录下查找内容包含有"aaaa" 字串的文件
将程序运行结果保存到文件中
ls> filename #将 ls 的执行结果保存到filename 中
ls >> filename #将 ls 的执行结果追加保存到 filename 中
文件权限
chmod777 files -〉rwxrwxrwx
chmod755 files -〉rwx r-x r-x
chmod644 files -〉rw- -r- -r-
chmod000 files -〉- - - - -- - - -
chmodu+x g+w o+r file(给file以拥有者可执行、同组可写、其他人可读取的权利)
chmod–R 777 /tmp/test :更改目录中所有文件和目录的权限(所有权限)。
chmod–R 664 /tmp/test :关闭执行权限。
chownuser1 file(把file分配给user1)
#[ 系统 ]
top# 显示,管理执行中的程序
free # 内存使用和swap空间使用情况
ps # 查看进程
whoami #查看当前登录用户名
#切换用户
sukuco #切换到kuco 用户
su #切换到root 用户
#新建一个 www 组
groupaddwww
#删除 www 分组
groupdelwww
#在 www 组里新建一个 wwwuser 用户
adduser -g wwwuser www
#删除用户
userdelusername
#修改 username 用户的密码
passwdusername
#修改 www 用户密码
passwdwww
#修改 dirname 目录下所有文件拥有者改为 www 组下的 wwwuser 用户
chown -R wwwuser:www dirname
#修改 dirname 目录下所有文件权限为可读可写可执行
chmod-R 777 dirname
#[ 管道 ]
# 管道:把上一个命令执行的结果交给下一个命令
# 命令1|命令2|命令3......|命令n
ls-Rl /etc | more #分页(more)显示(ls-Rl /etc)结果
cat /etc/passwd | wc #显示文件结果, 再显示(wc)结果
ls -l | grep "abc" #只显示 ls 结果只含有 "abc" 的文件/目录