Linux 笔记分享三:Linux 命令
一、命令
1、命令提示符
[root@localhost ~]#
root: 当前登录的用户
localhost: 主机名(linux不同于windows,主机名可以相同)
~: 当前所在目录(~代表家目录)
#: 超级用户的提示符
$: 普通用户的提示符
2、命令格式
命令 [选项] [参数]
个别命令使用不遵循此格式
当有多个选项时,可以写到一起
简化选项与完整选项 -a 等于 --all
选项作用是调节命令的功能
3、ls
查询目录中的内容
ls [选项] [文件或目录]
- 选项
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
- 注意
不加文件或目录,显示当前目录
ll
命令是ls -l
的简化所以以点开头的文件都是隐藏文件
-d 查看当前目录的有关属性,即./
-i 查看文件存储的i节点号
- ll返回信息含义
总用量 4
-rw-------. 1 root root 1541 6月 15 00:39 anaconda-ks.cfg
-rw-------: 代表文件或目录的权限
.: ACL权限
1: 引用计数
root: 文件或目录所有者
root: 文件或目录所属组
1541: 文件大小,单位字节b
6月 15 00:39: 最后一次文件或目录修改时间
- 权限表示方式
二、文件处理命令
目录也是文件,可以叫目录文件
1、mkdir
建立目录
mkdir -p [目录名]
-p 递归创建
英文: make directories
2、cd
切换所在目录
cd [目录]
- 注意
英文: change directories
ctrl+l
: 清屏
- 简化操作
cd ~
或者cd
: 进入当前用户的家目录
cd /
: 返回根
cd ..
: 进入上一级目录
cd -
: 进入上一次目录
- Tab键
补全命令或者路径
3、pwd
查询所在目录位置
pwd
print working directory
4、rmdir
删除空目录
rmdir [目录名]
remove empty directories
基本不用这个命令,用下一个
5、rm
删除文件或者目录
rm -rf [文件或目录]
-r 删除目录
-f 强制
英文: remove
- 注意
这个命令很危险,字符界面linux是没有回收站的,删了就没啦
rm -rf /
: 终结命令,这是原子弹,用了就gameover啦
6、cp
复制命令
cp [选项] [原文件或目录] [目标目录]
- 选项
-r 复制目录,不加则复制文件
-p 连带文件属性复制(文件时间问题)
-d 若原文件是链接文件,则复制链接属性
-a 相当于 -pdr
英文: copy
- 注意
如果目标文件有文件名则改名复制,否则原名复制
7、mv
剪切或改名命令
mv [原文件或目录] [目标目录]
move
- 注意
mv命令不需要加-r,默认支持文件和目录的移动
如果目标目录加文件名,则实现改名移动
8、touch
新建空文件
touch [文件名]
在当前目录新建
9、常用目录作用
- /
根目录
- /bin 和 /sbin
根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的
bin目录下的命令是任何用户都可以执行,sbin目录下的命令只有超级用户可以执行
- /boot
启动目录,存放启动和引导文件
- /dev
特殊文件保存目录,保存硬件文件等
- /etc
放配置文件的目录
- /home
普通用户的家目录
- /root
超级用户的家目录
- /lib
存放linux函数库的位置
- /media
外接光盘挂载空目录
- /misc
磁外接挂载空目录
- /mnt
U盘、移动硬盘外接挂载空目录
- /proc 和 /sys
这两个目录保存的是内存的挂载点,所以不能直接操作,因为内存有限,且重启数据丢失
- /tmp
临时目录
- /usr
系统软件资源目录
- /var
系统可变文档目录
三、链接命令
1、ln
生成链接文件
ln -s [原文件] [目标文件]
- 选项
-s 创建软链接
英文: link
- 硬链接
拥有相同的i节点和存储block块,可以看做是同一个文件
可以通过i节点识别
不能跨分区
不能针对目录使用
我的理解是:在相同分区存储空间创建两个文件,指向同一个索引
区别太小,限制太多,不建议使用
- 软链接
类似windows快捷方式
软链接拥有自己的i节点和block块,但是数据块中只保存原文件的路径和i节点,并没有实际的文件数据
lrwxrwxrwx l为软链接 且软链接文件权限都为rwxrwxrwx
修改任意文件,另一个都改变
删除原文件,软链接不能使用
重点:软链接原文件必须写绝对路径
四、搜索命令
1、locate
文件搜索命令
locate [部分文件名]
locate是从
/var/lib/mlocate
数据库中进行搜索,find是遍历整个文件夹,所以find比较耗费资源,当然也就比较慢locate不能马上搜索到新建的文件,因为
/var/lib/mlocate
数据库是一天一更新locate是搜索的是数据库,所以默认根据公共配置文件搜索全部文件
不同的linux版本的locate数据库名字可能不同
缺点是只能按照文件名搜索
- 公共配置文件
/etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes"
# 开启搜索限制
PRUNEFS = "..."
# 搜索时,不搜索的文件系统
PRUNENAMES = "..."
# 搜索时,不搜索的文件类型(扩展名)
PRUNEPATHS = "..."
# 搜索时,不搜索的路径
2、updatedb
更新locate数据库
updatedb
默认全局更新
3、whereis
搜索命令所在路径及帮助文档所在位置
whereis [命令名]
-b 只查找可执行文件
-m 只查找帮助文件
4、which
搜索命令所在路径及命令的别名
which [命令名]
为什么ls会有颜色,通过
which ls
可以看到ls的别名是ls --color=auto
,原因就是这个color等于auto
- whereis和which的注意事项
不是所有的命令都能通过这两个命令找到,比如cd,原因是cd是linux中shell的内置命令
shell初步认为是字符界面
因此上述两个命令只能找外部安装的命令
- 查看PATH环境变量
echo $PATH
5、find
强大的搜索命令
find [搜索范围] [搜索条件]
- 根据文件名搜索
find /root -name install.log
避免大范围搜索,尤其是在线上,非常耗费资源
文件名搜索默认完全匹配
要想实现模糊查找,请加通配符,且文件名用双引号括起来
通配符
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
- 根据文件名搜索(不区分大小写)
find /root -iname install.log
其它情况同上一个
- 根据文件所有者搜索
find /root -user root
- 查找没有所有者的文件(垃圾文件)
find /root nouser
没有所有者的文件是垃圾文件,可以清理
注:内核生成的文件和外来文件是没有所有者的,这不是垃圾文件
- 根据文件时间搜索
find /var/log -mtime +10
- 文件时间条件
atime 文件访问时间
ctime 修改文件属性时间
mtime 修改文件内容时间
- 时间条件,默认天
-10 10天内修改的文件
10 10天当天修改的文件
+10 10天前修改的文件
- 根据文件大小搜索
find . size 25k
-25k 小于25KB的文件
25k 等于25KB的文件
+25k 大于25KB的文件
- 注意
.: 代表当前目录
默认单位是一个扇区,不要用
千字节小写k
兆字节大写M
- 根据i节点搜索
find . -inum 262422
这个命令与
ls -i
配合使用
- 根据文件大小搜索(与或运算)
find /etc -size +20k -a -size -50k
上面代表搜索/etc下大于20k且小于50k的文件
-a and 与运算
-o or 或运算
- 对搜索结果执行操作
find /etc -size +20k -a -size +50k -exec ls -lh {} \;
搜索到内容,并显示详细信息
-exec 命令 {} \;
,此为固定格式,对搜索结果执行操作
- 一个删除操作
find /root -name "cangls*" -exec rm -rf {} \;
6、grep
在文件中匹配符合字符串的行,并列出
grep [选项] 字符串 文件名
-i 忽略大小写
-v 排除指定字符串,取反
7、grep与find的区别
- find命令: 在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
- grep命令: 在文件当中搜索符合条件的字符串,如果匹配,使用正则表达式进行匹配,正则表达式时包含匹配
五、帮助命令
1、man
获取指定命令的帮助格式
man [命令]
英文: manual
返回格式里的NAME: 是命令的作用解释
返回格式里的SYNOPSIS: 是命令的格式
命令帮助主要是OPTION的相关解释
OPTION一般包含简和全两种格式
- 筛选信息
... ...
/OPTION
例如:
... ...
/-d
以上会筛选出含有-d的OPTION选项
n
键向下跳,shift+n
向上跳
- man的级别
1: 查看命令的帮助
2: 查看可被内核调用的函数的帮助
3: 查看函数和函数库的帮助
4: 查看特殊文件的帮助(主要是/dev目录下的文件)
5: 查看配置文件的帮助
6: 查看游戏的帮助
7: 查看其它杂项的帮助
8: 查看系统管理员可用命令的帮助
9: 查看和内核相关文件的帮助(这个好像取消掉了)
例如:
man ls
返回:
LS(1) User Commands LS(1)
... ...
上面的LS(1)就是命令的帮助
- 查看命令有哪些级别的帮助
man -f 命令
或者:
whatis 命令
- 查看具体级别的帮助(默认最小级别)
man 级别数字 命令
例如:
man 5 passwd # 查看passwd的配置帮助
man 4 null # 查看null特殊文件的帮助,null相当于黑洞
man 8 ifconfig # 查看ip配置帮助
- 查看与命令相关的所有命令的帮助(相当于模糊搜索)
man -k 命令
或者:
apropos 命令
例如:
apropos passwd
这个适用于忘了命令全名,但能记得一部分字符
2、--help
获取命令的选项帮助
命令 --help
例如:
ls --help
这个可以输出中文,因为安装的时候用的中文以及远程工具支持中文
3、help
获取shell内部命令的帮助
help shell内部命令
例如:
help cd
- 如何确定一个命令是否是shell内部命令
whereis 命令
看是否有执行文件,有则为外部命令,无则为内部命令
- help和man的区别
help只能获取shell内部命令的帮助,不能获取shell外部命令的帮助
man能获取shell内部命令的帮助,但是获取的是全部shell内部命令的帮助
4、info
获取命令的详细帮助(非常全,相关的都给你列出来)
info 命令
回车: 进入子帮助页面(在带有
*
号的地方)u: 进入上层页面
n: 进入下一个帮助小节
p: 进入上一个帮助小节
q: 退出
五、压缩命令
常见压缩格式:
.zip
.gz
.bz2
常见压缩格式:
.tar.gz
.tar.bz2
1、.zip格式
压缩文件
zip 压缩文件名 源文件
压缩目录
zip -r 压缩文件名 源目录
解压缩zip文件
unzip 压缩文件
2、.gz格式
- 压缩
gzip 源文件
压缩为.gz格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件
例如:
gzip -c cangls > cangls.gz
压缩为.gz格式,源文件会保留
>: 作用是将命令的结果输入到后面的文件中
gzip -r 目录
压缩目录下所有的子文件(挨个压缩),但是不能压缩目录
- 解压缩
gzip -d 压缩文件
或者:
gunzip 压缩文件
解压后,原压缩文件同样消失
同样支持解压缩目录,但是是挨个解压目录里面的gz压缩文件,需要加-r
3、.bz2格式
- 压缩
bzip2 源文件
压缩为.bz2格式,不保留源文件
bzip2 -k 源文件
压缩之后保留源文件
bzip2命令不能压缩目录
- 解压缩
bzip2 -d 压缩文件
或者:
bunzip2 压缩文件
加-k,保留压缩文件
4、tar
打包(解包)命令(解决.gz和.bz2不能压缩目录的缺陷)
tar [选项] 打包文件名 源文件
例如:
tar -cvf longzls.tar longzls
- 选项
-c: 打包
-x: 解包
-t: 查看包里面的内容
-v: 显示过程
-f: 指定打包后的文件名
- 注意
操作步骤先打包后压缩
源文件只有在-c的时候有
5、.tar.gz格式
其实.tar.gz格式是先打包为.tar格式,在压缩为.gz格式
下面是一步处理.tar.gz格式
- 压缩
tar -zcvf 压缩包名.tar.gz 源文件
- 指定压缩位置和多文件压缩
tar -zcvf /tmp/压缩包名.tar.gz 文件1 文件2 ...
- 解压
tar -zxvf 压缩包名.tar.gz
- 指定解压位置
tar -zxvf 压缩包名.tar.gz -C /tmp/
6、.tar.bz2格式
其实.tar.bz2格式是先打包为.tar格式,在压缩为.bz2格式
下面是一步处理.tar.bz2格式
- 压缩
tar -jcvf 压缩包名.tar.bz2 源文件
- 指定压缩位置和多文件压缩
tar -jcvf /tmp/压缩包名.tar.bz2 文件1 文件2 ...
- 解压
tar -jxcf 压缩包名.tar.bz2
- 指定解压位置
tar -jxvf 压缩包名.tar.bz2 -C /tmp/
六、关机与重启命令
1、shutdown
关机与重启
shutdown [选项] 时间(填写实际时间,而不是多少时间之后)
例如:
shutdown -r now
- 选项
-c: 取消前一个关机命令(因为有时间,所以可以取消)
-h: 关机
-r: 重启
- 注意
shutdown命令比较安全,能够正确保存服务器数据,最好用这个
- 后台符执行,不占用shell界面
shutdown -r 05:30 &
&: 后台符
2、其它关机与重启命令
关机
halt
poweroff
init 0
重启
reboot
init 6
以上关机和重启不怎么用,不安全(reboot还行,能用用)
- 关于init后面的数字问题
这个叫系统运行级别
0: 关机
1: 单用户(类似windows的安全模式,进去进行系统修复)
2: 不完全多用户,不含NFS服务(NFS: 文件共享服务)
3: 完全多用户(字符界面就是3级别)
4: 未分配
5: 图形界面
6: 重启
init是调用系统级别的命令
- runlevel
查看当前系统级别和上一次的系统级别
runlevel
- 定义系统的默认运行级别
cat /etc/inittab
进去看一下,然后用vim工具修改,保存即可
X: 在linux中代表图形界面
3、logout
退出登录
logout
- 注意
远程工具关闭前,必须退出登录,防止用户卡着,尤其windows(注销)
七、其它常用命令
1、mount
查看系统中已经挂载的设备
mount
依据配置文件/etc/fstab的内容,自动挂载
mount -a
正式挂载
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
- 选项
-t 文件系统: 加入文件系统类型来指定挂载的类型,可以使ext3、ext4、iso9660等文件系统
-o 特殊选项: 可以指定挂载的额外选项
- 例如修改/home挂载点的执行权限
mount -o remount,noexec /home
上述命令,会禁用/home下的执行文件
- 挂载光盘
建立挂载点
mkdir /mnt/cdrom
挂载光盘
mount -t iso9660 /dev/cdrom /mnt/cdrom
或者:
mount /dev/sr0 /mnt/cdrom
- 挂载U盘
查看系统中已经识别的硬盘
fdisk -l
挂载U盘
mount -t vfat /dev/sdb1 /mnt/usb
2、umount
卸载命令
umount 设备文件名或者挂载点
例如:
umount /mnt/cdrom
用完以后必须卸载,防止linux精神错乱
3、w
查看当前用户的登录信息
w
- 命令输出
USER: 登录的用户名
TTY: 登录终端(tty1是本地,pts/NUM是远程)
FROM: 从哪个IP地址登录
LOGIN@: 登录时间
IDLE: 用户闲置时间
JCPU: 指的是和该终端连接的所有进程占用的时间。这个时间并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间
PCPU: 是指当前进程所占用的时间
WHAT: 当前正在运行的命令
4、who
查看当前用户的登录信息(简)
who
- 命令输出
用户名
登录终端
登录时间(登录来源IP)
5、last
查看当前登录和过去登录的用户信息
last
- 注意
last命令默认是读取/var/log/wtmp文件数据
/var/log/wtmp是二进制文件,不能直接编辑,只能通过last读取,防止黑客篡改
还能看到重启信息
- 命令输出
用户名
登录终端
登录IP
登录时间
退出时间(在线时间)
6、lastlog
查看所有用户的最后一次登录时间
lastlog
- 注意
lastlog命令默认是读取/var/log/lastlog文件内容
/var/log/lastlog也是二进制文件
- 命令输出
用户名
登录终端
登录IP
最后一次登录时间
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: