1、pwd 查看当前工作目录
2、ls [目录] 列出指定目录下的所有文件,使用 ls -l 或者 ll 列出文件详细列表包括权限、大小等文件默认大小以字节B为单位,目录大小为4096B
ls -lh 人性化显示列表中文件的大小,根据实际文件大小进行适当的单位表示
ls -i 列出文件的id号,Linux系统内部是通过id号来识别文件的
3、Linux的7种文件类型:普通文件、目录文件、链接文件、块设备文件、字符设备文件、套接字文件、管道文件
4、mkdir 建立目录,比如: mkdir abc ,如果需要递归建立多个目录,则使用比如这种形式: mkdir -p /usr/data/abc
5、cd 切换工作目录,比如: cd /usr/local ;进入家目录: cd 或者 cd ~ 进入上上层目录: cd ../../ ,进入上一次所在目录: cd -
6、rm 删除文件,比如: rm test.py 默认会询问是否删除;不提示删除文件: rm -f abc ;递归删除整个目录: rm -rf testdir/ ;删除目录下所有文件和目录,不包括外层目录本身: rm -rf /tmp/*
7、rmdir 删除空目录,比如: rmdir ./test1/
8、cp 复制文件,比如: cp abc.txt /home/abcd.txt 这里复制文件并更改了名称;复制文件不改名: cp base.conf ~/conf/ ;递归复制整个目录: cp -r dir1/ /usr/ 这里没有改名将目录dir1放到了/usr/下;保持所有文件所有属性比如修改时间等完全一致: cp -a dir1/ /usr/local/ 或者 cp -dpr dir1 /usr/local
其中参数-p表示连带文件属性,-d表示如果是链接文件则保留链接文件属性,-r是递归
9、mv 移动文件,比如: mv testdir/ /var/ 这里没有改名,并且复制文件或者目录一律不加-r,重命名文件: mv abc.txt abc.c
10、ln 做文件链接,前面是源文件,后面是链接文件
硬链接(占用硬盘块存储空间,和源文件存储空间一致,相当于一块空间多个入口): ln /usr/abc /tmp/a.test
软链接(相当于快捷方式,最常用,文件目录一律写绝对路径): ls -s /usr/bin/python3 /usr/bin/python
11、locate 文件搜索,基于本地文件数据库,默认每天更新一次,支持模糊查询,数据库位置:/var/lib/mlocate,搜索配置文件:/etc/updatedb.conf
在数据库中搜索文件: locate apache 手动更新文件数据库: updatedb
12、whereis 命令搜索,列出命令对应的文件路径和帮助文档所在位置,比如: whereis ls 加参数-b只查看源程序位置,-m只查看帮助文档位置
13、whatis 命令作用,比如: whatis ls 则返回类似 "list directory contents"
14、which 列出命令位置和附加参数,比如: which ls 则列出 ls 由alias定义相当于命令 ls --color=auto
15、find 强大的文件搜索命名,原理是遍历当前文件系统,速度比较慢,影响系统性能
搜索指定目录下的指定文件: find /usr/ -name files.log ,文件名默认完全匹配,可以使用通配符 * ? []等,比如: find /tmp -name "*.log"
搜索没有所属用户的文件,包括垃圾文件、外来文件、内核产生的文件: find / -nouser
按照所属用户搜索文件: find /usr -user root
按时间搜索,比如搜索10天前内容被修改的文件: find /var/log -mtime +10 参数-mtime是内容修改,-atime代表文件访问时间改变,-ctime代表文件的属性被修改,+10代表10天前,-10代表10天内至现在,10代表距现在前10天当天
按文件大小搜索,比如搜索文件大小为25k的文件: find /home/user1 -size 25k ,+25k代表大于25k的文件,-25k代表小于25k的文件,这里k必须小写;按MB搜索使用大写的M,按字节搜索必须是小写的b,不加单位代表按硬盘块数量搜索
按文件inode节点来搜索,比如: find /home -inum 26262
逻辑与查询使用-a,比如查询大于20k并且小于50k的文件: find ./ -siez +20k -a -size -50k 逻辑或使用-o,如果逻辑关系使用错误比如大于30k并且小于20k,则系统不会返回任何结果
查找大于20k小于100k的文件并显示详细信息: find /home -size +20k -a -size -100k -exec ls -lh {} ; 后面的{} ;是固定格式,-exec代表将前面命令的执行结果交给后面去继续执行;比如查找指定文件并删除: find /var/log -nouser -exec rm -rf {} ;
16、grep 字符串搜索,比如在文件中查找指定关键字: grep "size" abc.cfg
后面加上-i参数是不区分大小写,-v是排除关键字,比如: grep -vi "define" config.h
grep常用来在其他命令之后使用管道符搜索用户需要的内容,比如find和grep结合可实现可以实现强大的正则表达式匹配,grep和各种网络命令结合筛选重要信息
17、man 查看命令帮助,比如: man ls 内容可以使用翻页键,上下键,回车键滚动查看默认级别帮助文档,按q键退出
查看命令的级别: man -f ls 相当于: whatis ls ,查看级别为1的帮助: man 1 ls
查看所有相似命令,遇到命令记不清的情况可以查找,比如: man -k passwd
参数帮助使用--help,比如: ls --help 只要安装语言选择中文,那么远程shell一般可以支持中文
shell内部命令不能通过man或者--help查看帮助,比如cd命令可以通过: help cd 查看帮助
info命令查看比man更为详细的文档,可以显示多个版本的文档,比如: info ls 使用u键进入上一层,n键进入下一个小节,p键进入上一个小节,q键退出
18、zip 压缩解压,压缩文件成zip: zip abc.zip abc.mp3 ,压缩目录成zip: zip -r abc.zip ./abc/
解压缩zip包: unzip abc.zip
19、tar 打包压缩,释放归档等
打包.tar.gz或者tgz: tar -zcvf abc.tar.gz /usr/test/
释放.tar.gz或者tgz: tar -zxvf abc.tar.gz 释放到指定目录: tar -zxvf abc.tar.gz -C /home/app
只查看包内文件列表并不释放: tar -ztvf abc.tar.gz
打包tar.bz或者tar.bz2: tar -jcvf abc.tar.bz2 ./abc/
释放tar.bz2或者tar.bz: tar -jxvf abc.tar.bz2 释放到指定目录使用: tar -jxvf abc.tar.bz2 /tmp/
只查看包内文件列表并不释放: tar -jtvf abc.tar.bz2
20、shutdown 关机或者重启
10分钟后关机: shutdown -h 10
10分钟后重启: shutdown -r 10
定时关机或者重启: shutdown -r 05:30 &
取消定时设置: shutdown -c
立即关机或者重启: shutdown -r now 或者 shutdown -r 0
对于远程服务器,因为都是通过shell客户端远程控制,所以只建议重启,不建议关机;对于生产过程中的服务器,一定要有序关闭各种正在运行的服务以及后台程序,然后才能进行重启操作
其他关机命令: poweroff 、 halt 、 init 0 这些命令都可以实现关机操作,但是可能会使系统不正常结束,不建议使用
其他重启命令: reboot 相当于shutdown关机; init 6 同样不建议使用
21、init 运行级别调用命令,调用指定的系统级别
init 0 关机
init 1 单用户,纯命令行界面,最小服务
init 2 不完全多用户,不含NFS模式,纯命令行
init 3 完全多用户,服务正常开启,纯命令行,是我们服务器的默认运行方式
init 4 未分配
init 5 图形界面,前提要安装图形界面
init 6 重启
查看当前系统运行级别: runlevel 一般是3,配置文件/etc/inittab最后一行指定系统的默认启动级别,一般不要修改
22、logout 注销当前用户,Linux允许同时登录用户256个,Windows则非常少,所以通过远程管理时,操作完毕务必要执行 logout 正确注销用户,直接管理窗口会占用服务器资源,使用 exit 代表退出当前shell一般情况下会返回状态码0从而也可以注销用户
23、mount/umount 查看当前挂载的设备: mount ,自动挂载配置文件在/etc/fstab中,可以自行配置,使用命令 mount -a 可以自动挂载配置文件中指定的设备,因为U盘、光盘等设备有可能拔出,所以不建议设置自动挂载,否则系统有可能无法启动
linux系统默认支持ext3、ext4
重新挂载分区同时指定特殊选项,如不允许可执行文件执行: mount -o remount,noexec /home/ ,挂载后所有在此分区下执行可执行文件将会提示权限不足,还原挂载可使用: mount -o remount,exec /home/ ,重新挂载分区只是测试使用,不要随便修改选项
挂载光盘的过程:
首先建立一个目录作为挂载点: mkdir /mnt/cdrom
执行挂载命令: mount -t iso9660 /dev/sr0 /mnt/cdrom
卸载光盘的过程:
首先退出光盘所在的目录,也就是工作目录不能在/mnt/cdrom下
然后执行命令: umount /mnt/cdrom 或者 umount /dev/sr0
挂载FTA32格式的U盘过程如下:
首先通过 fdisk -l 查看U盘设备位置,比如/dev/sdb1
提前准备好挂载点, mkdir /mnt/usb
执行挂载: mount -t vfat /dev/sdb1 /mnt/usb 由于vfat系统默认支持,所以系统会自己识别,可以简写: mount /dev/sdb1 /mnt/usb
卸载U盘过程:
首先退出/mnt/usb工作目录,
然后执行: umount /mnt/usb 或者 umount /dev/sdb1 进行卸载
更常用的是挂载硬盘或者集群中的云盘,过程和上面相同,首先执行分区、格式化然后再执行挂载,过程和之前一样
注意NTFS格式的磁盘Linux是不支持的,挂载NTFS设备有2种方法一种是重新编译Linux内核,过程比较复杂;另外是从网上下载第三方ntfs-3g组件并安装,然后执行挂载,具体细节前面专门有一篇文章写到
24、w 查看当前系统运行的时间和已经登录用户的信息列表,包括登录时间,来源IP等
25、who 和w差不多,显示信息比w少一些
26、last 查看服务器所有用户的登录历史信息记录以及服务器重启时间;可以用来检测异常登录,对应的数据存放在文件/var/log/wtmp下,wtmp数据文件是二进制文件,不能进行修改
27、lastlog 查看系统中所有用户最后一次登录信息,判断用户是否登录过,对应数据也是存放在/var/log/wtmp中