1. 常用的shell指令
- |
| 符号,是个管道符号,表示前后指令命令同时执行;
- clear
clear 清除终端所有已存在的命令和结果,等价于ctrl + L,并不是真的清楚了,只是隐藏在了最上方,可以拖动滚动条查看。
- df
df 以磁盘分区为单位查看文件系统,可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
常用组合
df -hl:查看磁盘剩余空间
df -h:查看每个根路径的分区大小
du -sh [目录名]:返回该目录的大小
du -sm [文件夹]:返回该文件夹总M数
du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)
显示内容参数说明:
Filesystem:文件系统
Size: 分区大小
Used: 已使用容量
Avail: 还可以使用的容量
Use%: 已用百分比
Mounted on: 挂载点
常用参数:
-a, --all 包含所有的具有 0 Blocks 的文件系统
--block-size={SIZE} 使用 {SIZE} 大小的 Blocks
-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...)
-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024
-i, --inodes 列出 inode 资讯,不列出已使用 block
-k, --kilobytes 就像是 --block-size=1024
-l, --local 限制列出的文件结构
-m, --megabytes 就像 --block-size=1048576
--no-sync 取得资讯前不 sync (预设值)
-P, --portability 使用 POSIX 输出格式
--sync 在取得资讯前 sync
-t, --type=TYPE 限制列出文件系统的 TYPE
-T, --print-type 显示文件系统的形式
-x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE
-v (忽略)
--help 显示这个帮手并且离开
--version 输出版本资讯并且离开
- du
du disk usage,含义为显示磁盘空间的使用情况,用于查看指定的目录或文件所占用的磁盘空间
常用组合
du -sh //查看当前目录大小
du -h test //显示test目录所占用空间情况
du-h --max-depth=1 //查看各文件夹大小
du-h --max-depth=1 /path //查看指定文件夹大小
常用参数:
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或--dereference-args 显示指定符号连接的源文件大小。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-k或--kilobytes 以1024 bytes为单位。
-l或--count-links 重复计算硬件连接的文件。
-L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或--megabytes 以1MB为单位。
-s或--summarize 仅显示总计,只给出占用的数据块总数。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
--help 显示帮助。
--version 显示版本信息。
- grep
grep 命令是查找(Global Regular Expression Print),能使用正则表达式搜索文本,然后把匹配的行显示出来;
- ps
ps 命令的作用是显示进程信息
常用组合:
sudo ps -ef | grep test //显示含test字符的所有进程全格式信息
常用参数:
-e : 显示所有进程
-f : 全格式
-h : 不显示标题
-l : 长格式
-w : 宽输出
a :显示终端上的所有进程,包括其他用户的进程。
r :只显示正在运行的进程。
u :以用户为主的格式来显示程序状况。
x :显示所有程序,不以终端机来区分。
显示内容参数说明:
列序号 列含义 列含义说明
1 UID 用户标识ID
2 PID 进程ID
3 PPID 父进程ID
4 C CPU占用率
5 STIME 进程开始时间
6 TTY 启动此进程的TTY(终端设备)
7 TIME 此进程运行的总时间
8 CMD 完整的命令名(带启动参数)
UID PID PPID C STIME TTY TIME CMD
root 2649 1 0 10:29 ? 00:50:17 ./test
usrname 12957 12949 0 10:31 pts/1 00:00:00 grep --color=auto test
- scp
scp secure copy,是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
用于Linux之间复制文件和目录。scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
常用组合:
1.从本地复制到远程
scp local_file remote_username@remote_ip:remote_folder
scp local_file remote_username@remote_ip:remote_file
scp local_file remote_ip:remote_folder
scp local_file remote_ip:remote_file
//第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
//第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
//scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music
//scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3
//scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music
//scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3
复制目录命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
scp -r local_folder remote_ip:remote_folder
//第1个指定了用户名,命令执行后需要再输入密码;
//第2个没有指定用户名,命令执行后需要输入用户名和密码;
//scp -r /home/space/music/ root@www.runoob.com:/home/root/others/
//scp -r /home/space/music/ www.runoob.com:/home/root/others/
2.从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可。
如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:
#scp 命令使用端口号 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。
- tail
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
常用组合:
tail notes.log //默认显示最后 10 行
tail -f notes.log //要跟踪名为 notes.log 的文件的增长情况
tail -n +20 notes.log //从第 20 行至文件末尾
常用参数:
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
2. 脚本的编写
text.sh的文件的编写