Linux常用命令
文件处理命令
ls-->显示目录下的所有文件
原意:list
语法:ls 选项[-ald] [文件/目录]
-a:显示所有文件,包括隐藏文件
-l: 详细信息的显示
-d:查看目录属性
例:ls -l /demo
cd-->切换目录/进入某个目录
原意:change directory
pwd-->显示当前所在的工作目录
原意:print working directory
语法:cd [目录]
例:cd / 切换到根目录
cd .. 回到上一级
touch-->创建空文件
语法:touch [文件名 或者 /指定的目录/文件名]
例:touch hj
注意:在哪个工作目录下面,就默认把文件创建在哪里,也可以指定创建在哪个目录下
touch /test/tx
mkdir-->创建新目录
原意:make directories
语法:mkdir [目录名]
例:mkdir work
cp-->复制文件或目录
原意:copy
语法:cp [源文件] [目标目录]
cp -R [目录] [目标目录] R大小写无所谓
例:cp file1 file2 dir1 将文件file1 、file2复制到目录dir1
cp -R dir1 dir2 将dir1下的所有文件及子目录复制到dir2
mv-->移动文件、更名
原意:move
语法:mv [源文件名或目录] [目标目录]
例:mv file1 file3 将当前目录下文件file1更名为file3
mv file2 dir2 将文件file2移动到目录dir2下
也可以边移动边修改名字
rm-->删除文件
原意:remove
语法:rm [文件名]
rm -rf [目录] 强制删除空目录/有子目录的目录,不会询问你是否删除
若用rm -r [目录] 确定就是,若不是空目录,目录里面有很多子目录或者文件,那么只能一个一个删除,每次都会询问,会疯掉的。
例:rm hjj
rm -rf /demo/capter
rm -r test
cat-->显示文件里面内容,适用与文件中内容比较少
原意:concatenate and display files
语法:cat [文件名]
例:cat /etc/issue
more-->分页显示文件内容
语法:more [文件名]
执行上面的命令后,可以通过以下来查看文件内容
(空格)或f 显示下一页
(Enter) 显示下一行
Q或q 退出
例:more /etc/services
head-->查看文件的前几行
语法:head -num [文件名]
例:head -5 /etc/services 显示文件中的前5行内容
tail-->查看文件的后几行
语法:tail -num [文件名]
例:tail -5 /etc/services 显示文件中的后5行内容
tail -f [文件名] 动态显示文件内容 适用于日志文件
ln-->产生链接文件
原意:link
语法:ln [源文件] [目标文件] 创建硬链接
ln -s [源文件] [目标文件] 创建软链接
例:ln -s /demo/hj /hj.soft
ln /demo/hj /hj.hard
权限管理命令
chmod-->改变文件或者目录权限
原意:change the permissions model of file
u:所有者
g:用户组
o:其他
+:加权限
-:减权限
=:重新赋值新权限
r=4
w=2
x=1
语法:chmod [{ugo}{+-=}{rwx}] [文件或者目录]
chmod [mode=421] [文件或目录]
例:chmod u+x /demo/hj
chmod g-r /demo/hj
chmod o=w /demo/hj
chmod 641 /demo 意思就是:u-->r+w=6 g-->r=4 o-->x=1
chown-->改变文件或目录的所有者
原意:change file ownership
语法:chown [用户] [文件或目录]
创建普通用户
useradd [用户名]
passwd [用户名]
例: chown helen file1
注意看,所有者从root变为了amy
chgrp-->改变文件或目录的所属组
原意:change file group ownership
语法:chgrp [用户组] [文件或目录]
例:chgrp amy /demo/hj
umask-->显示、设置文件的缺省权限
语法:umask
例:umask
umask -S
新创建目录的默认权限:
0022
0-->特殊权限位
022-->用户权限位,权限掩码值
777
- 022
_________
755
新创建文件的默认权限:
注意:缺省创建的文件不能授予可执行x权限
要改变创建文件或目录最开始默认的权限怎么改?
文件搜索命令
which-->显示系统命令所在目录
语法:which [命令名称]
例:which ls
find-->查找文件或目录
语法:find [搜索路径] [搜索关键字]
-name 文件名
*匹配任意字符 init*
find /etc -name init*
?匹配单个字符 init???
find /etc -name init???
-size 文件大小 注意:一般是用block数据块来表示 512字节=0.5kB
find /etc -size +102400 注意: +大于 -小于 查找大于50mb的文件
-user 文件所有者
find /home -user helen 查找所有者为helen的文件
-type 文件类型
f 二进制文件
l 软链接文件
d 目录
find /etc -name init* -a -type d 意思是查找名字为init开头并且文件类型为目录的文件
连接符:
-a -->and
find /etc -size +102400 -a -size -204800 查找大于50mb,小于100mb的文件
-o -->or
find /etc -size -102400 -o -size +204800 查找小于50mb,或者是大于100mb的文件
find ...-exec 命令 { } \;
-exec 表示执行后面的命令(不询问,直接执行)
-ok (弹出询问确认,然后需要自己去确实)
{}:表示find查询的结果
\ :表示转义符
; :表示语句的结束
find /etc -name inittab -exec ls -l {} \; 意思:在/etc下查找 inittab文件并显示其详细信息
-inum 文件节点数字
find ls -i 查找出来的文件能显示出i节点的值
find . -num 16 意思: . 表示在当前的目录下查找i节点为16的文件
每个而文件都有i节点,根据i节点查找
时间的查找规定:
c--change 改变 :表示文件属性被修改过,例如:所有者、所属组、权限等
a--access 访问
m--modify 修改 :表示文件的内容被修改过
1、天 ctime atime mtime
find /etc -mtime 1
2、分钟 cmin amin mmin
find /etc -mmin -120
locate-->寻找文件或目录
原意:list files in databases
语法:locate [搜索关键字]
例:locate file 意思:列出所有跟file相关的文件
updatedb-->建立更新整个系统目录文件的数据库
原意:update the slocate database
语法:updatedb
locate 跟updatedb一般是用在一起,locate跟find不同,locate是在已有的数据库里面查找,而find是在整个系统目录下查找
grep-->在文件内容中搜索字符串匹配的行并输出
语法:grep [指定字符串] [源文件
例:grep ftp /etc/services
帮助命令
man-->获得帮助信息
语法:man [命令或配置文件]
例:man ls 查看ls命令的帮助信息
man services 查看配置文件services的帮助信息
注意:若有跟命令名称相同的配置文件,那么,默认查看的是命令的帮助
man 5 passwd 表示查看配置文件的帮助
man 1 passwd 表示查看命令的帮助,1可以省略
info-->获得帮助信息,跟man命令差不多
语法:info [任何关键字]
例:info ls 查看ls命令的帮助信息
info services 查看services配置文件的帮助信息
whatis-->获得索引的简短说明信息
语法:whatis apropos [任何关键字]
例:whatis ls 获得ls命令的简短信息
【命令】 --help 获得该命令的选项设置
makewhatis 更新数据库
压缩解压命令
gzip-->压缩文件
语法:gzip 选项 [文件]
压缩后文件格式:.gz
例:gzip testfile
注意:
不保留源文件
只能压缩文件
gunzip-->解压缩.gz的压缩文件
语法:gunzip [压缩文件] 或者gzip -d [压缩文件]
例:gunzip testfile.gz gzip -d testfile.gz
tar --->打包目录
语法:tar 选项[cvf] [目录]
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩文件
压缩后的文件格式:.tar.gz
例:tar -zcvf dir1.tar.gz dir1 将目录dir1压缩成一个打包并压缩的文件
注意: 命令file 可以判断任何一个文件的类型 例如:file new
压缩解压命令:tar
tar命令解压缩语法:
-x 解包.tar文件
-v 显示详细信息
-f 指定解压文件
-z 解压缩
例:tar -zxvf dir1.tar.gz
zip-->压缩文件或目录(适用于windows系统跟linux系统)
语法:zip 选项[-r] [压缩后文件名称] [文件或目录]
-r 压缩目录
例:zip services.zip /etc/services
zip -r test.zip /test
unzip-->解压.zip的压缩文件
语法:unzip [压缩文件]
例:unzip test.zip
bzip2-->压缩文件
语法:bzip2 选项[-k] [文件]
-k 产生压缩文件后保留原文件
压缩后文件格式:.bz2
例:bzip2 -k file1
bunzip2-->解压缩
bunzip2 选项[-k] [文件]
-k 产生压缩文件后保留原文件
例:bunzip2 -k file1.bz2
网络通信命令
write -->向另外一个用户发送信息,以ctrl+d作为结束
语法:write <用户名>
例:write webmaster
注意:只能实时留言,不像qq
系统关机命令
wall-->向所有用户广播信息
语法:wall [message] [文件名]
例:wall happy new year
ping-->测试网络连通性
语法:ping 选项 IP地址
-c 表示发送的请求次数
ping -c 3 192.168.1.1 表示改变ping请求次数
-s 表示包大小
ping -s 6000 192.168.1.1 表示改变ping请求包的大小
例:ping 192.168.1.1
注意:丢包率
若ping别人的电脑不通,尝试ping 自己的ip地址,若再不行,就ping回还地址:172.0.0.1
ifconfig-->查看网络设置信息
语法:ifconfig 选项[-a] [网卡设备信息]
-a 显示所有网卡信息
例:ifconfig -a 不写a,默认就是显示所有网卡信息
注意:可以暂时修改ip地址:ifcofig eth0 192.168.1.94 表示把eth0的ip地址改为192.168.1.94
shutdown-->关机
语法:shutdown
例:shutdown -h now
reboot -->重启系统
语法:reboot
例:reboot
Shell应用技巧
Bash应用技巧
命令补齐:允许用户输入文件名起始的若干个字,按Tab键补齐文件名
命令历史:history命令可以显示以前执行过的命令列表
方向键↑和方向键↓可以查找以前执行过的命令
命令别名
例:alias copy=cp 表示给cp命令取个copy的别名
alias xrm='rm -f'
查看别名信息:alias
删除别名:unalias copy
输入/输出重定向
0 标准输入
1 标准输出
2 标准错误输出
>或>> 输出重定向 (写入文件)
例:ls -l /tmp>/tmp.msg 覆盖以前tmp.msg中的内容
date >> /tmp.msg 不会覆盖以前tmp.msg中的内容,追加到这个文件里面
< 输入重定向 (读取文件)
例:wall < /etc/motd
2> 错误输出重定向
例:cp -R /usr/backup/usr.bak 2> /bak.error
管道:将一个命令的输出传送给另一个命令,作为另一个命令的输入
使用方法:命令1|命令2|命令3....|命令n
例:ls -l /etc|more
ls -l /etc | grep init 查看etc目录下面的文件,并且文件包含字符串init的文件
命令连接符
; 间隔的命令按照顺序依次执行
&& 前后命令的执行存在逻辑与关系,只有&&前面的命令执行成功后,它后面的命令才被执行
|| 前后命令的执行存在逻辑或关系,只有||前面的命令执行失败后,它后面的命令才被执行
命令替换符:将一个命令的输出作为另一个命令的参数
格式为:命令1 `命令2`
例:ls -l `which touch` 表示which touch 查询出来的路径信息作为ls -l 的参数 ,查询touch的详细信息