Linux命令
命令行下的快捷键
Ctrl+a:把光标移到行首。
Ctrl+e:把光标移到行尾。
Ctrl+l:清除终端。该快捷操作与在命令行键入clear作用相同。
Ctrl+d:从Shell提示中注销并关闭,使用该快捷键就不必键入exit。
Ctrl+u:清除当前行。如果在命令行下工作,使用这一快捷操作可以清除从光标处到行首的字符。
Ctrl+Alt+Fn:切换屏幕。Ctrl+Alt+功能键之一会显示一个新屏幕。根据默认设置,从F1到F6是Shell提示屏幕。
Ctrl+K:删除从光标到行末所有字符。
向上和向下箭头:显示命令历史。bash保存着以前键入过的命令的列表,这一列表被称为命令历史表。
Speace+B:向前调一个单词。
鼠标中间键:粘贴突出显示的文本。使用鼠标左键来突出显示文本,把光标指向想粘贴文本的地方,点击鼠标中间键粘贴。在两键鼠标系统中,如果把鼠标配置成模拟第三键,可以同时点击鼠标的左右两键来执行粘贴。
Tab:命令行自动补全。
Ctrl+c/z:终止当前操作。
q:终止、退出。
Ctrl+Alt+Delete:关机和重新引导,只有在正常关机不起作用时才使用这种方法。
vi文本编辑
插入 i
删除 x
删除光标所在的行 dd(敲 d 两次)
保存当前修改并退出 ZZ
查找 /<word> n 下一个(next) N 上一个
退出 :q
强退 :q!
保存 :w
恢复 u
整行恢复 U
放弃所有修改,到上次保存时状态 :e!
向前移动一个单词,将符号或标点当作单词处理 w
向前移动一个单词,不把符号或标点当作单词处理 W
向后移动一个单词,把符号或标点当作单词处理 b
向后移动一个单词,不把符号或标点当作单词处理 B
页首 gg
页末 G
查询当前行信息和当前文件信息 Ctrl+g
修改文件格式 : set fileformat=unix/dos/mac
查看文件
cat命令功能用于显示整个文件的内容单独使用没有翻页功能因此经常和more命令搭配使用,cat命令还有就是将数个文件合并成一个文件的功能。
more命令功能:让画面在显示满一页时暂停,此时可按空格健继续显示下一个画面,或按Q键停止显示。
less命令功能:less命令的用法与more命令类似,也可以用来浏览超过一页的文件。所不同的是less命令除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件。当要结束浏览时,只要在less命令的提示符“:”下按Q键即可。
其实这三个命令除了cat命令有合并文件的功能,其余功能上相近,只是从浏览习惯和显示方式上有所不同。
cksum 检查文件是否损坏
md5sum 查看iso等文件是否完整
cmp 比较两个文件,返回第一个不同的地方
flie 识别文件类型
ip a 查看所有网卡的ip
grep 抓取出显示信息中符合条件的
例:
more <filename> |grep <name> 显示出filename中所有包含name的行
man 帮助
tree 列出指定目录下的所有文件,包括子目录里的文件。
修改文件权限
chmod (change mode)
例:
chmod 777<filename> 7 rwx 5 rx 4 r
777对应ugo三个组
u user
g group
o other
a all
+ 增加权限
- 删去权限
= 设置权限
r
w
x
chmod og-wmyfile
chmod -R 744/tmp/* 改文件夹下所有文件的权限
chown (change owner)
chown -R -h owner file
- R选项意味着对所有子目录下的文件也都进行同样的操作。- h选项意味着在改变符号链
接文件的属主时不影响该链接所指向的目标文件。
chgrp 命令 (changegroup)
chgrp groupfile
查询用户属于哪个组:
groups<username>
id<username>
umask命令 改变创建文件的默认权限
umask 查询当前的值
umask 022 设置
对应表
umask 文件 目录
0 6 7
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 1
7 0 0
ln source dist是产生一个连结(dist)到 source
例:
ln -sf yy zz 将档案 yy 产生一个symbolic link : zz -f : 链结时先将与dist 同档名的档案删除
命令 |more 以more形式显示信息
例:
ifconfig |more
find命令
-name 按文件名查找
find <path> -name “name”
find ~ -name "*.txt" -print
find . -name "[a-z][a-z][0--9][0--9].txt"
名字前两位是字母后两位是数字的.txt文件
-perm 按文件权限查找
find . -perm 755
Source命令
Source命令也称为“点命令”,也就是一个点符号(.)source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
用法:sourcefilename 或 . filename
另一个作用是把由多行命令的组成的文件当成shell来执行
. filename
Chkconfig 查看,设置系统服务
chkconfig - enable or disable system services
Telnet服务
rpm –qa | greptelnet
telnet-1.2-14.4
telnet-server-1.2-14.4
启动telnet服务
vi/etc/xinetd.d/telnet
disable = no
servicexinetd restart
SSH服务
配置文件
/etc/ssh/ssh_config
service sshdstart/restart/stop
Mount命令
mount -o ro,loopisofile /mnt/
-o option
ro read-only
loop loop device虚拟设备
umount /mnt
Sed命令
sed 's/word1/word2/g'file1 > file2
在file1中找出所有的word1并替换成word2,然后将file1中所有内容输出到file2中。
sed命令不会对源文件做任何修改
执行以行为单位,以上命令若不加/g,则只替换行内第一个word1
替换后再执行
cp file2 file1
rm file2
:> file 将file清空
> file 将file清空
IF命令
if [-z “$BackupDir”];then <> ; fi
如果值为空则执行,值不为空,不执行。
if [-f “$GLOBAL_BACKUP_CONF”];then <> ; fi
文件是否存在
-f file: ture if file exists and is a regularfile
-s file: true if file exists and has a sizegreater than zero
字符,符号
ls*g??[0-9][a-z][A-Z][io].*
列出文件名为任意多任意字符+g+任意两个字符+数字+小写字母+大写字母+i或o+.+任意多任意字符的文件
网络命令
ifconfig
删除附加ip
ifconfig eth0:0del10.170.22.81
servicenetwork restart
用户管理
useradd<username> -m 创建用户并自动创建用户文件夹与/home
passwd<username> 创建密码
usermod –L <username> 用户锁定
usermod –U<username> 用户解锁
userdel –r<username> 用户删除并删除用户文件夹
w |grep<username> 显示该用户进程
pkill -kill -tpts/xx 强制结束进程xx
kill -9<pts> 结束进程
scp (-r)<filename or flodername> root@<ip>:/<path>
-r 文件夹下所有文件
压缩、解压缩
zip unzip
例:
# zip all.zip*.jpg
这条命令是将所有.jpg的文件压缩成一个zip包
# unzipall.zip
这条命令是将all.zip中的所有文件解压出来
bz2
bzip2
bzip2 -dfile.bz2
tar
例:
# tar (–)xvjfrarlinux-3.2.0.tar.gz
要创建一个 tar 文件,键入:
tar -cvf filename.tar directory/file
可以使用 tar 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
tar -cvf filename.tar /home/mine/work /home/mine/school
上面的命令把 /home/mine 目录下的 work 和 school 子目录内的所有文件都放入当前
目录中一个叫做 filename.tar 的新文件里。
要列出 tar 文件的内容,键入:
tar -tvf filename.tar
要抽取 tar 文件的内容,键入
tar -xvf filename.tar
TAR.GZ
这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:
# tar -zcvfarchive_name.tar.gz directory_to_compress
解压缩:
# tar -zxvfarchive_name.tar.gz
rar
解压
unrar efilename.rar
RPM 安装
安装 --force --replacepkgs --replacefiles
rpm -ivhkexec-tools-1.101-32.54.10.x86_64.rpm kdump-0.3.0-8.14.x86_64.rpm
卸载
-e --allmatches
rpm -ekexec-tools
升级
rpm -Uvh kexec-tools-1.101-32.54.10.x86_64.rpm
查询
rpm -qa| grep***
rpmdb --rebuilddb
系统信息查看
系统
# uname-a # 查看内核/操作系统/CPU信息
# cat/etc/issue #查看linux版本
# head -n 1/etc/issue # 查看操作系统版本
# cat/proc/cpuinfo # 查看CPU信息
#hostname # 查看计算机名
# lspci-tv # 列出所有PCI设备
# lsusb-tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grepMemTotal /proc/meminfo # 查看内存总量
# grep MemFree/proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat/proc/loadavg # 查看系统负载
磁盘和分区
# mount |column -t # 查看挂接的分区状态
# fdisk-l # 查看所有分区
# swapon-s # 查看所有交换分区
# hdparm -i/dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grepIDE # 查看启动时IDE设备检测状况
网络
#ifconfig # 查看所有网络接口的属性
# iptables-L # 查看防火墙设置
# route-n # 查看路由表 netstat -nr
# netstat-lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat-s # 查看网络统计信息
进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态
用户
# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1/etc/passwd # 查看系统所有用户
# cut -d: -f1/etc/group # 查看系统所有组
# crontab-l # 查看当前用户的计划任务
服务
# chkconfig--list # 列出所有系统服务
# chkconfig--list | grep on # 列出所有启动的系统服务
程序
# rpm -qa # 查看所有安装的软件包
Apache server
重启服务
# /etc/apache2restart
添加目录
在default-server.conf中添加
DocumentRoot"/home/IMSREF/web"
#
# Configurethe DocumentRoot
#
<Directory"/home/IMSREF/web">
# Possible values for the Optionsdirective are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" mustbe named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is bothcomplicated and important. Please see
#http://httpd.apache.org/docs-2.2/mod/core.html#options
# for more information.
Options +Indexes +FollowSymLinks
# AllowOverride controls whatdirectives may be placed in .htaccess files.
# It can be "All","None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
AllowOverride All
# Controls who can get stuff from thisserver.
Order allow,deny
Allow from all
</Directory>
鉴权开启 AllowOverride All
关闭 AllowOverrideNone
加鉴权配置
1.使用htpasswd建立用户文件:
$ htpasswd2 -c/home/IMSREF/web/.htpasswd user1
此程序会询问用户“user1”的口令,你输入“passwd1”,两次生效。
2.建立.htaccess文件
用“vi /home/IMSREF/web/.htaccess”命令建立.htaccess文件,并写入以下几行:
AuthName MyFriend Only (注:这个名字是任取的)
AuthType Basic
AuthUserFile/home/IMSREF/web/.htpasswd
require valid-user
最后设置文件.htpasswd和.htaccess的文件权限,确保Apache用户有读的权限这样就完成了网页密码设置的工作,现在你可以在浏览器中试一试效果了。
最后重启apache服务。
重启和关机
重启命令:
1、reboot
2、shutdown-r now 立刻重启(root用户使用)
3、shutdown-r 10 过10分钟自动重启(root用户使用)
4、shutdown-r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown-c命令取消重启
关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown-h now 立刻关机(root用户使用)
4、shutdown-h 10 10分钟后自动关机
如果是通过shutdown命令设置关机的话,可以用shutdown-c命令取消重启
MySQL命令
赋给用户权限
mysql> grant权限1,权限2,…权限n on 数据库名称.表名称to 用户名@用户地址 identified by ‘连接口令’;
grantselect,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。
linux目录说明
/bin
这是放例如: ls, mv, rm, mkdir, rmdir, gzip, tar,telnet, 及 ftp 等等常用
的执行档的地方(这些执行档的执行方法会在后面提到),有时候这个目录的内容
与 /usr/bin 是一样的(有时候甚至会使用连结档哩),是给一般使用者使用的执
行程序放置的所在!
/boot
没错,这里就是放置你 Linux 核心与开机相关档案的地方,这个目录底下的
vmlinuz-xxx 就是Linux 的 Kernel 啦!粉重要的东西!而如果你的开机管理程序选择 grub 的话,那么这个目录内还有/boot/grub 这个次目录呦!
/dev
摆放一些与装置有关的档案。基本上 Unix 或 Linux 系统均把装置当成是一个档案来看待,例如 /dev/fd0 代表软盘,亦即 Windows 系统下的 A 槽,而/dev/cdrom
则代表光盘,等等!而如上所述,在这个目录底下的档案型态通常分为两种喔,分
别是管理磁盘 Input/Output 的 Block 档案与周边的Character 档案。
/etc
系统在开机过程中需要读取的档案均在这个目录中,例如 Lilo 的参数、人员的账
号与密码、系统的主要设定、http 架站的参数内容、你所要开启的服务项目等等都在这个目录中,所以在这个目录下工作的时候,请记得一定要备份,否则档案被改掉了可是很麻烦的!
/etc/rc.d
这个路径主要在记录一些开关机过程中的 scripts 档案, scripts 有点像是DOS
下的批次档(.bat檔名)
/etc/rc.d/init.d
所以服务预设的启动 scripts 都是放在这里的,例如要启动与关闭 iptables 的话,可以:
/etc/rc.d/init.d/iptablesstart
/etc/rc.d/init.d/iptablesstop
/etc/xinetd.d
这个路径在较新的 Linux distribution 当中才有,由于早期的版本用来开启服务
的档案是 inetd.conf ,但是在较新的版本中,开启服务的项目已经变成使用
xinetd.conf 这个档案,因此,你若需要启动一些额外的服务的话,在 Mandrake9.0 或者是 Red Hat 7.0 以后就要到/etc/xinetd.d 这个目录下了。
/etc/X11
这是与 X windows 有关的设定文件所在的目录,尤其里面的 XF86Config-4 更是重要呢!
/home
基本上,这是系统预设的使用者的家目录( home directory ),在你新增一般使用者账号的时候,预设的使用者家目录都在这里设定好啰!
/lib
在 Linux 执行或编译一些程序的时候,均会使用到一些函式库(library),就在
这个目录下
/lost+fount
系统不正常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自
动出现在装置目录下。例如你加装一棵硬盘于 /disk 中,那在这个目录下就会自动产生一个这样的目录 /disk/lost+found
/mnt
这是软盘与光盘预设挂载点的地方;通常软盘挂在 /mnt/floppy 下,而光盘挂在
/mnt/cdrom 下,不过也不一定啦!只要你高兴,随便找一个地方来挂载也可以呀!
/proc
系统核心与执行程序的一些信息。例如你的网络状态的问题啦!这个目录将在启动
Linux 的时候自动的被挂上,而且该目录底下不会占去硬盘空间!因为里面都是
『内存』内的数据啦
/root
系统管理员的家目录
/sbin
放置一些系统管理常用的程序,例如: fdisk, mke2fs, fsck, mkswap, mount 等等。与/bin 不太一样的地方,这个目录下的程序通常是给 root 等系统管理员使用的程序喔!
/tmp
这是让一般使用者暂时存放档案的地方,例如你在安装 Linux 下的软件时,可能软件预设的工作目录就是 /tmp ,所以你要定期的清理一下,当然,重要数据最好不要放在这里!
/usr
这是最重要的一个目录了,里面含有相当多的系统信息,内有许多目录,用来存放
程序与指令等等。这个目录有点像是 Windows 底下的『ProgramFiles』那个目录的说~
/usr/bin 放置可执行程序,如前所说,这个目录的档案与 /bin 几乎是相同的。
/usr/include
一些套件的header檔。基本上,当我们在以tarball 方式( *.tar.gz 的方式安装软件)安装某些数据时,会使用到的一些函式库都在这个目录底下喔!
/usr/lib 内含许多程序与子程序所需的函式库。
usr/local
在你安装完了 Linux 之后,基本上所有的配备你都有了,但是软件总是可以升级的,例如你要升级你的 proxy 服务,则通常软件预设的安装地方就是在 /usr/local 中( local 是『当地』的意思),同时,安装完毕之后所得到的执行文件,为了与系统原先的执行文件有分别,因此升级后的执行档通常摆在 /usr/local/bin 这个地方。
给个建议啦,通常 VBird 都会将后来才安装上去的软件放置在这里,因为便于管理呦!
/usr/sbin 放置管理者使用程序,与 /sbin 类似的功能
/usr/share/doc放置一些系统说明文件的地方,例如你安装了 lilo 了,那么在该目录底下找一找,就可以查到 lilo 的说明文件了!很是便利!
/usr/share/man
放置一些程序的说明文件的地方,那是什么?呵呵!就是你使用 man 的时候,会去查询的路径呀!例如你使用 man ls 这个指令时,就会查出
/usr/share/man/man1/ls.1.bz2这个说明档的内容啰!
/usr/src
这是放置核心原始码的预设目录,未来我们要编译核心的时候,就必须到这个目录
底下呦!
/usr/X11R6 XWindow System存放相关档案的目录
/var
这个目录可就重要了!所有服务的登录文件或错误讯息档案(log files)都在
/var/log 里面,此外,一些数据库如 MySQL 的数据库则在 /var/lib 里头,此外,使用者未读邮件邮件的预设放置地点为 /var/spool/mail !呵呵!你说重不重要呀!?
需要注意的目录
在 Linux 系统中,有几个目录是特别需要注意的,以下提供几个需要注意的目录,以及预设相关的用途:
? /etc:这个目录相当重要,如前所述,你的开机与系统数据文件均在这个目录之下,因此当这个目录被破坏,那你的系统大概也就差不多该死掉了!而在往后的文件中,你会发现我们常常使用这个目录下的 /etc/rc.d/init.d 这个子目录,因为这个 init.d 子目录是开启一些 Linux 系统服务的 scripts(可以想成是 批次檔)的地方。而在 /etc/rc.d/rc.local这个档案是开机的执行档,有点像是旧 Windows 系统下的 autoexec.bat 及 config.sys 檔。
所以,如果你有需要在开机加载的服务或执行档案,可以写在这个档案的最后一行,则开机时就会自动帮你加载执行档了!
? /bin, /sbin,/usr/bin, /usr/sbin:这是系统预设的执行文件的放置目录,例如 root 常常使用的userconf, netconf, perl, gcc, c++ 等等的数据都放在这几个目录中,所以如果你在提示字符下找不到某个执行档时,可以在这四个目录中查一查!其中, /bin, /usr/bin 是给系统使用者使用的指令,而 /sbin, /usr/sbin 则是给系统管理员使用的指令!
? /usr/local:这是系统预设的让你安装你后来升级的套件的目录。例如,当你发现有更新的Web 套件(如 Apache )可以安装,而你又不想以 rpm 的方式升级你的套件,则你可以将 apache 这个套件安装在/usr/local 底下。安装在这里有个好处,因为目前大家的系统都是差不多的,所以如果你的系统要让别人接管的话,也比较容易上手呀!也比较容易找的到数据喔!因此,如果你有需要的话,通常我都会将 /usr/local/bin 这个路径加到我的 path中。
? /home:这个是系统将有账号的人口的家目录设置的地方。
? /var:这个路径就重要了!不论是登入、各类服务的问题发生时的记录、以及常态性的服务记录等等的记录目录,所以当你的系统有问题时,就需要来这个目录记录的档案数据中察看问题的所在啰!而 mail 的预设放置也是在这里,所以他是很重要的喔!
?/usr/share/man, /usr/local/man:这两个目录为放置各类套件说明档的地方,例如你如果执行 man man,则系统会自动去找这两个目录下的所有说明文件,如果有相同的数据就会叫出来给你幽!