1.ls
ls命令用来查看当前目录下包含的文件和文件夹
ls -a列出目录所有文件,包含以.开头的隐藏文件
ls -A列出除了.和..的所有文件
ls -r反序排列
ls -t以文件的修改时间排列
ls -S以文件大小排序
ls -h以易读大小显示
ls -l除了文件名之外还将文件大小、所有者、权限等显示出来
实例:
按修改时间反序排列以易读方式文件大小,显示详细信息
ls -lrht
2.cd
cd命令用来切换当前目录
cd /进入根目录
cd ~进入用户主目录
cd -进入上一次的工作目录
cd !$把上个命令的参数作为cd参数使用
3.pwd
pwd命令用来查看当前的工作路径
pwd -p查看软链接的实际路径
4.mkdir
mkdir命令用来创建文件夹
-m参数对新建目录设置存取权限
-p可以是一个路径的名称,若这个路径不存在则自动创建该路径
实例:
mkdir t创建一个t文件夹
mkdir -p t/p在当前目录下创建t/p目录,若不存在t文件夹则创建
5.rm
rm用来删除一个或多个文件或者目录
-r参数用来删除目录
实例:
删除后缀为.log的文件,删除前逐一确认
rm *.log
删除test目录及test目录下的所有文件并且不用一一确认
rm -rf test
6.rmdir
rmdir用来从一个目录中删除一个或多个子目录项,删除某目录时也必须对父目录具有写权限
rmdir不能删除非空目录
实例:
rmdir test/test1删除test1空目录
rmdir -p test/test1删除test1目录之后test目录为空的话也一并删除
7.mv
mv命令用来移动或重命名文件,根据第二个参数(如果为目录则移动文件,为文件名则重命名文件)
当第二个参数为目录时,可以将多个文件以空格分割作为第一个参数,移动多个文件至参数2目录中
实例:
将文件a.txt重命名为ab.txt
mv a.txt ab.txt
将文件a.txt,ab.txt移动到当前目录下的test文件夹下
mv a.txt ab.txt ./test
将文件file1.txt重命名为file2.txt,如果file2.txt已经存在则询问是否覆盖
mv -i file1txt flie2.txt
将当前目录下的所有文件和文件夹移动到上一级目录中
mv * ../
8.cp
cp命令用于将一个或多个源文件复制至目标目录下
-i如果复制的目标文件已经存在-i会给出是否覆盖的提示
-a复制的文件与源文件的属性一致
实例:
复制a.txt 文件至当/test文件夹下,保持复制文件与源文件属性一致,若目标文件已经存在则提示是否覆盖源文件
cp -ai a.txt /test
复制当前目录下的所有文件和文件夹至/test目录下
cp -r * /test
9.cat
cat命令主要有3大功能
1.一次显示整个文件:cat a.txt
2.创建一个文件:cat > file1.txt<<EOF(<<后面的EOF表示结束标志,EOF可以换成任意字符)
3.将几个文件合并成一个文件: cat a.txt b.txt > file
-b对非空输出行号
-n输出所有行号
实例:
将a.txt的内容加上行号之后输入到b.txt这个文件里
cat -n a.txt > b.txt
将a.txt和b.txt的内容合并之后输入到d.txt这个文件中
cat a.txt b.txt > d.txt
使用cat生成新的文件
反向显示b.txt文件
tac b.txt
10.more
more类似cat命令用来一屏一屏显示文件方便分页阅读,空格键显示下一屏,b键显示上一屏,q键退出,enter向下滚动一行
命令参数:
+n从第n行开始显示
-n 定义屏幕一次显示n行
11.head
head命令用来显示文档开头至标准输出中,默认显示文件前10行
-n 显示的行数
-c 显示字节数
实例:
显示a.txt的前10行数据
head -n 10 a.txt
显示a.txt的前20个字节
head -c 20 a.txt
显示a.txt除了最后5行的所有内容
head -n -5 a.txt
12.tail
tail命令用来显示文件的末尾内容
-f循环读取
-n显示行数
实例:
显示a.txt的最后10行内容
tail -n 10 a.txt
循环显示a.log的后20行内容
tail -f 20 a.log
13.which
在linux下要查找某个文件但不知道放哪了,可以使用下面一些命令来搜索
which 查看可执行文件的位置,which是在环境变量PATH中搜索某个系统命令的位置,并返回第一个搜索结果(查看当前的PATH配置echo $PATH或者使用env查看所有环境变量及对应值)
实例:
查看python命令是否存在执行哪个
which python
查看ls命令是否存在执行哪个
which ls
14.find
find命令用来查找文件
实例:
查找48小时内修改过的文件(从/目录下查找)
find -atime -2
查找当前目录下以.log为后缀的文件
find ./ -name *.log
查找大于1k的文件
find -size +1000c
15.tar
tar命令用来压缩和解压文件,tar命令本身不具有压缩功能,只有打包功能,调用其他功能来压缩
打包和压缩:打包是指将一大推文件或目录变成一个总的文件;压缩是通过压缩算法将一个大文件变成一个小文件
-C 用于解压时指定需要解压到的目录
实例:
将a.txt,b.txt打成一个tar包
tar -cvf a.tar a.txt b.txt
将etc目录下的所有文件和目录打包到指定目录,并用gz压缩
tar -zcvf /test/etc.tar.gz etc/
将a.tar包解压
tar -xvf a.tar
将etc.tar.gz解压缩
tar -zcvf etc.tar.gz
查看etc.tar.gz中的文件内容
tar -ztvf etc.tar.gz
16.chmod
chmod命令用来改变文件或目录的所属权限
以空格分割
前10个字符中的第一位为-表示该为一个文件d表示为一个目录,后面9位每3位为一组分别代表属主、属组、其他用户的权限,rwx分别代表读写执行权限
权限范围
u:目录或文件的当前用户
g:目录或文件的当前群组
o:除了目录的当前用户和当前群组以外的用户和群组
a:所有用户
权限代号:
r:数字4表示
w:数字2表示
x:数字1表示
-:删除权限数字0表示
实例:
增加a.log的所有用户的执行权限
chmod a+x a.log
给file属主分配读写执行权限,file所在组分配读写权限,其他用户分配读权限
chmod 764 file(chmod u=rwx,g=wr,o=w file)
17.df
df查看磁盘的使用情况
-l只显示本地磁盘
-h以方便阅读的方式显示
实例:
df -lh 以方便阅读的方式显示本地磁盘的使用情况
18.du
du查看文件和目录的磁盘空间使用情况
-a显示目录中所有文件大小
-k以kb为单位显示文件大小
-m以Mb为单位显示文件大小
-g以Gb为单位显示文件大小
-h以易读的方式显示文件大小
实例:
以易读的方式查看test目录下的文件大小
du -h /test
汇总显示/test目录文件大小
du -sh /test
汇总显示当前目录下文件大小,并按大小排序,列出前10个
du -s *|sort -nr|head(再使用du -sh 列出的第一个文件夹就可以看出占用了多大空间)
19.ln
ln命令用来为文件或目录在另一个位置创建一个同步的链接
-s软链接
-v显示详细信息
-b删除覆盖以前建立的链接
实例:
为a.txt建立一个软链接显示详细信息
ln -sv a.txt b.txt
为一个目录创建一个软链接
ln -sv /home/test1/test /home/tp(此时进入tp文件夹就相当于进入到test文件夹,相当于一个快捷方式)
ln -snf /home/test1/test2 /home/tp(修改原有的链接地址为新的地址)
rm /home/tp(删除软连接,不会删除源文件)
20.grep
grep文本搜索命令
实例:
显示以.txt结尾的文件中包含test的行
grep 'test' *.txt
显示a.txt文件中以test开头的行
grep '^test' a.txt
查找app.log文件中Error关键字所在行上下10行的内容
grep -C 10 "Error" app.log
21.ps
-aux 显示所有包含其它使用的进程
ps用来查看当前进程的运行状态
实例:
显示当前所有进程环境变量及进程间的关系
ps -ef
显示当前所有进程
ps -A
与grep联用查找某进程
ps -aux|grep apache
22.top
top命令用来查看当前系统正在执行的进程的相关信息,包括内存占用率、cpu使用率等
第一行:
17:17:24表示当前系统时间
up 7:41表示系统已连续运行7小时41分
2 users当前有2个用户登录系统
load average: 0.13, 0.12, 0.11分别表示系统1min、5min、15min的负载情况
第二行:
Tasks: 225 total, 2 running, 223 sleeping, 0 stopped, 0 zombie
表示当前有225个进程,2个正着运行,223个在休眠,stopped状态有0个,zombie(僵尸)状态0个
第三行:
%Cpu(s): 16.4 us, 4.2 sy, 0.0 ni, 77.6 id, 0.0 wa, 0.0 hi, 1.7 si, 0.0 st
cpu资源信息
16.4 us用户空间占用cpu百分比
4.2 sy内核空间占用cpu百分比
0.0 ni改变过优先级的进程占用cpu的百分比
77.6 id空闲cpu百分比
0.0 wa IO等待占用cpu百分比
0.0 hi 硬中断(Hardware IRQ)占用CPU的百分比
1.7 si 软中断(Software Interrupts)占用CPU的百分比
第四行:
KiB Mem: 1000052 total, 905424 used, 94628 free, 36432 buffers
内存使用信息(单位kb)
1000052 total 物理内存总量
905424 used 使用中的内存总量
94628 free 空闲中的内存总量
36432 buffers 缓存的内存量
第五行:
KiB Swap: 1046524 total, 332344 used, 714180 free. 200780 cached Mem
swap交换分区信息
1046524 total 交换区总量
332344 used 使用的交换区总量
714180 free 空闲中的交换区总量
200780 cached Mem 缓冲的交换区总量
第7行:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID 进程号
USER 进程所有者
PR 进程优先级
NI nice值,负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
23.kill
kill命令用来发送指定的信号给系统,常用来终止指定的进程
常用的有个个信号SIGTERM(15)和SIGKILL(9)
SIGTERM(15):请求一个进程停止运行,它不是强制停止。它可以用一段时间来正常关闭,一般一个进程的关闭需要一段时间来保存进度并释放资源
SIGKILL(9):强制进程立刻停止运行,未保存的进度将会丢失
实例:
停止pid为110213的进程
kill 110213
强制停止pid为110213的进程
kill -9 110213
kilall可以使用进程名替代pid,它会kil掉所有同名的进程
kill 掉Firefox进程
killall Firefox
24.free
显示系统内存的使用情况,包括物理内存、交互区内存和内核缓冲区内存
-b已byte显示内存使用
-k以kb显示内存使用
-m以Mb显示内存使用
-g以gb为单位显示内存使用
-s<间隔秒数>以间隔秒数持续显示内存使用情况
-t 显示内存使用总和
实例:
显示内存使用情况(mb)
free -m
total used free shared buffers cached
Mem: 32110 28628 3482 0 305 6122
-/+ buffers/cache: 22199 9910
Swap: 0 0 0
在第一部分Mem行中有如下参数。
total:内存总数,即32110MB
used:已经使用的内存数,即28628MB
free:空闲的内存数,即3482MB
shared:当前已经废弃不用,总是0
buffers Buffer:缓存内存数,即305MB
cached Page:缓存内存数,即6122MB
其中,内存总数与已使用内存数和空闲内存数的关系是:
total(32110M)=used(28628M)+free(3482M)
在第二部分内容(-/+buffers/cache)中各参数如下所示。
(-buffers/cache):used内存数,即22199MB(指的是第一部分Mem行中的used-buffers-cached)。
(+buffers/cache):free内存数,即9910MB(指的是第一部分Mem行中的free+buffers+cached)。
可见-buffers/cache反映的是被程序实实在在用掉的内存,而+buffers/cache反映的是可以挪用的内存总数。
总结:Mem的参数,是针对操作系统来看,free为剩余可用内存
-/+buffers/cache是针对应用程序来看的,+buffers/cache,应用程序剩余可用内存
每10s查询一次内存使用情况
free -s
25.nslookup
nslookup用来查找域名对应的ip
nslookup baidu.com
26.telnet
telnet命令可以查看一个域名是否可用,或验证当前的机器是否可以访问指定的tcp端口
telnet pcshop.huimin100.cn 80如果没有报错则该域名可用
telnet 10.37.18.188 9091
27.查看ubuntu版本号
uname -a查看linux内核版本
lsb_release -a 查看ubuntu版本
28.linux查看某个文件夹的大小
du -h --max-depth=1
29.linux下常用mysql语句
如果不知道mysql安装目录在哪可以which mysql查看
进入到mysql安装目录下执行mysql -u root -p
指定ip 端口登录:mysql -h 192.168.4.9 -P 3306 -u user -p'passwd'
查看mysql 下数据库
show databases;
选择数据库
use database_name;
查看表结构
desc table_name;
增加一个字段name
alter table table_name add name varchar(20);
删除表中全部数据
truncate table table_name;(速度快,不写日志,不可恢复)
delete from table_name;(速度慢,写日志,可恢复)
删除表中的某一条数据
delete from table_name where id=20;
给用户sonar,sonartest数据库的所有权限,并且能在任何主机上访问
GRANT ALL ON sonartest.* TO 'sonar'@'%'
30.wget
wget用来从网络上自动下载文件的工具,支持http ,https,ftp协议
-q 安静模式(没有输出)
-P 将文件保存到目录
wget http://place.your.url/here
31.nohup
nohup:不挂断(退出账户或关闭当前终端进程不结束)的运行命令,一般和&一起使用(只使用nohup不使用&,ctrl+c程序会停止)
&:在后台运行(只使用&不使用nohup,关闭xshell控制台程序会停止)
语法:nohup command [Arg ...] [&]
无论是否将nohup的命令重定向到终端,输出都将附加到当前目录的nohup.out文件中,如果当前目录的nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中
nohup python start.py 2>&1 >log.out &
表示后台不挂断运行start.py,2>&1>log.out表示将标准错误重定向到标准输出,再重定向输出到log.out中
cut
按照字节截取文件内容
cut -b 152- dsf_server_trace.log|more
按照域(‘ ’分割)分割截取文件内容
cat dsf_server_trace.log|cut -d' ' -f1 |sort|uniq -c
参考博客http://www.cnblogs.com/gaojun/p/3359355.html
linux awk使用https://www.cnblogs.com/ginvip/p/6352157.html