1. 目录相关命令
ls 命令
作用:查看该目录中的目录和文件夹
命令格式:
ls [选项] [文件或目录]
选项:
-a : 显示所有文件,包括隐藏文件
-l : 显示详细信息
-d : 查看目录属性
-h : 人性化显示文件大小
-i : 显示inode
mkdir
作用: 创建目录
命令格式:
mkdir [选项] [目录名]
常用选项:
-p 递归创建目录
cd
作用:切换所在的目录
mkdir [目录]
特殊符号的涵义:
~ : 代表当前用户的家目录。
例子:cd ~
/ : 代表根目录。
例子:cd /
- : 代表上次目录。
例子:cd -
.. : 代表上一级目录。
例子:cd ..
. : 代表当前面目录。
例子:cd .
pwd
显示当前目录的位置
rm
删除当前文件或文件
命令格式:
rm [选项] [文件或目录]
常用选项:
-r 表示可以同时删除文件和目录
-f 表示强制删除(不会弹出确认提示)
例子:rm -rf ./hello (代表把当前目录下的 hello 文件和 hello 下的所有内容删除)
cp
复制命令
命令格式:
cp [选项] [原文件或目录] [目标目录]
选项:
-r : 复制目录
-p : 同时复制文件属性
-d : 若源文件是链接文件,则复制链接属性
-a : 包含以上所有选项,相当于 -rpd
mv
剪切或改名命令
mv [原文件或目录] [目标目录]
如果目标文件和源文件在同一目录,那就是改名,
否则就是剪切
ln
链接(等于 windows 的快捷方式)相关命令
- 创建软链接(快捷方式):ln -s orign tartget.soft
- 创建硬连接:ln orign target.hard
- 一般只创建软链接
- 注意:创建软软链接的时候源文件和目标文件不在同一目录下会报错,找不到文件
2. 文件搜索
locate 命令
locate - 是在var/lib/mlocate
数据库搜索,但是一天更新一次,所以新增的文件不能马上被搜索到, 可以调用 updatedb 来更新数据库,这样就可以立马搜索到新增的文件。 注意:只能搜索文件名,而且搜索规则是按照 /etc/updatedb.conf
来定义的
PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"
~
PRUNE_BIND_MOUNTS = yes
yes 代表全部遵守一下规则, no 则相反。PRUNEPATHS
代表不搜索的目录。
whereis
搜索命令所在路径及帮助文档所在位置。如果发现查出来命令只有帮助文档,没有目录位置,说明这就是 shell 自带的命令,交互窗口(dos ,终端)自带的简单命令。
选项:
-b: 只查找可以执行文件
-m: 只查找帮助文件
例子: whereis ls
which
可以看到命令的别名和位置,和 whereis 差不多
find
例子:
find -name install.log //不写代表当前目录搜索
find / -name install.log //在/下搜索
find /root -name "install.l*" //模糊匹配, ? 任意一个, []代表中括号里面的任意一个字符
find /root -name "install.lo[gd]"
选项:
-iname //不区分大小写
-user // 按照所有者来搜索文件
//find /root -nouser 找出 root 下没有所有者的文件,这些文件都是垃圾文件(proc, sys 下的不要删除)
-mtime +10 //查找10天前修改的文件[-10 , 10, +10], [atime 文件访问时间, ctime 改变文件属性, mtime 修改文件内容]
//例子: find /var/log -mtime +10
-size -25k //搜索少于 25k 的文件
-a and, -o or //多条件查询
-exec [命令] {} \ 结果交给下一个命令处理
//find /etc -size +20k -a -size -50k -exec ls -lh {} \;
exec 作用
找到的结果交给下一个命令处理。
例子:
-exec [命令] {}\ 结果交给下一个命令处理
//find /etc -size +20k -a -size -50k -exec ls -lh {} \;
grep 字符串搜索
grep 是字符串搜索命令,选项和例子如下:
使用:grep [选项] 字符串 文件名
注意:grep 是包含匹配,find 是完全匹配,如果需要用 grep 匹配就需要使用正则表达式
-i 忽略大小写
-v 排除指定字符(取反)
3. 帮助命令
man 命令
查看命令的作用, 不能获取 shell 自带的命令
whatis 命令
等于man -f 命令,命令都有等级
--help 命令
列出命令的详细选项和说明
4. 压缩和解压缩命令
zip 格式
windows 和 linux 通用的。
zip 压缩文件名 源文件
zip -r 压缩文件名 源目录
upzip 压缩文件 //解压缩
gz格式
压缩:(压缩比较目录别扭)
gzip 源文件 - 压缩为.gz 格式文件,源文件消失
gzip -c 源文件 > 压缩文件 - 压缩为.gz格式,源文件保留
gzip -r 目录 //但不好用
解压
gzip -d 解压文件
gunzip 解压文件
.bz2格式
不能压缩目录
bzip2 -d 压缩文件
# 解压缩,-k 保留压缩文件
bunzip2 压缩文件
# 解压缩,-k 保留压缩文件
.tar.gz
打包再压缩
tar -cvf 打包文件名 源文件
选项:
-c:打包
-v:显示过程
-f: 指定打包文件名
举例: tar -cvf 目标文件 源文件
tar -zcvf 压缩包名.tar.gz 源文件
选项:
-z: 把打包的文件压缩
tar -jcvf - 压缩为 bz2
解压缩再解打包
tar -xvf 打包文件名 源文件
选项:
-x:解打包
举例: tar -xvf 打包的文件
tar -zxvf 压缩包名.tar.gz [-C 指定解压缩位置]
选项:
-z: 把打包的文件压缩
tar -jxvf - 解压为 bz2
5. 关机,重启,退出登录
shutdown 命令
shutdown [选项] 时间
选项:
-c:取消前一个关机命令
-h:关机
-r:重启
例子:shutdown -r now
logout
不再使用时候退出登录
6. 挂载
U盘光盘需要挂载才能使用
mount 命令
mount - 查看系统中已经挂载的设备
mount -a - 依据配置文件/etc/fstab 的内容,自动挂载
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
例子:mount -t iso9660 /dev/sr0 /media
卸载设备
设备使用玩 需要卸载
umount
umount /mnt/cdrom/
fdisk
作用:查看系统中已经识别的硬盘
fdisk -l
7. 用户登录查看
w 命令
命令输出:
USER: 登录用户名
TTY: 登录终端(tty1:当前终端; pts/0 远程终端, 0代表第几个远程终端)
FROM: 从哪个 ip 登录
LOGIN:登录时间
IDLE: 用户闲置时间
who 命令
和 w 命令差不多。
last
列出所有用户的登录信息,发现可疑用户很可能就是系统被入侵了。
默认读取/var/log/wtmp 文件,但不能直接查看,这样可以防止被手动修改
lastlog
记录本机所有用户名最后一次登录的时间
默认读取/var/log/lastlog 文件,但不能直接查看,这样可以防止被手动修改