常用的linux基础命令
1、ls 显示目录属性
-l:(也可以简写成ll),列表显示权限等属性
-a:显示所有文件包括隐藏文件等
-d:只列出目录本身
2、chgrp 改变档案所属群组
eg:chgrp users install.log/
3、chown 改变档案拥有者
eg:chown emily install.log ; chown Emily:users install.log
-R : 迚行递归(recursive)的持续变更,亦即连同次目彔下的所有档案都变更/
4、chmod 修改权限,r=4,w=2,e=1
eg:把.bashrc这个档案的权限修改回-rw-r--r--的指令chmod 644 .bashrc或者chmod
-R 修改文件夹及其子文件的权限
5、cd 变换目录
cd代表回到当前用户的家目录,等同于cd ~
..回到上一级目录
.当前目录
~家目录
-之前的目录,上一个目录
6、pwd 显示当前目录
-P:表示显示确实的路径,例如var/mail,mail是个链接档,加上-P会显示mail的实际路径var/spool/mail
7、mkdir 建立一个新的目录mkdir test
-p递归创建子目录,例如test/test1/test2 ; -m 不使用默认权限,创建目录的时候加权限
8、rmdir 删除一个空的目录 rmdir test
-p:删除上层目录
9、cp 复制cp -rf file /tmp
cp:复制指定文件到另一文件或目录
用法: cp [-abrifLP] [source] [dest]
-a:尽可能的将文件的属性、权限的内容都照原状复制
-b:如果目的文件存在,就创造一个备份
-r:若源中有子目录,则将子目录下的文件及目录亦全部复制至目的目录
-i:若目的地有重复的文件,询问是否覆盖
-f:若目的地有重复的文件,则覆盖原有文件
-L:复制符号链接,自动修改链接以保证链接有效
eg:cp -rf a.txt /tmp
10、rm 删除档案或目录rm -rf a.txt
rm:用来删除文件或目录
用法:rm [-ifr] name
-r:删除目录及子目录,目录下如果有子目录及文件也会被删除
-f:不询问直接删除
-i:删除前逐一询问确认
注意: 删除的文件非常难恢复,没有windows的回收站
eg:删除/tmp/logs下所有文件
rm -rf /tmp/logs/*
11、mv 移动mv file /tmp
mv:用来为文件或目录改名,或者将文件由一个目录移入另一个目录中
用法:mv[options] 源文件或目录目标文件或目录
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
eg:将/usr/local/tomcat下所有文件移动到 /tmp/tomcat下
mv /usr/local/tomcat/* /tem/tomcat
将a.txt改名为b.txt
mv a.txt b.txt
12、cat 由第一行开始显示档案内容cat test.txt
13、tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
14、nl 显示的时候,顺道输出行号!
15、more 一页一页的显示档案内容 more 档案名
空格键 (space):代表向下翻一页
Enter :代表向下翻『一行』;
字符串 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;
:f :立刻显示出文件名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该档案内容。
b 或 [ctrl]-b :代表往回翻页,不过这么做只对档案有用,对管线无用。
16、less 和more 类似,但是比 more 更好的是,他可以往前翻页, 可以用PgUp/PgDn
17、head 只看头几行
18、tail 动态查看文件内容 tail -f error.log
tail:查看文件末尾内容
用法:tail [参数] [文件]
主要参数:
-f 动态读取
eg:动态查看日志 tail -f err.log
查看末尾10行日志 tail -10 err.log
动态查看末尾5行日志 tail -5f err.log
19、od 以二进制的方式读取档案内容
20、touch 修改档案时间或建新档
21、df 列出文件系统整体磁盘使用量
-h:以M/G的形式显示大小
-i:列出可用的inode的使用量和剩余量 df –ih
eg:df –h /etc 将/etc 底下的可用的磁盘容量以易读的容量格式显示
df –aT将系统内的所有特殊文件的格式及名称列出来
22、ps 查看某个进程情况
eg:ps –ef|grep java
23、du 列出目前目录下所有档案容量
du:文件和目录的磁盘使用空间
用法:du [选项][文件]
-s或--summarize 仅显示总计,只列出最后加总的值
-h或--human-readable 以K,M,G为单位,提高信息的 可读性
-k或--kilobytes 以KB(1024bytes)为单位输出
-m或--megabytes 以MB为单位输出
-S或--separate-dirs 显示个别目录的大小时,并不含其子 目录的大小
eg:du –sm /* 检查根目录地下每个目录所占用的容量
24、gzip 压缩文件
Gzip:压缩和解压缩
命令格式:
gzip –[1…9] [trv] file
gunzip file
-1:表示压缩速度最快,压缩比最低
-9:表示压缩速度最慢,压缩比最高
-t:表示校验压缩文件的完整性
-r:表示压缩时包含子目录中的内容
-v:表示压缩时显示正在压缩的文件名和压缩比等资料
eg:gzip -1trv test.txt
gunzip test.txt.gz
25、tar 打包
tar:文件打包
用法 :tar[参数] 目标文件 源目录或文件
主要参数:
-c:创建新文档
-x:解压缩归档文件
-f 文件名:使用归档文件
-j:使用bzip2解压缩
-z:使用gzip解压缩
-v:详细输出模式
eg:tar zcvf test.tar test#压缩
tar zxvf test.tar #解压缩
eg:tar –cv –f etc.tar etc 打包
tar –xv –f ect.tar 解包
tar –zpvc –f /root/etc.tar.gz 打包并压缩
tar –jpvc –f /root/etc/tar.bz2 打包并压缩
tar –zxv –f /root/etc.tar.gz 解包解压缩
tar –jxv –f /root/etc.tar.bz2 解包解压缩
26、zip压缩、unzip解压缩
功能:压缩zip包和解压缩以.zip结尾压缩文件
命令格式:
zip [选项] 压缩文件名 需要压缩的文档列表
-r 递归压缩,将指定目录下的所有文件以及子目录全部压缩
-x “文件列表” 压缩时排除文件列表中指定的文件
-m 将文件加入压缩文件压缩后,删除原始文件,即把文件移到压缩文件中
- 压缩级别 压缩级别是一个1~9的数字
可以不加任何参数使用
unzip [选项] 压缩文件名
-x "文件列表" 解压文件,但不包含文件列表中指定的文件
-t 测试压缩文件有无损坏,并不解压
-v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小、文件名和压缩比等,并不解压
-n 解压时不覆盖已经存在的文件
-o 解压时覆盖已经存在的文件,并且不要求用户确认
-d 目录名 把压缩文件解压到指定目录下
可以不加任何参数
eg:zip -9r /opt/etc.zip /etc #把/etc下所有文件和文件夹压缩到/opt下的etc.zip
zip –r /opt/var.zip /var –x “*.log”#把/var下所有的文件和文件夹除了以.log结尾的都压缩到/opt目录的var.zip中
unzip –o /opt/etc.zip –d /etc #把/opt/etc.zip解压到 /etc目录下
27、find查找目录下的文件
find:查找目录下的文件
用法: find 目标目录 搜索参数 操作参数
主要参数:
-name 文件名:可以跟通配符
-amin 分钟数:文件最后访问时间为指定分钟之前,负数表示之后
-atime 天数:文件最后访问时间为指定天数之前,负数表示之后
-cmin 分钟数:文件最后修改时间为指定分钟之前,负数表示之后
-ctime 天数:文件最后修改时间为指定天数之前,负数表示之后
-user 用户名:属于用户的目录和文件
-type 文件类型
eg:find / -name test
28、vi 编辑文件
光标定位
M 移动光标到页面中央
L移动光标到页面尾处
H移动光标到页面开始处
Ctrl+f向后翻页
Ctrl+b向前翻页
0移动光标到行首
$移动光标到行尾
/:从上往下开始查找
?:从下往上开始查找
撤销和重复
u复原前一个动作
. 重复前一个动作
复制 粘贴 删除
nyy 复制光标所在的向下n行内容
yw复制光标后的单词,以空格为分界
p在光标处粘贴复制的内容
ndd删除光标所在向下n行的内容
ctrl + d:往下翻半屏内容
ctrl + u:往上翻半屏内容
shift + g:到文件末尾
r:替换当前位置字符
x:删除当前位置字符
dd:删除整行
set number:显示行号
set nonu:取消显示行号
:1,3y 复制第一行到第三行
:1,3d 删除第一行到第三行
:1,3s/str/str_new/g 替换第一行到第三行中的字符串
:1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符
:1,3 g/str /d 删除第一行到第三行中含有这个字符串的行
搜索字符串
输入/+要查找的字符串
/test
按n键重新查找下一个
N查找上一个
退出vi
q 退出vi
q! 不保存退出
wq 保存退出
e!不保存修改的文件
w 保存
!强制,后面加叹号的话表示强制
29、rpm安装
rpm –ivh 包名
一次安装多个软件 rpm –ivh a.i386.rpm b.i386.rpm *.rpm
直接由网络上某个档案安装 rpm –ivh http://website/path/a.i386.rpm
查看安装软件 rpm –q 名 eg:rpm –q zip
--nodeps 忽略依赖安装
rpm -qa | grep jdk 检查是否安装了jdk
rpm –e jdk 卸载
如果卸载的时候提示有软件依赖它,卸载时需要加上 --nodeps
eg: rpm -e glibc –nodeps
rpm查询已安装的软件包
rpm –qa >list.txt 把已经安装软件包都输出到list.txt这个文件中
注:可以用前面介绍的grep命令查找
rpm -qa:查询已安装的所有软件包
rpm –q glibc:检察glibc包的版本
示例:rpm -qa|grep httpd
30、yum安装
yum install 名
-y系统自动给出yes响应
yum 移除软件 yum remove 名
yum 清理缓存 yum clean all
yum info 名 eg:yum info zip 会列出软件是否安装、名称、版本、档案容量等信息(rpm –qi zip)
eg:
yum install httpd#安装Apache
yum -y install httpd#如果有选项全部同意安装
yum list|grep httpd#从yum列表中查找你需要的软件
yum update httpd #yum升级Apache
yum list installed |grep mysql#查询是否安装mysql
yum remove mysql#卸载yum安装的mysql
31、top查看内存使用情况(动态)
q退出(动态的)
按用户查看 top –u 用户名
top -H查看线程,-H表示一行一个线程
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
32、ps 查看进程(某个时间点,静态的)
ps:显示瞬间进程 (process) 的动态,使用权限是所有使用者。
主要参数: ps的参数非常多, 此出仅列出几个常用的参数
-A或-e:列出所有的进程。
-l:显示长列表。
-m:显示内存信息。
-w:显示加宽可以显示较多的信息。
-f:显示不同进程之间的关系。
a:显示终端上的所有进程,包括其它用户的进程。
-au:显示较详细的信息。
-aux:显示所有包含其它使用者的进程。
常用的参数是-aux和-ef
可以用管道符连接其他命令使用
eg:ps -ef |grep httpd #查询Apache相关进
查看某个进程情况 ps –ef|grep java
ps xH查看所有存在的线程
ps-mp pid查看一个进程起的线程数
33、Free观察内存使用情况
34、netstat –anp|grep ‘80’ 查看80端口占用情况 netstat -nlpt|grep 80
netstat –anp | grep mysql 查看程序端口
35、lsof –i:3306 查看端口占用情况
lsof:列出当前系统打开文件的工具
用法:lsof [options] filename
常用参数:
lsof filename 显示打开指定文件的所有进程
lsof -c string 显示COMMAND列中包含指定字符的进程所有打 开的文件
lsof -u username 显示所属user进程打开的文件
lsof +d DIR/ 显示目录下被进程打开的文件
lsof +D DIR/ 上,但是会搜索目录下的所有目录,时间相对较长
lsof -i :80 查询指定端口打开的文件
Lsof -p pid 查询指定的pid打开的文件
lsof输出说明
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、 txt等
TYPE:文件类 型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
36、系统服务相关命令
chkconfig:chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。
常用参数:
chkconfig --add test.sh #将test.sh作为一个系统服务,但是test.sh这个脚本必须放在/etc/rc.d/init.d目录下(还有文章,看注释)
chkconfig --del test.sh #删除一个系统服务
service test.sh start #运行刚才设置的系统服务
chkconfig test.sh on 开机启动
chkconfig test.sh off 取消开机启动
一些常见的系统服务:
iptbles #防火墙
network #网络
httpd #Apache
nginx #nginx
除了刚才那种把做成系统服务,然后做成开机启动,还有一种就是在/etc/rc.d/rc.local文件中加入要开机执行的脚本
例如要开机启动lampp,在/etc/rc.d/rc.local文件中加入/opt/lampp/lampp start即可
临时关闭防火墙 service iptables stop,重启后会失效
date命令,显示当前系统时间,后面可以跟日期格式
cal查看日历,后面可以跟年份查看指定年份的日历
whoami查看当前登录用户
who查看当前有多少用户在使用系统
eg: chkconfig --list 查看所有系统服务
chkconfig iptables off 开机不启动该服务
chkconfig iptables on 开机不启动该服务
service httpd stop 停止该系统服务
service iptables start 启动该服务
service iptables restart 重启启该服务
37、重定向 > 查出来的内容复制到文件中
例如 rpm –qa > test.txt 把查出来的内容写到文件test.txt中,这种情况如果test.txt中有内容就会被覆盖,如果不想覆盖 可用两个> 例如rpm –qa >> test.txt
重定向还可用于复制文件,test.txt >> test01.txt text.txt中的内容加在text01.txt原有内容后面
38、date +'%Y%m%d %H:%M:%S'获取系统当前时间
39、su 切换身份
用法: su root 或者 su - root
这两者的区别是su root不会重新加载切换用户的用户变量,su - root会重新加载用户的用户变量
40、sudo获取超级用户权限执行
有一些命令是普通用户没有权限操作的,所以要用sudo来获取超级用户权限。
如果普通用户要使用sudo命令,需要在/etc/sudoers文件中配置才可以使用,例如要besttest用户可以使用sudo获取root用户权限,使用root用户编辑/etc/sudoers文件,找到 root ALL=(ALL) ALL 这一行,在它下面加入bestest ALL=(ALL) NOPASSWD:ALL然后保存即可。NOPASSWD代表该用户使用sudo的时候不用输入密码
41、后台运行jmeter : nohup jmeter-server &
42、上传下载rzsz
sz:将选定的文件发送到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到linux服务器
检查是否安装了rzsz,命令:rpm –qa | grep lrzsz
如果没有安装执行下面语句安装
yum install –y lrzsz
使用:
sz filename
把文件test.sql传到本地 sz test.sql
用rz命令以后,会弹出对话框让选择要上传的文件
43、注销
exit用于字符界面,图形界面只退出终端窗口
logout 文本终端
44、重启
reboot
-w:不实际关机,用户登录信息写入/var/log/wtmp
-d:不将用户登录信息写入/var/log/wtmp
-f:强制重启
reboot 可以不接参数
shutdown
shutdown -r 延时分钟数 “提示信息”
shutdown -r now(now表示立即执行)
不能单独用,至少2个参数
45、关机
halt
-w:不实际关机,用户登录信息写入/var/log/wtmp -d:不将用户信息写入/var/log/wtmp
-f:强制关机
-p:关机后,关闭电源
可以不接参数
poweroff
除了无-p参数,其他与halt同
init 0
shutdown
shutdown -h 延时分钟数 “提示信息”
shutdown -h now(now表示立即执行)
不能单独用,至少2个参数
46、添加用户useradd
useradd -d 家目录 -g 组名 -G 组集合(逗号间隔) -p 密码 -s 用户shell程序 用户名
useradd -d /usr/local/nginx/ -g nginx -G nginx,oracle -p123456 -s /bin/bash test4
若没有使用-p,可以使用命令加密:passwd 用户名
passwd test4
可以不加参数直接useradd test5,添加一个用户,默认使用bash shell,家目录在/home/下
47、修改用户 usermod
usermod -l 新用户名 -d 新家目录 旧用户名
usermod –l tom –d /usr/local/tomcat test4
家目录要存在,且为绝对路径
Usermod中同样可以使用useradd参数
48、删除用户userdel
userdel -r 用户名
userdel –r test3
-r用于删除家目录及其所有文件
49、增加组groupadd
groupadd -g 组ID -r 组名
Groupadd –g 451 –r besttest
-r:建立系统组,组ID小于499
新组ID在500-60000之间,小于500的为系统组
所有参数均可省(除了组名)
goroupadd dba
50、修改组groupmod
groupmod -g 组新id -n 组新名 组旧名
groupmod -g 561 -n testtest test
51、删除组groupdel
groupdel 组名
groupdel test
52、查看ip地址ifconfig
53、重启、启动、停止网络命令 service network restart/start/stop
54、查看历史命令history
55、清屏clear
56、显示文件匹配的行grep命令
grep:显示文件中的匹配行
用法:grep [参数] 字符串 文件名
主要参数:
无参:显示匹配行
-c:显示匹配行数
-e 字符串:匹配特殊字符串,如-开头
-i:忽略大小写
-v:输出不匹配行
-w:匹配指定字符串
可以和别的命令通过"|"管道符连接使用
eg:grep -c “foo” a.txt
ps -ef|grep httpd |grep -v "grep"
57、kill终止进程
kill:用来终止指定的进程
命令格式:kill [参数][进程号]
主要参数:
-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户
-9 强制终止进程
可以不加任何参数直接使用
可以后面跟多个pid
eg:kill -9 2321
kill -9 2312 2819
kill 8321
58、设置环境变量
Linux中系统变量是在/etc/profile目录下的,用户的环境变量则在用户的家目录下的.bash_profile文件中,系统环境变量会在开机的时候全部加载,用户的环境变量之后在用户登录时加载
比如说没有mysql命令,我们的mysql客户端是在/opt/lammp/bin目录下,那就可以把/opt/lammp/bin加入到/etc/profile就可以使用mysql命令了 export LAMPP=/opt/lampp/bin,然后再source /etc/profile 重新加载一下就可以生效了