Linux常用命令
2013-08-26 19:28 hduhans 阅读(385) 评论(0) 收藏 举报引言:Linux是一种自由和开放源码的类Unix操作系统,由最初的Unix演变而来。如今Linux有很多种类,但大都可分为两个版本:基于redhat的版本和基于debian的版本。
一、预备知识
1、文件命名规则
1) 除了/外,所有字符均合法
2) 不建议使用某些特殊字符,如空格、制表符、退格符和字符@#$&()-等
3) 避免使用.作为普通文件名的第一个字符(Linux隐藏文件名都以.开头)
4) 大小写敏感(Windows大小写不敏感)
2、特殊介绍
1) .(一个点)表示当前目录
2) ..(两个点)表示父目录
3) 执行命令时,任何时候按ctrl+c都会结束命令
3、命令执行权限
1) 管理员root执行的命令,命令存放路径/sbin或/usr/sbin
2) 所有用户可执行的命令,命令存放路径/bin或/usr/bin
二、Linux常用命令
-----------------------------------------------------------文件处理命令--------------------------------------------------------------------
(一) 文件处理命令
1、显示目录文件,ls命令(英文:list)
语法:ls 选项[-ald] [文件或目录]
选项:1) -a 显示所有文件,包括隐藏文件(英文:all)。
2) -l 详细信息显示,长格式(英文:long)。详细信息格式如:drwxr-xr-x 2 hduhans hduhans Aug 22 04:04 Desktop,格式说明:
① 详细信息第一列10个字符格式如:drwxr-xr-x。
⑴ 其中第一个字母说明文件类型。文件类型:① d 目录文件directory ② - 二进制文件 ③ l 软链接文件link
⑵ 将剩余的9个字符每三个分组,如:rwx r-x r-x
Ⅰ) 权限分类:a、r-read读权限;b、w-write写权限;c、x-execute执行权限
Ⅱ) Linux用户分为:a、所有者u(英文:user);b、所属组g(英文:group);c、其他人o(英文:others)
Ⅲ) 分组后的字符分别代表所有者、所属组和其他人的权限
⑶ 结合上述,drwxr-xr-x表示:此文件是一个目录文件,他的所有者拥有读写和执行权限,他的所属组拥有读和执行权限,其他人拥有读和执行权限
② 第二列数字(本例:2)代表硬链接数,第三列(本例:hduhans)是文件所有者,第四列(本例:hduhans)是文件所属组,第五列(本例:4096)代表文件大小(此处文件大小数字并不是非常准确,查看文件大小一般通过其他方式),第六列(本例:Aug 22 04:04)代表文件创建或最近修改时间,第七列(本例:Desktop)代表文件名称
3) -d 查看目录属性(英文:directory)
4) -R 递归显示目录及目录下的所有子文件
2、切换目录,cd命令(英文:change directory)
语法:cd [目录]
范例:$ cd / --切换至根目录
$ cd .. --切换到上一级目录
3、显示当前所在的工作目录,pwd命令(英文:print working directory)
4、创建空文件,touch命令
语法:touch [文件名]
5、创建新目录,mkdir命令(英文:make directories)
语法:mkdir [目录名]
mkdir -p [目录名1/目录名2] --一次性创建多级目录
6、复制文件或目录,cp命令(英文:copy)
语法:cp -R [源文件或目录][目的目录]
cp -a 拷贝目录并设置相同的属性(权限等)
注:1) 复制目录是必须加-R参数
2) 可同时复制多个文件或目录,最后一个位目的目录
7、移动文件、更改文件名,mv命令(英文:move)
语法:mv [源文件或目录] [目的目录]
范例:mv xml myxml --将xml文件重命名为myxml
8、删除文件,rm命令(英文:remove)
语法:rm -r [文件或目录]
注:1) 删除目录必须加-r参数
2) rmdir是删除空目录,目录中有内容则无法删除,rmdir命令使用很少
9、显示文件内容,cat命令(英文:concatenate and display files)
语法:cat [文件名]
10、分页显示文件内容,more命令与less命令
语法:more|less [文件名]
(空格)或f 显示下一页
(Enter)回车 显示下一行
q或Q 退出显示
less命令不仅能向下翻,也支持向上翻,通过Page Up和Page Down键
11、查看文件的前几行,head命令
语法:head -num [文件名]
范例:head -20 /ect/services --查看/etc/services文件的前20行
12、查看文件的后几行,tail命令
语法:tail -num [文件名]
-f 动态显示文件内容
13、创建链接文件,ln命令(英文:link)
语法:ln [源文件][目标文件]
-s 创建软链接
范例:ln -s myfile myfile.soft --创建myfile文件的软链接(超链,源文件删除后软链接无法访问,可以跨分区创建)
ln myfile myfile.hard --创建myfile文件的硬链接(硬链接所有属性与源文件一致,类似于源文件的副本,源文件删除后仍可以访问,不能跨分区创建)
-----------------------------------------------------------权限管理命令--------------------------------------------------------------------
(二) 权限管理命令
1、改变文件或目录权限,chmod命令(英文:change the permissions mode of a file)
语法:chmod [{ugo}{+-=}{rwx}] [文件或目录]
范例:chmod g+wx myfile --给文件myfile增加所属组的写和执行的权限
chmod o=r myfile --给文件myfile赋予其他人读权限
chmod 661 myfile (推荐方法) --给文件myfile快捷设置权限,对所有者和所属组权限为读写权限,对其他人只有执行权限
注:1) ugo分别是所有者、所属组和其他人,详见ls命令
2) rwx分别是读、写和执行权限,对应权限数字分别为4、2和1
rwxr-xr-- =》 754
7->读写执行 6->读写 5->读执行 4->只读 3->写执行 2->只写 1->只执行
3) rwx对于文件和目录的含义是不一样的,设置权限时需注意。
a、对文件,r-可以查看文件内容,w-可以修改文件内容,x-可以执行文件
b、对目录,r-可以列出目录中内容,w-可以在目录中创建删除文件,x-可以进入目录
2、改变文件或目录的所有者,chown命令(英文:change file ownership)
语法:chown [用户] [文件或目录]
-R --改变文件和文件下的所有子文件
范例:chown nobody myfile --改变文件myfile的所有者为nobody
3、改变文件或目录的所属组,chgrp(英文:change file group ownership)
语法:chgrp [用户组] [文件或目录]
4、显示和设置文件的默认权限,umask命令
语法:umask
范例:① umask --获取当前文件设置的默认值,显示值为4位,如0002,第一位是特殊权限位,后三位表示ugo的权限掩码值,用最大的权限值666-002=664,即文件对ugo的权限分别为664,目录对ugo的权限分别为775(777-002=775)
② umask 000 --更改文件和目录的默认权限,000位权限掩码值,实际值应当最大权限对应值-000
注:1) linux权限规则定创建的文件不能授予可执行权限
2) 目录最大权限777,文件最大权限为666
-----------------------------------------------------------文件搜索命令--------------------------------------------------------------------
(三) 文件搜索命令
1、显示系统命令所在目录,which命令
语法:which [命令名称]
范例:which ls --显示ls命令所在的目录
注:whereis命令与which类似,均可以显示命令所在的目录,区别是which可以额外显示命令的别名信息,whereis可以额外显示命令的帮助信息
2、查找文件或目录,find命令
语法:find [搜索路径] [搜寻关键字]
范例:① find /test -name hans --查找/test目录下名为hans的文件或目录(相等查询)
find /test -name hans* --通配符,*匹配任意字符,包括0个字符
find /test -name hans? --通配符,?匹配单个字符
② find /test -size +2 --查找/test目录下文件大小大于1K的文件或目录(这里数字表示数据库,1个数据库=512字节=0.5K)
find /test -size -2048 --查找小于1M的文件或目录
③ find /test -user hduhans --查找/test目录下文件所有者为hduhans的文件或目录
④ find /test -cmin -120 --查找/test目录下2个小时内被修改过属性的文件或目录
参数:1) 单位:天。 ctime,atime,mtime
2) 单位:分钟。cmin,amin,mmin
3) c-change,文件属性被修改过;a-access,文件被访问过;m-modify,文件内容被修改过
4) -小于 +大于
⑤ find /test -name hans* -a -size +2048 --查找/test目录下名称以hans开头并且大小大于1M的文件或目录
参数:1) -a 逻辑与 2) -o 逻辑或
⑥ find /test -type f --查找/test目录下所有的二进制文件
参数:1) f-二进制文件 2) d-目录文件 3)l-软链接文件
⑦ find /test -name hans -exec ls -l {} \; --查找/test目录下名称位hans的目录或文件并执行命令ls -l
格式:-exec 命令 {} \; --固定格式 {}表示find查询的结果,\ 转义符,符号命令使用本身的含义,;表示结束
⑧ find /test -name hans -ok ls -l {} \; --作用同exec,区别是执行命令时会询问是否执行
⑨ find . -inum 267811 -exec rm {} \; --查找当前目录下文件inode=267811的文件并将其删除
说明:ls -i --显示文件的inode
3、寻找文件或目录,locate命令
语法:locate [搜索关键字]
注:1) locate命令查询速度非常快,是因为它检索的是文件系统数据库,因此新建的文件可能会搜不到
2) locate命令只在linux中使用,unix不包含此命令
4、建立系统目录文件的数据库,updatedb命令
语法:updatedb
注:此命令可与locate命令结合使用
5、在文件中搜索字符串匹配的行并输出,grep命令
语法:grep [指定字符串] [源文件]
范例:grep ftp /etc/services --在文件/etc/services中搜索包含字符串ftp的行并输出
-----------------------------------------------------------帮助命令--------------------------------------------------------------------
(四) 帮助命令
1、获得命令帮助信息,man命令(英文:manual)
语法:man [命令或配置文件]
范例:man ls --查看ls命令的帮助信息
2、获得命令帮助信息,info命令(英文:information)
语法:info [任何关键字]
注:info使用与man类似
3、获得索引的简短说明信息,whatis命令
语法:whatis apropos [任何关键字]
范例:whatis ls --查看ls命令的简短说明信息
-----------------------------------------------------------压缩解压命令--------------------------------------------------------------------
(五) 压缩解压命令
1、压缩解压gz格式文件,gzip命令(英文:GNU zip)
语法:gzip 选项 [文件]
范例:gzip myfile --压缩myfile文件,压缩后myfile.gz
gzip -d myfile.gz --解压缩myfile.gz文件
gunzip myfile.gz --家也所myfile.gz文件,同gzip -d
注:1) linux常见压缩文件格式:①.gz ②.tar.gz(源码文件) ③.zip(windows和linux通用文件格式) ④.bz2(与gz类似) ⑤⑥⑦
2) gzip命令只能压缩文件,不能压缩目录
3) gzip命令压缩完不保留原文件
2、打包.tar.gz目录,tar命令
语法:tar 选项[cvf] [目录]
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩;解压缩
-x 解包.tar文件
范例:1) tar -cfz file.tar.gz file --将当前目录下的file目录打包并压缩成file.tar.gz文件
2) tar -zxf file.tar.gz --将file.tar.gz文件解压缩到当前目录
注:1) 互联网下载的.tar.gz文件一般为源码文件,源码打包压缩后生成,安装时需解压并编译
2) 可随意指定压缩后的文件名,但建议后缀为.tar.gz,使用file命令可判断文件类型是否属于.tar.gz类型,如file file.tar.gz
3、压缩解压zip格式文件或目录,zip命令
语法:zip 选项[-r] [压缩后文件名称] [文件或目录]
-r 压缩目录
范例:1) zip myfile.zip myfile --压缩文件myfile
2) zip -r file.zip file --压缩目录file(压缩目录如果不加-r参数,则只压缩目录文件夹,目录内的文件不会参与压缩)
3) unzip myfile.zip --解压缩myfile.zip文件
注:1) .zip压缩文件格式windows与linux通用
2) zip压缩后保留原文件
3) 解压缩使用命令unzip
4、压缩解压.bz2文件,bzip2命令
语法:bzip2 选项 [-k] [文件]
-k 压缩后保留原文件
-d 解压缩
范例:1) bzip2 newfile --压缩newfile文件,压缩后文件newfile.bz2,压缩后不保留原文件newfile,此时bzip2命令与gzip命令几乎一样
2) bzip2 -k newfile --同上,但压缩后保留原文件newfile
3) bzip2 -d newfile.bz2 --解压缩newfile.bz2
注:bzip2命令与gzip命令几乎一致,区别是bzip2压缩时加-k参数压缩后可保留原文件
-----------------------------------------------------------网络通信命令--------------------------------------------------------------------
(六) 网络通信命令
1、向另一个用户发信息,write命令
语法:write <用户名> --信息以Ctrl+D作为结束
注:write发送消息,接收方用户必须登录在线,否则无法发送
2、向所有用户广播信息,wall命令
语法:wall [message] [文件名]
3、测试网络连通性,ping命令
语法:ping 选项 IP地址
-c 发送数据包次数
注:1) ping命令不会自动结束,只有按Ctrl+C才会结束,并显示统计结果(注意一下丢包率package loss)
4、查看网络设置信息,ifconfig命令
语法:ifconfig 选项 [-a] [网卡设备标识]
-a 显示所有网卡信息
范例:1) ifconfig -a --查看所有网卡信息
2) ifconfig eth0 192.168.1.1 --将网卡eth0的IP地址更改为192.168.1.1
注:if是interface的简写
-----------------------------------------------------------常用shell技巧--------------------------------------------------------------------
(七) 常用shell技巧
1、命令补齐,tab键
范例:1) ls -l mylearingtestfile --输入部分文件名后按tab键,系统可自动补全文件名
2) 输入shell命令时,按两次tab键会补全相关命令,若存在多个命令,则会列出所有命令
2、常用快捷键
1) 清屏 Ctrl+l
2) 删除当前命令行 Ctrl+U
3、浏览输入历史命令,history命令,系统会显示执行过的所有命令记录,输入!+对应命令编号,可执行对应的命令
范例:1) history --列出所有历史命令
2) !5 --执行第5个命令
4、命令别名,alias命令和unalias命令
语法:alias
范例:1) alias --查看系统所有的别名
2) alias copy=cp --定义copy为cp的别名
3) alias xrm="rm -i" --定义xrm为命令组合 rm -i 的别名
4) unalias copy --删除别名copy
5、重定向,输出(>和>>)、输入(<)和错误输出重定向(2>)
范例:1) ls -l > newfile --将 ls -l 命令执行的结果重定向输出到文件newfile中(写入方式:覆盖)
2) ls -l >> newfile --同上,区别是此时写入方式为追加
3) cp -R /user /backup/usr.back 2> /back.error --将/user拷贝至/backup/usr.back,并将错误信息写入文件/back.error
注意:1) >写入方式是覆盖,>>写入方式是追加
2) 0-STDIN,标准输入;1-STDOUT,标准输出;2-STDERR,标准错误输出
6、管道,将一个命令的输出传送给另一个命令,作为另一个命令的输入
范例:1) ls -l /etc | more --将 ls -l /etc 命令执行的结果作为more命令的参数输出
2) ls -l /etc | grep init --在 ls -l /etc 命令执行的结果中查找包含init字符串的行
7、命令连接符
1) ; --用分号间隔的各命令按顺序依次执行
2) && --前后命令执行存在逻辑与关系
例:command1 && command2,当command1命令执行成功后,command2命令才会执行,否则command2不执行
3) || --与&&对应,逻辑或
8、命令替换,将一个命令的输出作为另一个命令的参数
格式:命令1 `命令2`
范例:ls -l `which touch` --查看touch命令所在文件的详细信息
注意:此处`是命令发替换符(键盘上数字1左边的键),并不是单引号
9、信息提取命令,文件内容提取特定的信息,awk命令
格式:awk -F 分隔符
范例:1) awk -F: '$3==0 {print $1}' /etc/passwd --查看所有系统管理员,/etc/passwd一行信息如:root:x:0:0:root:/root:/bin/bash
2) awk -F: 'length($2) {print $1}' /etc/shadow --查看密码长度长度为0的用户
-----------------------------------------------------------其他命令--------------------------------------------------------------------
(八) 其他命令
1、显示日历,cal命令。
2、centos 7 开启防火墙端口例外
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
firewall-cmd --reload
firewall-cmd --zone=public --list-ports --查看开启端口
systemctl stop firewalld.service --关闭防火墙
systemctl start firewalld.service --关闭防火墙
systemctl restart firewalld.service --重启防火墙
3、命令行下
Ctrl + a 移至行首
Ctrl + e 移至行尾
Ctrl + d 删除光标所在处字符
4、top 命令按内存和CPU排序
Shift + P 或 (大写开启下)P --按CPU使用率从上到下排序
Shift + M 或(大写开启下)M --按内存使用率从上到下排序
5、shell 下使用计算变量,需要转码
00 08 * * * sh /root/bin/test.sh > /root/bin/data-$(date +\%F).txt
浙公网安备 33010602011771号