你想要什么?你在做什么?它们一样吗?你今天比昨天更好吗?
文章目录
我的shell命令笔记
一、帮助
type
功能:查看命令的类型是内置命令还是外部命令
示例:
# 查看cd命令的类型
type ls
# 查看命令名字的所有可能
type -a ls
# 查看命令的执行路径
type -p ls
# 搜索外部命令
type -P kill
help
功能:查看内部命令的帮助文档
# 查看cd命令的帮助文档
help cd
# 查看所有内部命令
help
man
功能:查看外部命令的帮助文档
# 查看命令的帮助文档
man ls
# 查看指导手册
man bash
快捷键:
- 空格 下一行
- 回车 下一页
- b 上一页
- q 退出
- \ls 回车 查找ls字符串,按n找下一个,按N找上一个
info
功能:查看外部命令帮助文档
# 查看命令帮助文档
info ls
# 查看info手册
info
二、文件与目录
cd
功能:切换目录
示例:
# 切换到home目录
cd /home
# 切换到上一级目录
cd ..
# 切换到当前用户的家目录
cd ~
# 切换到当前目录之前的目录
cd -
ls
功能:查看目录内容
示例:
# 查看当前目录下的内容
ls
# 查看指定目录下的内容
ls /home/user
# 查看指定目录下的详细内容列表
ls -l /home/user
# 查看当前目录下按文件大小排序后的内容列表
ls -lhS
pwd
功能:打印当前目录
示例:
# 打印当前目录
pwd
# 打印当前目录,如果是连接文件,则打印连接文件目录; 如果是多层连接文件,则打印最终文件目录
pwd -P
mkdir
功能:创建目录
示例:
# 创建一个目录
mkdir /tmp/aa
# 创建多层目录
mkdir -p /tmp/bb/cc
# 创建目录同时指定权限为744
mkdir -p -m 755 /tmp/test
cp
功能:拷贝目录和文件
示例:
# 拷贝一个文件file1为file2
cp /tmp/file1 /tmp/file2
# 拷贝一个文件file1为file2,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖。
cp -i /tmp/file1 /tmp/file2
# 拷贝一个文件file1为file2,如果file2存在会强制用file1覆盖file2
cp -f /tmp/file1 /tmp/file2
# 拷贝一个目录到另一个目录,若dir2存在,则拷贝到dir2下;若dir2不存在则创建一个dir2目录,拷贝到dir2下
cp -r /tmp/dir1 /tmp/dir2
# 拷贝目录dir1到目录dir2,同时复制修改时间和访问权限
cp -rp /tmp/dir1 /tmp/dir2
mv
功能:移动文件或目录
示例:
# 当目标文件存在时,提示是否覆盖,按y回车,强制覆盖
mv /tmp/a /tmp/b
# 当目标文件存在时先备份在覆盖
mv -b /tmp/a /tmp/b
# 当目标文件存在时,强制覆盖
mv -f /tmp/a /tmp/b
rm
功能:删除文件或目录
示例:
# 强制删除某文件或目录
rm -rf /tmp/test
注意:这个命令一定要慎重
cat
功能:输出文件内容到控制台
示例:
# 输出文件内容到控制台
cat /etc/profile
head
功能:输出文件前n行
示例:
# 输出文件内容到控制台
head -n 100
tail
功能:输出后n行
示例:
# 输出文件内容到控制台
tail -f 100
less
功能:分页输出文件内容,适合查看大文件
示例:
# 查看文件
less /var/log/a.log
快捷键:
- ctrl + f 向前翻1页
- ctrl + b 向后翻1页
- /error + 回车 搜索某字符串
- n 搜索状态下,向后查找下一个匹配的文本
- N 搜索状态下,向前查找下一个匹配的文本
more
功能:查看文件内容
示例:
# 查看文件
more /var/log/a.log
du
功能:估计文件系统的磁盘已使用量
示例:
# 以易读方式展示
du -h
# 统计当前目录下以及所有子目录下磁盘使用量
du -h --max-depth=1
df
功能:查看linux服务器文件系统的磁盘占用情况
示例:
# 以易读方式查看文件系统磁盘占用情况
df -h
find
功能:查找文件
示例:
# 在当前路径下,查找文件名等于字符串的文件
find . -name "java"
# 在当前路径下,查找以某字符串开头的文件
find . -name "java*"
# 在当前路径下,查找以某字符串结尾的文件
find . -name "*.log"
stat
功能:查看文件状态和时间信息
示例:
# 查看文件信息
stat /etc/profile
chmod
功能:修改文件或目录权限
示例:
# 统计文件的字数、行数、字节数
wc -wlc /tmp/testfile
chown
功能:修改文件或目录所属用户或用户组
示例:
# 修改目录的用户名和用户组为指定用户和用户组
chown -R hdfs:hdfs /var/log/hadooop
wc
功能:统计文件中的字数、行数、字节数
示例:
# 统计文件的字数、行数、字节数
wc -wlc /tmp/testfile
三、进程
ps
功能:查看进程状态
示例:
# 显示当前用户会话启动的进程
ps
# 显示所有进程
ps aux
# 显示所有进程,进程树
ps -axjf
# 查询包含某字符串的进程
ps aux | grep java
top
功能:查看进程动态信息
示例:
# 显示当前用户会话启动的进程
top
# 显示当前用户会话启动的进程快照,保存到文件
top -b > top_result.txt
快捷键
- shift + m 按内存排序
- c 显示进程启动时完整的路径和程序名
- V 以树型展示进程
pgrep
功能:根据条件查询进程id
示例:
# 查询包含指定字符串的进程
pgrep -l "java"
pstree
功能:展示进程树
示例:
# 查看完整进程信息、用户、和pid
pstree -aup
# 查看指定用户的进程树
pstree -ap hdfs
jobs
功能:查看后台进程
示例:
# 查看后台运行的进程,显示pid
jobs -l
kill
功能:终止进程
示例:
# 终止进程
kill 1234
# 强制终止进程
kill -9 1234
killall
功能:终止指定名称的所有进程
示例:
# 终止进程
killall vim
# 强制终止进程
killall -9 vim
pkill
功能:根据条件终止进程
示例:
# 终止指定用户的所有进程
pkill -9 -u "hdfs"
四、网络
ping
功能:测试与目标主机的连通性
示例:
# 测试与目标主机的连通性
ping 192.168.12.33
# 测试与目标主机的连通性,持续输出
ping -t 192.168.12.33
telnet
功能:测试与目标主机(指定端口)的连通性,远程登录
示例:
# 测试与目标主机的连通性
telnet 192.168.12.33
# 测试与目标主机的目标端口的连通性
telnet 192.168.12.33 8080
netstat
功能:监控TCP/IP网络
示例:
# 查看所有链接
netstat -anp
# 查看所有tcp端口
netstat -at
# 找出程序运行的端口
netstat -anp | grep ssh
# 找出运行在指定端口的进程
netstat -anp | grep '80'
五、用户与用户组
useradd
功能:创建用户
示例:
# 添加一个用户
useradd username
groupadd
功能:创建用户
示例:
# 添加一个用户
groupadd groupname
usermod
功能:修改用户设置
示例:
# 修改用户所属用户组为新用户组,用户将不属于原有用户组
usermod -G groupname username
# 将用户追加到新用户组中,用户仍旧属于原有用户组
usermod -a -G groupname username
其他命令
无法简单归类的命令
echo
功能:输出到控制台
示例:
# 打印helloworld
echo helloworld
# 打印helloworld,不添加换行符
echo -n helloworld
sync
功能:将内存中数据同步到磁盘
示例:
# 执行同步
sync