1、shell 命令基础
命令行格式
$command [option(s)] [argument(s)]
说明
* 在命令行的每两个部分之间有空格分割
* 每个命令行可使用的最多的命令符数是256个
* 命令要区分大小写
* 不同的命令提示符,使用的分割符为/
* 命令中的参数,选项可以是多个,并且参数其实是要传入命令程序的主函数main的参数
命令行别名
命令 | 命令说明 | 示例 | 示例说明 |
---|
alias alias-name=value | 建立别名 | alias mypwd="pwd" | 给pwd建立别名 |
alias | 列出所有别名 | alias | 列出所有已建立的别名 |
unalias alias-name | 删除别名 | unalias mypwd | 取消mypwd别名 |
通配符
命令 | 命令说明 | 示例 | 示例说明 |
---|
* | 通配0个或多个 | ls u* | 列举出以u开头的文件目录 |
? | 通配任意单个字符 | ls us? | 列出us开头后面还有一个字符的文件目录 |
[] | 通配某个范围内的任意字符 | [a-z] | 匹配a-z 中间的任意一个字符 |
一行执行多条命令;
命令 | 命令说明 | 示例 | 示例说明 |
---|
; | 一行执行多条命令 | cd /home;ls | 进入到home 目录并且查看该目录下的文件 |
输入输出重定向
命令 | 命令说明 | 示例 | 示例说明 |
---|
> | 将输出放到文件(覆盖) | ls > out.txt | 将ls的输出放到out.txt 中 |
>> | 将输出追加到文件末尾 | ls >> out.txt | 将ls的输出追加到out.txt 中 |
< | 输入重定向 | cat < out.txt > out1.txt | 将out.txt 的输出重定向到out1.txt 中 |
管道符
命令 | 命令说明 | 示例 | 示例说明 |
---|
| | 将一个进程的输出作为另一个进程的输入 | ls -l /etc | more | 将/etc 目录下的文件分页输出 |
联机帮助
命令 | 命令说明 | 示例 | 示例说明 |
---|
man name | 查看命令信息,spacbebar :向下显示一屏,Enter :向下显示一行,b :向上一屏,f :向下一屏,q :退出,/string :查找字符串string,n :查找下一个string | man pwd | 查看pwd 命令的相关信息 |
man -k keyword | 根据关键词查找命令 | man -k pw | 查找命令中带有pw 两字字母的命令 |
清屏
历史记录
命令 | 命令说明 | 示例 | 示例说明 |
---|
history | 查看最近500条历史命令 | history | 查看最近500条历史命令 |
history n | 查看最近n 条历史命令 | history 2 | 查看最近2条历史命令 |
!n | 执行历史记录中的第n 条 | !5 | 执行历史记录中的第5条 |
!! | 执行上一条命令 | !! | 执行上一条命令 |
方向上键 | 执行上一条历史命令 | | |
2、文件管理
查看文件目录
命令 | 命令说明 | 示例 | 示例说明 |
---|
pwd | 显示当前工作目录 | | |
cd | 改变当前工作目录 | cd /etc | 切换到etc 目录 |
ls | 列出当前工作目录的文件和目录 | | |
ls -a | 列出当前工作目录所有目录、子目录、文件、隐藏文件 | | |
ls -R | 一层层的展示当前目录的子目录和文件 | | |
ls -F | 列出文件、目录并显示文件类型 | | |
ls -t | 以修改时间为时间倒序列出文件、子目录 | | |
ls -l | 以长列表格式显示文件、目录的详细信息 | | |
file filename | 显示文件类型 | file logs | 查看logs 的文件类型 |
创建和删除文件目录
命令 | 命令说明 | 示例 | 示例说明 |
---|
touch filename | 创建文件,当filename 不存在时创建一个新的空文件,当filename 存在时,更新该文件的修改时间 | touch my.txt | 创建my.txt 文件 |
mkdir [-p] dir_name | 创建目录,-p 参数在父目录不存在时可以同时创建子目录 | mkdir dir1 ,mkdir -p dir2/dir3 | 创建dir1 目录,创建dir2 目录并且创建子目录dir3 |
rm [-i/f] filename | 删除一个或多个文件,-i :询问是否删除,-f :强制删除 | rm -i my.txt | 删除my.txt 文件 |
rmdir dir_name(s) | 删除空目录 | rmdir dir1 | 删除空目录dir1 |
rm -r[i/f] dir_name(s) | 删除一个或多个目录,-r :删除非空目录,-i :删除前询问是否删除,-f :强制删除 | rm -rf dir2 | 强制删除dir目录 |
显示文件内容
命令 | 命令说明 | 示例 | 示例说明 |
---|
cat filename | 不分屏显示文本内容 | cat out.txt | 查看out.txt 的文件内容 |
more filename | 分页展示文件内容,spacbebar :向下显示一屏,Enter :向下显示一行,b :向上一屏,f :向下一屏,h :显示帮助菜单,q :退出,/string :查找字符串string,n :查找下一个string | | |
head [-n] filename | 查看文件的前多少行,-n :行数,默认10行 | head -20 settings.xml | 查看setting.xml 的前20行 |
tail [-n] filename | 查看文件的最后多少行,-n :行数,默认10行 | tail -20 settings.xml | 查看setting.xml 的最后20行 |
拷贝和移动文件目录
命令 | 命令说明 | 示例 | 示例说明 |
---|
cp [-i] source_file destination_file | 拷贝文件,-i :如果目标文件存在询问是否覆盖,没有-i 参数则直接覆盖 | cp out.txt /data/ | 将out.txt 文件拷贝到/data 目录下 |
cp -r source_directory destination_directory | 拷贝目录 | `cp -r dir1/ logs/ | |
|将 dir1拷贝到 logs`目录下 | | | |
mv [i] source_file target_file | 重命名文件 | `mv -i out.txt myout.txt | |
|将 out.txt重命名为 myout.txt` | | | |
mv [i] source_file target_directory | 移动文件到目标文件目录 | mv myout.txt logs/ | 将myout.txt 文件移到到logs 目录下 |
解压/打包文件
命令 | 命令说明 | 示例 | 示例说明 |
---|
tar -cvzf target_file source_file | 打包文件, | tar -czvf mydir.tar.gz dir1/ | 将dir1 目录打包为mydir.tar.gz |
tar -xvzf source_file | 解压文件 | tar -xzvf mydir.tar.gz | 解压mydir 压缩包 |
文件目录权限
命令 | 命令说明 | 示例 | 示例说明 |
---|
chmod | 修改文件目录的访问权限,用户[u :拥有者,g :同组人,o :其他人,a :所有人],权限操作[= :设置权限,+ :添加权限,- :删除权限],权限[r :读权限,w :写权限,x :执行权限] | chmod u=rwx,g=rw,o=r myout.txt | 拥有者对myout.txt 有所有权限,跟拥有者同组的用户有读写权限,其他人只有读权限 |
chown -[R/v] 用户或组 file | 更改某个文件或目录的属主或属组,可用于授权 | chown -R jamal /dir1 | 将dir1 的拥有者改为jamal |
chgrp [-R] group filename | 改动文件所属的组 | | |
查找文件
命令 | 命令说明 | 示例 | 示例说明 |
---|
find path experession | 查找文件和目录,[-name :按文件名查找,-user :按用户,-size :按大小,-mtime :按最后一次修改时间,-atime :按最后一次访问时间,-type :按文件类型,-perm :按权限] | find . -name di* | 在当前目录查找以di开头的文件和目录 |
过滤与统计
命令 | 命令说明 | 示例 | 示例说明 |
---|
grep [option] string filename | 查找包含某些字符串的结果,对文件或输出进行过来,区分大小写,-i :忽略大小写,-v :反向匹配(查找不包含某字符串的接口) | grep -i dataid config.log | 忽略大小写,在config.log 中查找dataid |
wc [option(s)] filename | 统计文件或输出结果,-l :统计多少行,-w :统计有多少个单词,-c :统计多少个字符 | wc -l config.log | 统计config.log 有多少行 |
3、系统管理
时间日期
命令 | 命令说明 |
---|
date | 显示当前日期 |
cal | 显示日历,默认显示当前月的日历,cal 月份 年份 :显示指定年月的日历,cal 年份 :显示指定年份的日历 |
查看进程
命令 | 命令说明 |
---|
ps [options] | 列出当前系统中已在运行的进程,默认列出当前终端相关的进程,options [-e :列出正在运行的进程,-f :列出一个完整的进程列表形式,-u :查找出由某个用户启动的进程,-auwx :列出一个完整的进程列表形式] |
结束进程
命令 | 命令说明 |
---|
kill -[信号数字] <进程PID> | 根据进程pid结束进程,信号数字:[9 :发送 kill 信号退出,6 :发送 abort 信号退出,15 :发送 Termination 信号,1 :挂起,2 :从键盘中断,-9 -1 :结束当前用户的所有进程],一般我们使用kill -9 pid 即可 |
pkill <进程名> | 结束进程族。如果结束单个进程,请用 kill |
killall <进程名> | killall和pkill 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单 |
个进程,请用kill 来杀掉。 | |
用户切换
命令 | 命令说明 | 示例 | 示例说明 |
---|
su 用户名 | 切换用户 | su root | 切换到root 用户 |
设置普通用户的超级权限
命令 | 命令说明 | 示例 | 示例说明 |
---|
sudo 命令行 | 将该命令以超级权限运行 | sudo apt-get install vim | |
关机重启
命令 | 命令说明 |
---|
shutdown [-cfFhknr][-t 秒数][时间][警告信息] | 安全的关闭或者重启Linux 系统,-h :系统关机,-r :系统重启,-t :设置多久时间后执行shutdown 指令 |
halt | 关机 |
reboot | 重启 |
4、用户管理
修改密码
查找用户
命令 | 命令说明 |
---|
id | 查看用户ID,所属组ID |
users | 查看已经登录到当前系统中的用户,只显示出用户名 |
who | 查看用户的详细信息 |
who am i | 查看当前用户自己的信息 |
whoami | 查看当前用户自己的用户名 |
5、磁盘管理
磁盘信息
命令 | 命令说明 |
---|
du [options] | 显示磁盘使用摘要信息,options:[-k :以K字节方式显示,-m :以M字节方式显示,-s :显示当前目录下的内容总占用磁盘的大小] |
df | 显示整个文件系统的空间使用磁盘情况 |
内存信息
命令 | 命令说明 |
---|
free | 查看内存使用情况,输出参数说明:[tota l:总计物理内存的大小,used :已使用多大,free :可用有多少,Shared :多个进程共享的内存总额,Buffers/cached :磁盘缓存的大小] |
top | 查看内存使用情况,输出参数说明:[PID :进程的ID,USER :进程所有者,PR :进程的优先级别,越小越优先被执行,NInice :值,VIRT :进程占用的虚拟内存,RES :进程占用的物理内存,SHR :进程使用的共享内存,S :进程的状态(S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数),%CPU :进程占用CPU的使用率,%MEM :进程使用的物理内存和总内存的百分比,TIME+ :该进程启动后占用的总的CPU时间,COMMAND :进程启动命令名称] |
6、网络配置
命令 | 命令说明 |
---|
ping 主机IP | 查看当前机器与另一台机器的联调情况 |
ifconfig -a | 显示当前机器的IP、Netmask、Gateway等网络信息 |
ifconfig ethO up(down) | 激活与关闭某个网络适配卡 |
ifconfig ethO [ipaddress] netmask [address] | 设置IP和子网掩码 |
7、安装卸载应用程序
离线包安装和卸载
命令 | 命令说明 |
---|
dpkg -i <package> | 安装离线包 |
dpkg -p <package> | 移除包和配置文件 |
在线包安装和卸载
命令 | 命令说明 |
---|
apt-get install <application> | ubuntu下安装应用程序 |
apt-get remove -purge <application> | 卸载应用程序 |
扫码关注公众号(搜索公众号:平头哥的技术博文)一起交流学习呗