shell
shell是一个命令行工具,负责用户和内核之间交流的媒介。目前主流的shell解释器的是bash解释器。bash具有以下几个优点:
1)可以使用TAB键补全完整的命令
2)使用方向键上和下来调用之前用过的命令
3)具有强大的批处理脚本
4)具有使用的环境变量功能
常用命令
命令格式
命令名称 [命令参数] [命令对象]
命令参数分为长格式(使用–)和短格式(使用-)。命令对象一般是指文件名,目录等。命令参数的使用需要注意一下几点:
1)参数和参数之间是空格间隔
2)长格式和长格式之间不能合并
3)短格式和短格式之间可以合并并且只能保留一个-
4)长格式和短格式不能合并
基本命令
1,man
使用man命令查看命令的使用文档
man ls 查看ls命令的使用文档
在man命令帮助信息的界面,常用的按键如下:
/ 从上到下搜索某个关键字例如:/liunx
? 从上到下搜索某个关键字例如:?liunx
n 定位到下一个搜索到的关键词
N 定位到下上一个搜索到的关键词
q 退出帮助文档
2,echo
echo命令作用是用于在终端输出字符串或者变量的值
echo yudi /在终端上显示yudi
echo $SHELL /在终端上显示/bin/bash
3,date
显示系统当前时间
date
4,reboot
该命令用来重启系统。默认情况下只能root管理员才能使用
5,poweroff
该命令用来关闭系统。 默认情况下只能root管理员才能使用
6,ps
查看系统中当前运行的进程
a 显示所有用户的所有进程(包括其它用户)
u 用户以及其他信息
-e 显示所有进程,环境变量
f 用树形格式来显示进程;
ps -ef|grep java : 找出所有java进程
7,top
top命令用于动态地监视进程活动与系统负载等信息。
8,pidof
pidof命令用于查询某个指定的服务进程的pid
pdiof java
9,kill
杀死进程
kill -9 进程的pid
10,killall
killall命令用于终止某个指定名称的服务所对应全部进程,一般来说复杂的服务都可能有多个进程为它服务。使用kill命令去一一删未免太麻烦。
killall 服务名
killall java
11,ifcofig
ifconfig命令用来查看网卡设备信息
ifconfig -a 查看所有网卡的配置信息
12,uname
用于查看系统内核和系统版本信息
uname -a
13,uptime
查看系统的负载信息
14, free
显示系统中的内存使用信息
free -h
15, history
显示历史执行过的命令(最近1000条)
history -c 清空历史命令
!编码数字 执行某一执行过的命令
16,pwd
显示用户所处的目录
17,cd
切换目录
cd .. 切换到上一级目录
cd - 切换到上一个所在目录
cd ~ 切换到用户家目录
cd / 切换到根目录
18,ls
查看目录
ls 查看该目录下的所有目录和文件
ls -a 查看该目录下的所有目录和文件(包含隐藏文件和目录)
ls -l(可以写成ll)查看该目录下的所有目录和文件的的详细信息
19,cat/more/less/tail
cat 只能显示最后一屏的内容
more 可以显示百分比,回车可以向下一行,空格可以下一页,q退出查看
less 可以使用键盘上的PgUp和PgDn向上和向下翻页,q结束查看
tail -f file 对file文件进行动态监控
tail -20 file.text 查看最后20行
20,tr
tr命令用于替换掉文本文件中的字符
cat yudi.txt | tr [a-z] [A-Z] 将yudi.txt中的小写字符全部转换为大写
21,wc
wc命令用来统计指定文本的行数,单词数,字节数
-l 行数
-w 单词数
-c 字节数
22,touch
创建文件
touch file.text 在当前目录下创建file.text文件
23,mkdir 目录名称
增加目录操作
mkdir test 创建一个目录
mkdir -m 777 dir 创建权限为777的目录
mkdir -p dir/dir1 递归创建目录
24,cp
拷贝目录,文件
cp -a file1 file2 把文件的所有特性把文件file1复制成文件file2
cp -r dir /root 递归复制目录,将dir下连同里面的文件和目录复制到/root下
25,mv
修改目录名称,移动目录的位置
mv oldName newName 将目录名字修改为newName
mv name /root 将name文件移动到/root下
26,rm
删除目录
-f :force忽略不存在的文件,不会出现警告消息
-i :互动模式,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数
rm -i file : 删除文件file,在删除之前会询问是否进行该操作
rm -rf dir : 强制删除目录dir中的所有文件
27,file
查看文件的类型
28,tar
对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压。
z:调用gzip压缩命令进行压缩
c:打包文件
x:解压文件
v:显示运行过程
f:指定文件名
tar -zcvf xxx.tar.gz /test/* 将test目录下的所有文件打包并压缩
tar -xvf xxx.tar.gz 将xxx文件解压到当前目录
tar -xvf xxx.tar.gz -C /test/ 将xxx文件解压到/test/下
30,find 目录 参数
寻找目录
find /root -name ‘test’ 查找/root下包含test的文件和目录
find -mtime +n 列出在n天之前(不含n天本身)被更改过的文件名
-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;
find / -user root 查找所有属于root用户的文件
find / -name fastlab -exec cp -rf {} /root \;
高级命令
1,输入输出重定向
man ls>yudi.txt 将ls的命令帮助文档输出到yudi.txt中
echo hello word >yudi.txt 将l字符串输出到yudi.txt中
ll xxxxxxxxxxxxx 2>yudi.txt 讲命令的错误信息输出到yudi.txt中
>清空原文件的内容 >>在原文件后面加入内容
2,管道符
命令A | 命令B
将前一个命令的输出在屏幕上的信息作为后一个命令的标准输入。
ps -ef |grep java
linux中的进程状态
1,R(运行):进行正在运行或在运行队列中等待
2,S(中断):进程处于休眠中,当某个条件形成后或收到某个信号
3,D(不可中断):进程不影响异步信号,即便使用kill命令也不能将其中断
4,Z(僵尸进程 ):进程以及终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将其释放
5,T(停止):进程收到停止信号后停止运行