linux常用命令
命令提示符
[root\@localhost \~]\
root: 当前登录用户名
localhost: 主机名
~: 当前所在位置。其中~具体是指家用户,root用户为/root,普通用户为/home/用户名
#: 超级用户提示符为#,普通用户提示符为\$
常用快捷键
ctrl+c 强制中止当前命令
ctrl+l 清屏
ctrl+a 光标移动到命令行首
ctrl+e 光标移动到命令行尾
ctrl+u 从光标所在的位置删除到行首
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索
命令基本格式
命令 [选项] [参数]
个别命令不遵守此格式
当有多个选项时,可以写在一起
选项分为简化选项(一个减号调用)和完整选项(两个减号调用)
其他常见命令
pwd #显示当前位置
clear #清屏
touch #新建
echo $PATH #查看环境变量路径(以:分隔)
vi(或vim) #查看/编辑文件
cat #查看文件
date #查看时间
chmod #赋权
more 文件名 #分屏查看
文件处理命令
ls
ls [选项] [文件或目录]
#选项 :
-a 显示所有文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
#文件详细信息的权限部分:
-rw-r--r--
第一位:文件类型,-文件,d目录,l软连接文件
234位: u所有者权限
567位: g所属组权限
8910位:o其他人权限
r:读 w:写 x:执行
详细信息的大小默认单位为字节
名称以.开头的文件为隐藏文件
创建目录 mkdir
mkdir -p [目录名]
#用途:创建目录
#选项:
-p: 递归创建
切换目录 cd
cd [目录]
#用途:切换所在目录
#简化操作
cd ~ 进入家目录
cd - 进入上一次目录
cd .. 进入上一级目录
删除目录 rmdir
rmdir [目录名]
#用途:删除目录
#只能删除空目录
删除文件或目录 rm
rm -rf [文件或目录]
#用途:删除文件或目录
#选项:
-r 删除目录
-f 强制
如果不加-f的话,每个文件都会单独询问
复制 cp
cp [选项] [原文件或目录] [目标目录]
#用途:复制
#选项:
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于 -pdr
重命名 移动 mv
mv [原文件或目录] [目标目录]
#用途:剪切或改名
#注意:该命令不需要加-r
创建软连接 ln
ln -s [原文件] [目标文件]
#用途:链接
#选项:
-s 创建软链接
硬链接
1.拥有相同的i节点和存储block块,可以看做是同一个文件
2.可通过i节点识别
3.不能跨分区
4.不能针对目录使用
软链接
1.类似windows的快捷方式
2.软连接拥有自己的i节点和block块,但是数据块中指保存原文件的文件名和i节点号,并没有实际的文件存储块位置数据。
3.lrwxrwxrwx l为软连接。软连接的权限都为rwxrwxrwx,但是实际权限是由原文件控制
4.修改任意文件,另一个都改变
5.删除源文件,软连接不可用
文件搜索命令
按文件名搜索 locate
locate [文件名]
在后台数据库中按文件名搜索,搜索速度更快
在/var/lib/mlocate这个后台数据库搜索
执行updatedb强制更新数据库
配置文件在/etc/updatedb.conf
查询命令 whereis
whereis [命令名]
#用途: 查询命令的命令。搜索命令所在路径及帮助文档的所在位置
#选项:
-b: 只查找可执行文件
-m: 只查找帮助文档
搜索命令路径 which
which [文件名]
#用途:搜索命令所在的路径及别名
条件搜索 find
find [搜索范围] [搜索条件]
#用途:搜索文件
#选项:
-name 根据名字匹配
-iname 不区分大小写
-user 按照所有者搜索
-nouser 查找没有所有者的文件
-inum [数字] 查找节点是[数字]的文件
#按天数搜索:
-mtime +天数 n天前修改的文件
天数 n天当天修改的文件
-天数 n天内修改的文件
-atime 文件访问时间
-ctime 改变文件属性
#按文件大小搜索
-size -25k 查找小于25KB的文件
25k 查找等于25KB的文
+25k 查找大于25KB的文件
#多条件查询
-a and,逻辑与,两个条件都满足
-o or,逻辑或,两个条件满足一个即可
#对搜索结果进行操作
结构: find [范围] [条件] -exec [操作] {} ;
find [范围] [条件] -ok [操作] {} ;
示例:
find /etc -size +20k -a -size -50k -exec ls -lh {} ;
#查询目录"/etc/"下,大于20KB且小于50KB的文件,并显示详细信息
如果需要匹配,则需要使用通配符,通配符是完全匹配。
应当避免在过大范围搜索,会非常耗费系统资源。
根据时间查询,一般用于搜索日志,删除超过n天的日志。
通配符
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
匹配搜索 grep
grep [选项] 字符串 文件名
#用途:在文件中匹配符合条件的字符串
#选项:
-i 忽略大小写
-v 排除指定字符串
grep为包含匹配,可使用正则表达式进行匹配
find命令和grep命令的区别
一般搜索文件名使用find,用通配符。如果搜索的是文件当中的内容,则使用正则表达式匹配。
- find命令:在系统当众搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
- grep命令:在文件中搜索符合条件的字符串,如果需要匹配,使用正则表达式匹配,正则表达式是包含匹配。
帮助命令
命令帮助 man
man [选项]
#用途:获取指定命令的帮助
#选项: man -f 命令 查看帮助可选的级别(相当于whatis 命令)
man [级别数字] 命令 查看指定级别的帮助
man-k 命令 查看所有包含命令的帮助信息
命令帮助 --help
用途:获取命令选项的帮助
命令帮助 info
info [选项]
#选项:
- 回车 进入子帮助页面(带有*号标记)
- u 进入上层页面
- n 进入下一个帮助小节
- p 进入上一个帮助小节
- q 退出
压缩和解压缩命令
常用压缩格式
.gz .bz2 .zip
.tar.gz .tar.bz2
.zip格式压缩
zip 压缩文件名 原文件
#用途:压缩文件
zip -r 压缩文件名 原目录
#用途:压缩目录
unzip 压缩文件 -d 解压位置
#用途:解压.zip文件
.gz格式压缩
gzip 原文件
#压缩为.gz格式的压缩文件,原文件会消失
gzip -c 原文件 > 压缩文件
#压缩为.gz格式,原文件保留
gzip -r 目录
#压缩目录下所有的子文件压缩为单独压缩包,不能压缩目录
gzip -d 压缩文件
#解压缩文件
gunzip 压缩文件
#解压缩文件
.bz2格式压缩
#【注意】bzip2命令不能压缩目录
bzip2 原文件
#压缩为.bz2格式,不保留原文件
bzip2 -k 原文件
#压缩之后保留原文件
bzip2 -d 压缩文件
#解压缩,-k保留压缩文件
bunzip2 压缩文件
#解压缩,-k保留压缩文件
.tar打包
tar -cvf [打包文件名] [原文件]
#用途:打包
#选项:
-c 打包
-v 显示过程
-f 指定打包后的文件名
tar -xvf 打包文件名
#用途:解包
#选项:
-x 解打包
-v 显示过程
-f 指定打包后的文件名
.tar.gz 和 .tar.gz2
tar -zcvf [压缩包名.tar.gz] [原文件]
#用途:压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz
#用途:解压缩.tar.gz格式
tar -jcvf 压缩包名.tar.bz2 原文件
#用途:压缩为.tar.bz2格式
tar -jxvf 压缩包名.tar.bz2
#用途:解压缩.tar.bz2格式
tar -ztvf 或者是 -jtvf 压缩包名
#用途:测试压缩包,查看压缩包里的内容
关机和重启命令
关机 shutdown
shutdown [选项] [时间]
#选项:
-c 取消前一个关机命令
-h 关机
-r 重启
#时间如果写now就是立刻执行
#命令最后加 &可以把命令放到后台执行,否则将无法在控制台做其他操作
例子:
shutdown -r 05:30 &
#在早上五点半执行重启,该重启任务放入后台执行
其他关机/重启命令
关机
halt
poweroff
init 0
#以上三条命令不安全,可能不会正确的保存关机状态
重启
reboot
init 6
#尽量不使用init指令,理由同上
退出登录
logout
#每次管理结束后尽量使用logout退出
其他常用命令
挂载命令 mount
参数说明
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
#选项:
-t 文件系统,加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统
-o 特殊选项,可以指定挂载的额外选项
额外选项:
参数 | 说明 |
---|---|
exec/noexec | 执行、不执行,设定是否允许在文件系统中执行可执行文件,默认是exec允许。 |
atime/notime | 更新访问时间/不更新访问时间。访问文件分区时,是否更新文件的访问时间,默认为更新。 |
async/sync | 异步/同步 |
auto/noauto | 自动/手动。mount -a命令执行时,是否会自动安装/etc/fstab文件内容挂载,默认为自动 |
defaults | 自定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项。 |
remount | 重新挂载已经挂载的文件系统,一般用于指定修改特殊权限。 |
rw/ro | 读写/只读,文件系统挂载时,是否具有读写权限,默认是rw |
suid/nosuid | 具有/不具有SUID权限,设定文件系统是否允许普通用户挂载,默认是不逊于,只有root可以挂载分区。 |
user/nouser | 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许,只有root可以挂载分区。 |
usrquota | 写入代表文件系统支持用户磁盘配额,默认不支持。 |
grpquota | 写入代表文件系统支持组磁盘配额,默认不支持。 |
例子
mount -o remount,noexec /home
#重新挂载/home分区,并使用noexec权限
mount
#查询系统中已经挂载的设备
mount -a
#根据配置文件/etc/fstab的内容,自动挂载
挂载光盘
mkdir /mnt/cdrom/
#建立挂载点
mount -t iso9660 /dev/cdrom /mnt/cdrom/
#挂载光盘
mount /dev/sr0 /ment/cdrom/
#挂载光盘的另一种方式(更推荐使用这种方式)
卸载命令
umount 设备文件名或挂载点
umount /mnt/cdrom
#或
umount /dev/sr0
挂载U盘
fdisk -l
#查看U盘设备文件名
mount -t vfat /dev/设备名 /mnt/usb/
#挂载U盘
#Linux默认不支持NTFS文件系统的
用户查看命令
w
w [用户名]
列 | 含义 |
---|---|
USER | 登录的用户名 |
TTY | 登录终端 |
FROM | 从哪个IP登录 |
LOGIN@ | 登录时间 |
IDLE | 用户闲置时间 |
JCPU | 指的是和该终端链接的所有进程占用的时间。这个时间并不包括过去的后台作业时间,单却包括当前正在运行的后台作业所占用的时间 |
PCPU | 指当前进程所占用的时间 |
WHAT | 当前正在运行的命令 |
who
只能看到用户名,来源终端,登录IP
last
查询当前登录和过去登录的用户信息
last命令默认读是读取/var/log/wtmp文件的数据
命令输出:
用户名
登录终端
登录IP
登录时间
退出时间(在线时间)
lastlog
查询所有用户最后一次登录的时间
last命令默认读是读取/var/log/lastlog文件的数据
命令输出:
用户名
登录终端
登录IP
最后一次登录时间
Comments NOTHING