该博文内容是建立在centos6.6的基础上,所有个别差异请百度解决。。。
目前Linux总共命令大约有3000多种,常用的200多种,要熟悉精通的70种左右
人为将Linux命令进行分类:
一、命令基本格式
1>命令提示符
[root@localhost ~]#
root 当前登录用户为管理员用户
localhost 主机名
~ 当前所在目录(家目录,初始登录目录,超级用户的架是根目录下的一级目录/root,普通用户的家目录是home下的二级目录 /home/userl/) pwd 显示当前目录 cd 切换目录
# 超级用户提示符
普通用户提示符是$
2> 命令格式
命令 [选项] [参数]
注意: 个别命令使用不遵循此格式,
当有多个选项时,可以写在一起
简化选项与完整选项
-a 等于 --all 简化 用一个减号- 完整选项 用两个减号--
1、查询目录中的内容 ls
ls [选项] [文件或者目录]
选项:
-a 显示所有文件,包括隐藏文件
-l(longlist) 显示详细信息 // 别名:ll
-rw-r--r--. 默认是10位
第一位 - 文件类型(- 文件 d 目录 l 软链接文件(快捷方式)) 共有7中文件类型:还有其他四种块设备文件,字符设备文件,套接字文件,管道文件
后面的9位,每三位为一组,例如:rw-代表文件的u所有者、r--代表g所属组、r--代表o其他人(用户跟文件之间的关系),目的是为了区分权限,同时r读、w写、x执行
"." 代表ACL权限,出现在centos6之后
”1“ 代表 引用计数
第一个"root"代表文件的所有者
第二个"root"代表文件的所属组
eg:1645 此处数字代表文件的大小 单位为byte(字节)可用 ls -lh 其中h是human的缩写 查看文件的大小,是以k,M, 等容易读的单位结束 人性化显示
时间为最后一次修改文件的时间
最后一列为文件名
-d 查看目录属性 d(direct)
ls -ld 查看目录本身的权限
-h 人性化显示文件大小
-i 显示inode 显示i节点 前面是ID号,后面是文件名
Linux文件中 以 "."开头文件为隐藏文件 是系统文件
二、文件处理命令
目录处理命令
目录相当与windows下的文件夹
2、 建立目录 mkdir 创建文件 touch [文件名]
mkdir -p [目录名]
-p 递归创建: 创建一连串的目录
命令英文原意 :make directories
3、 切换目录 cd
cd [目录]
英文原意:change directory // Ctrl+L 清屏
简化操作:
cd ~ 进入当前用户的家目录 直接用cd也可以
cd - 进入上次目录
cd .. 进入上一级目录 windows下是cd.. 中间没有空格
cd . 进入当前目录
相对路径:参照当前所在的目录,进行查找
eg: [root@imooc ~]# cd ../usr/local/src/
绝度路径:从根目录下开始指定,一级一级递归查找。在任何目录下,都能进入指定位置
eg: [root@imooc ~]# cd /etc/
刚开始学推荐使用绝对路径
Tip : Tab 命令或目录补全
4、查看所在目录位置:pwd
pwd
英文原意: print working directory
5、删除空目录: rmdir // 极其少用了
rmdir [目录名]
英文原意: remove empty directories
文件处理命令
6、删除文件或者目录:rm rm [文件名] 可以直接删除文件
rm -rf [文件或者目录] // 习惯用法,但是删除的时候需要特别小心
英文命令原意:remove
选项:
-r 删除目录
-f 强制
7、复制命令: cp
cp [选项] [原文件或者原目录] [目标文件]
命令英文原意:copy
选项:
-r 复制目录
-p 连文件带属性复制
-d 若原文件是链接文件,则复制链接属性
-a 相当于 -pdr 复制后的属性完全一模一样 包括时间
8、剪切或改名命令:mv
mv [原文件或目录] [目标目录] // 在同一目录下时,为改名命令
命令英文原意:move // 不在同一目录下时,为剪切命令
<1>/根目录下的bin和sbin,/usr目录下的bin和sbin,这四个目录都是用来保存系统命令的。 区别在于,bin目录下普通用户可以执行其内部的命令,而sbin中的命令只能使用超级用户才能执行
<2>/boot中保存的是启动系统的数据,不能随便操作,
<3>/dev 目录下基本都是硬件文件,不太常用
<4>/etc目录保存的系统默认配置文件目录,在后续的服务环境搭载时要经常用
<5>/home普通用户家目录
<6>/root是超级用户家目录
<7>/lib是Linux函数库的位置
<8>/misc挂磁带机 /media挂光盘 /mnt挂U盘,移动硬盘 空目录,用来挂载相应的外设
<9>/proc和/sys目录不能直接操作,这两个目录保存的是内存的过载点,是直接写入内存的
<10>/tmp,临时数据可以保存在这里
<11>/var,用来保存系统可变文档的目录
综上所述:可以在家目录root或home,以及tmp目录下随便方内容。
链接处理命令
9、链接命令:ln
ln -s [原文件] [目标文件]
命令英文原意:link
功能描述:生成链接文件
选项: -s 创建软链接 (soft)
硬链接特征: ln [原文件] [目标文件] 不建议使用
1>拥有相同的i节点和储存block块,可以看做是同一个文件
2>可通过i节点识别
3>不能跨分区
4>不能针对目录使用
软链接特征: // 软链接原文件一定要写绝对路径 要不然不再同一目录下会报错
1>类似Windows快捷方式,简直一模一样
2>软链接拥有自己的i节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据
3>lrwxrwxrwx I软链接
软链接文件权限都是rwxrwxrwx
4>修改任意文件,另一个都改变
5>删除原文件,软链接都不能使用
三、文件搜索命令
10、 文件搜索命令locate 奇怪了我的centos中没有这个命令???????????
locate 文件名 只能搜索文件名
在后台数据库中按文件名搜索,搜索速度更快
搜索位置: /var/lib/mlocate
#locate命令所搜索的后台数据库
updatedb 更新数据库
实则locate必须遵守 /etc/updatedb.conf配置文件进行搜索的
PRUNE_BIND_MOUNTS = "yes"
#开启搜索限制
PRUNEFS =
#搜索时,不搜索的文件系统
PRUNENAMES =
#搜索时,不搜索的文件类型
PRUNEPATHS =
搜索时,不搜索的路径
命令搜索命令whereis与which
11、搜索命令的命令whereis 类似有趣whoami 但是whatis 没有找到??????????
whereis 命令名 #搜索命令所在路径及帮助文档所在位置,只能查找系统命令
选项:
-b 只查找可执行文件
-m 只查找帮助文件
12、搜索命令的命令which
which 文件名 #搜索命令所在路径及别名
以上两个命令只能搜索的是外来系统的命令,不能搜索类似cd的系统内置命令
PATH 环境变量
PATH环境变量: 定义的是系统搜索命令的路径
[root@localhost ~]# echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/Watt/bin
13、文件搜索命令find
Linux中最强大的搜索命令
find [搜索范围] [搜索条件] #搜索文件
find / -name install.log
#避免大范围搜索,会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符进行匹配,通配符是完全匹配。
Linux中通配符
* 匹配任意字符
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
find /root -iname install.log #不区分大小写
find /root -user root #按照所有者进行搜索
find /root -nouser #查找没有所有者的文件
find /var/log/ -mtime +10 #查找10天前修改的文件
-10 10天内修改的文件
10 10天前修改的文件
atime 文件访问的时间
ctime 改变文件属性
find . -size 25k #查找文件大小是25KB的文件 按照千字节,要小写,按照兆字节,要大写
+25k >25KB的文件
-25k <25KB的文件
find . -inum 262422 #查找i节点是262422的文件
find /etc -size +20k -a -size -50k
#查找/etc/目录下,大于20KB并且小于50KB的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#查找/etc目录下,大于20KB并且小于50KB的文件,并且显示详细信息
#-exec/ -ok 命令{} \; 对搜索结果执行操作 必须能够直接对前面筛选的命令进行操作
14、字符串搜素命令grep
grep [选项] 字符串 文件名 #在文件当中匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除指定字符串
find命令与grep命令的区别
find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符进行匹配,通配符是完全匹配。
grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,则使用正则表达式进行匹配,正则表达式是包含匹配。
四、帮助命令
15、man
man 命令 #获取指定命令的帮助
man ls #查看ls的帮助
在我的linux上运行了下,显示不存在man,so 百度解决之。。。。。。
百度结果需要yum install man* 安装 ,so ,试试呗 (还有一种方案apt-get install man ,显示apt-get命令也不存在) man* 比man范围要更广。。。
eg:定位查找/-d 按n向下翻,按shift向上翻
man的级别
1:查看命令的帮助
2:查看可被内核调用的函数的帮助
3:查看函数和函数库的帮助
4:查看特殊文件的帮助(主要是/dev目录下的帮助)
5:查看配置文件的帮助
6:查看游戏的帮助
7:查看其他杂项的帮助
8:查看系统管理员可用命令的帮助
9:查看和内核相关的文件的帮助 有的文档中没有
查看命令拥有哪个级别的帮助
man -f 命令 相当于 whatis 命令
eg: man -5 passwd
man -4 null
man -8 ifconfig
查看和命令相关的所有帮助
man -k 命令 相当于apropos 命令
eg: aprppos passwd 记不清完整命令的时候
其他帮助命令
16、选项帮助
命令 --help #获取命令选项的帮助
eg: ls --help
17、shell内部命令帮助
help shell内部命令 #获取shell内部命令的帮助
例如: whereis cd #确定是否是shell内部的命令
help cd #获取内部命令的帮助
18、详细命令帮助 info
info 命令 操作比较繁琐
-回车:进入子帮助页面(带有*号标记)
- u: 进入上层页面
- n: 进入下一个帮助小节
- p: 进入上一个帮助小节
- q: 退出
五、压缩与解压缩命令
常用的压缩格式: .zip .gz .bz2
19、 .zip压缩格式 使用yum install zip* 进行安装 和Windows中的压缩格式相同
zip 压缩文件名 源文件 #压缩文件
zip -r 压缩文件名 源文件 #压缩目录
20、 .zip格式解压缩 需要使用yum install unzip*进行安装
unzip 压缩文件 #解压缩.zip文件或者目录
21、 .gz格式压缩
gzip 源文件 #压缩为.gz格式的源文件,源文件会消失
gzip -c 源文件 > 压缩文件 相当于输出文件重定向
#压缩为.gz格式,源文件会保留
eg: gzip -c hello > hello.gz
gzip -r 目录 #压缩目录下所有的子文件,但是不能压缩目录
22、.gz格式的解压缩
gzip -d 压缩文件 #解压缩文件
gunzip 压缩文件 #解压缩文件
23、.bz2格式压缩
bzip2 源文件 #压缩为.bz2格式,不保留源文件
bzip2 -k 源文件 #压缩之后保留源文件
注意:bzip2命令不能压缩目录
24、.bz2格式的解压缩
bzip2 -d 压缩文件 #解压缩,-k保留压缩文件
bunzip2 压缩文件 #解压缩,-k保留压缩文件
常用压缩格式: .tar.gz .tar.bz2
25、打包命令tar
tar -cvf 打包文件名 源文件
选项:
-c 打包
-v 显示过程
-f 指定打包后的文件名
例如: tar -cvf watt.tar watt
26、解打包命令
tar -xvf 打包文件名
选项: -x: 解打包
eg: tar -xvf watt.tar
27、.tar.gz 压缩格式
其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式
tar -zcvf 压缩包名.tar.gz 源文件
选项:
-z:压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz
选项:
-x:解压缩.tar.gz格式
28、.tar.bz2压缩格式
tar -jcvf 压缩包名.tar.bz2 源文件
选项:
-z: 压缩为.tar.bz2格式
tar -jxvf 压缩包名.tar.bz2 -C 指定解压缩位置
选项:
-x: 解压缩.tar.bz2格式
-t: 效果没有出来????????????????
六、关机和重启命令
29、shutdown命令 //date 查看当前时间
[root@localhost ~]# shutdown [选项] 时间 now是立即
选项:
-c: 取消前一个关机命令
-h: 关机
-r: 重启 重启前一定要更加注意。。。。。。。。你操作的是服务器
执行关机命令shutdown -r 23:00后,不能操作其他东西,所以需要按Ctrl+c 控制退出
或者执行shutdown -r 23 :00 & 加一个后台符,就可以继续其他操作了
如果不想关机了,那么执行 shutdown -c 取消前一个关机命令
尽可能不要关机,不能远程关机,一般使用远程重启,
30、其他关机命令
[root@localhost ~]# halt
[root@localhost ~]# poweroff
[root@localhost ~]# init 0
这几个命令只需要做了解,不安全
31、其他重启命令
[root@localhost ~]# reboot 较安全,可以使用
[root@localhost ~]# init 6
系统运行级别
0 关机
1 单用户 相当于Windows中的安全模式,启动最小的系统
2 不完全多用户,不含NFS服务(文件共享服务)
3 完全多用户 字符界面
4 未分配
5 图形界面
6 重启
[root@localhost ~]# cat /etc/inittab
#修改系统默认运行级别
id:3:initdefault: 开机进入字符界面 如果是5 则开机进入图形界面X11
[root@localhost ~]# runlevel
#查看系统运行级别 运行后显示出前一个级别 和当前级别 eg: 5 3 N代表空
Linux可以允许很多很多用户同时登录,所以退出一定要小心。。。。。。。。。。。
32、退出登录命令 exit 群友说Ctrl+D也可以,但是不安全
[root@localhost ~]# logout
运行了之后,系统提示用“exit”命令。。。。。。。。
要养成良好的操作习惯。。。
突然事件:::
在上面的练习中,因为习惯使用ll查看root家目录下的文件 然后总是显示total 0,误以为该目录下不存在任何文件,使用了rm -rf /root 操作,将root下的文件包含隐藏文件都删除了
再次启动linux时,执行[Watt@localhost ~]$ su 操作,并输入密码后,变成了bash-4.1#
解决办法:
上面的三条命令可以直接写为cp .bash_logout .bash_profile .bashrc /root/
七、其他常用命令
挂载命令
33、查询与自动挂载
[root@localhost ~]# mount #查询系统中已经挂载的设备
[root@localhost ~]# mount -a #依据配置文件/etc/fstab的内容,自动挂载
34、挂载命令格式
[root@localhost ~]# mount [-t 文件系统] [-o 特殊选项] 设备 文件名 挂载点
选项:
-t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统
-o特殊选项: 可以指定挂载的额外选项
eg: mount -o remount,noexec /home/ #对挂载分区执行取消可执行权限,
35、挂载光盘
1、第一步,在虚拟机中放入光盘
2、[root@localhost ~]# mkdir /mnt/cdrom/ #建立挂载点
3、[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/
#挂载光盘
简写: [root@localhost ~]# mount /dev/sr0 /mnt/cdrom/
linux 用完光盘必须要卸载
36、卸载命令
[root@localhost ~]# umount 设备文件名或者挂载点
[root@localhost ~]# umount /mnt/cdrom 卸载前必须退出,而且必须卸载
真是环境和虚拟机必须卸载,一旦强迫,,系统会出现错乱
37、挂载U盘
[root@localhost ~]# fdisk -l #查看U盘设备文件名
[root@localhost ~]# mount -t vfat /dev/sdb1/ /mnt/usb/
注意:Linux默认是不支持NTFS文件系统的 #要识别的话需要对内核进行编译
或者安装NTFS-g32 NTFS只能做只读···········································
网络传递才是最常用的。。。。。。。。。。。。。。。。。。。
驱动直接加载在内核中。。。。。。。。。。。。。
用户登录查看和用户交互命令
查看用户登录信息
38、 w 用户名
命令输出:
USER:登录用户名;
TTY: 登录终端; #tty1:本机终端; pts/0 远程终端
FROM: 从哪个IP地址登陆;
LOGIN@:登陆时间;
IDLE: 用户闲置时间;
JCPU: 指的是和该终端链接的所有进程占用的时间。这个世间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间;
PCPU: 指的是当前进程所占用的时间
WHAT: 当前正在运行的命令
39、who 用户名
命令输出:
--用户名
--登录终端
--登陆时间(登录来源IP地址)
查看当前登录和过去登录的用户信息
40、last 非常重要的命令,可以查看是否有外部入侵
last命令默认读取/var/log/wtmp文件数据
命令输出
--用户名
--登录终端
--登录IP
--登陆时间
--退出时间(在线时间)
41、lastlog 查看所有用户的最后一次登陆时间
lastlog命令默认是读取/var/log/lastlog文件内容
命令输出
---用户名
----登录终端
--登录IP
--最后一次登陆时间