linux常用命令
1. linux常用命令
1.1 简介
1.2 虚拟机相关
安装:虚拟机安装linux,这里不做介绍
登录:如果是root,提示符为#,普通用户则为$
退出:logout
重启:reboot
关机:halt
1.3 linux文件系统
了解即可
linux下一切皆是文件
目录结构
1.3.1 目录说明
/:为跟目录
/bin:bin是Binary的缩写。这个目录存放着最经常使用的命令,例如cp、mv、ls等
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。
/dev:dev是Device(设备)的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/opt:opt 是 optional(可选) 的缩写,这是给主机额外软件安装目录 cd /opt/lamp/
/proc:proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
这个目录的内容不在硬盘上而是在内存里
less /proc/cpuinfo
/root:该目录为系统管理员,也称作超级权限者的专用目录
/sbin:s 就是 Super User 的意思,是 Superuser Binaries (超级用户root的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/tmp:tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的
/usr:usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录
- /usr/local:这是提供给一般用户的/usr目录,在这里安装一般的应用软件
- /usr/lib:存放一些常用的动态链接共享库和静态档案库
- /usr/include:用来存放Linux下开发和编译应用程序所需要的头文件
- /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序
- /sbin, /usr/sbin 则是给 root 使用的指令
- /usr/bin:系统用户使用的应用程序(指令)
- /bin, /usr/bin 是给系统用户使用的指令(除root外的通用户)
- /usr/src:内核源代码默认的放置目录
/var:var 是 variable(变量) 的缩写,存放经常改动的数据文件,包括各种日志文件,如果你想做一个网站,你也会用到/var/www这个目录
1.3.2 目录颜色
蓝色:目录
绿底蓝字:绿底蓝字,说明这个目录加了x权限
绿色:可执行文件
红色:压缩文件
浅蓝:链接文件
灰色:其他文件
1.4 用户
#表示root,$表示普通用户
useradd:添加用户
su:切换用户
su root 还是之前的目录
su - root 进入这个用户的家目录
sudo:获取超级用户权限
有一些命令是普通用户没有权限操作的,所以要用sudo来获取超级用户权限
1.5 vi/vim文本编辑器命令
命令模式下
1.5.1 行号
显示行号::set nu
不显示行号: :set nonu
1.5.2 光标定位
方向键
左:h backsapce
右:l 空格
上: k
下:j
上一行行首:-
本行行首:0(数字0)
本行行尾:Shift+4(即$)
指定行:nG,定位到第5行,5G
向后半屏:ctrl + d
向后全屏:ctrl + f
向前半屏:ctrl + u
向前全屏:ctrl + b
文件末尾:G(shift + g)
搜索:
/ 向光标下搜索关键字
? 向光标上搜索关键字
n 从上往下看结果
N(shift+n) 从下往上看结果
替换
替换当前行首次出现: :s/old/new old表示旧数据 new表示新数据
替换当前行全部: :s/old/new/g
替换指定范围行的首次::x,y s/old/new 从x行到y行
替换指定范围全部: :x,y s/old/new/g
修改全部: :%s/old/new/g
复制
单行: yy 粘贴p
多行:nyy 1,3y 复制1-4行
粘贴:
小p
大P
删除
1.删除字符
x 光标所在位置
X 光标前
nx 删n个,从光标所在位置开始
nX 删n个,光标前的字符
2.行内删除
D 当行,光标及光标后的内容
d$ 当行,光标及光标后的内容
d0 当行,光标前的内容
3.整行删除
dd 单行删除
ndd 多行删除
x,yd 多行 最后需要按回车键
撤销
u 撤销最近的一次操作
U 撤销所有操作
退出 :q
保存退出 :wq w意思是write,保存文本,q是quit,这样就会退出 vim
不保存退出 如果编辑了,还没保存,不想要了,可以输入:q!,后面加叹号的话表示强制
进入编辑模式
i:光标不会移动插入
I:光标移动到当前行首插入
a: 光标向后移动一个字符的位置,按Esc退出该模式后光标会向前挪一个字符的位置。
A:光标移动到当前行行尾插入
o:会伴随有新起一行(光标所在行的下一行)的操作,按Esc退出该模式后换行的操作仍不会撤销。
O:会伴随有新起一行(光标所在行的上一行)的操作,按Esc退出该模式后换行的操作仍不会撤销。
退出编辑模式:esc
1.6 帮助
1.6.1 help
命令使用摘要及参数列表
xxx -h
如:ls --help
说明:可能内核版本原因,如果不行,就用man
1.6.2 man
命令说明文件
比help更加详细的文档,man xxx (q退出)
如:man ps
1.7 文件管理
pwd:显示当前路径
ls:列举指定目录下的子目录和文件
-a, --all:不隐藏任何以“.” 字符开始的项目
-1:用列表(长格式)的方式列出文件信息
ls -l (ll):
-rwxr-xr-x 1 mysql mysqlg 152 7月 9 17:20 test1.txt
说明:
其中第一个字段的第一个字符是文件类型
- “-”表示普通文件
- “d”代表目录
- “l”代表连接文件
- “b”代表设备文件
-rwxr-xr-x 第一个字段剩下的 9 个字符是模式
(这三组分别表示文件所属的用户权限、文件所属的组权限以及其他用户的权限)
其实就是权限位(access permission bits)。
3 个一组,每一组 rwx 表示“读(read)”“写(write)”“执行(execute)”。
如果是字母,就说明有这个权限;如果是横线,就是没有这个权限
1 第二个字段是硬链接(hard link)数目,这个比较复杂
mysql 第三个字段是所属用户
mysqlg 第四个字段是所属组
152 第五个字段是文件的大小(字节)
第六个字段是文件被修改的日期
第七个字段是最后是文件/文件夹名
你可以通过命令chown改变所属用户,chgrp改变所属组。
-t 以时间排序,时间由近及远
-r, --reverse 以相反次序排列,如果是-rt,表示时间由远及近
-R, --recursive 同时列出所有子目录层
-S 按大小排序,单位是字节
-h 易读方式,根据文件大小,转换为M、K
cd change directory,就是切换目录
cd 回车 退到当前用户个人目录 (同 cd ~)
cd / 进入根目录
cd .. 返回上级目录
cd ../xx 退到上级目录的xx目录
cd - 回到上一次操作的目录
cp 复制文件夹/文件
参数
-a:尽可能的将文件的属性、权限的内容都照原状复制
-b:如果目的文件存在,就创造一个备
-r:若源中有子目录,则将子目录下的文件及目录亦全部复制至目的目录
-i:若目的地有重复的文件,询问是否覆盖
-f:若目的地有重复的文件,则覆盖原有文件
-L:复制符号链接,自动修改链接以保证链接有效
例如:复制目录并改名
cp -r phpwind_v9.0.1_20141223/upload/ ~/37/phpwind
mv 移到文件/文件夹、改名
用法:
- 如果目标目录存在,则是复制到该目录下
- 如果目标目录不存在,则是改名
参数
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆 盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可 以避免误覆盖文件
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用
rm 删除文件/文件夹
参数
-r:删除目录及子目录,目录下如果有子目录及文件也会被删除
-f:不询问直接删除
-i:删除前逐一询问确认
rm -rf test/* 删除test目录下的所有内容
rm -rf test/ 删除test目录
rm -rf test 删除test目录
mkdir 创建文件夹
mkdir -p /mysql/{data,redo,binlog,tmp,logs}
rmdir 用来删除一个空文件夹
rmdir不能删除非空目录
-p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除
rmdir -p test1/test2 -p表示连同子目录一起删除
touch 创建一个空文件
cat 查看小文件内容,否则内存撑爆了
参数
-n:由第一行开始对所有输出的行数编号
-b:和-n相似,只不过对于空白行不编号
将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件 cat a.txt b.txt > c.txt
对行进行编号(显示行号)
- cat -b test.txt
- cat -n test.txt
往文件中添加内容(如果文件不存在,会创建文件):cat 1.txt> test.txt
tac 反向显示文档内容,
由最后一行到第一行反向在屏幕上显示出来,cat和tac相反
more 是分页后只能往后翻页
翻到最后一页自动结束返回命令行
用法:more [参数] 文件
下一页:回车
下一行:空格
less 是往前往后都能翻页
用法:less [参数] 文件
下一行:
- 回车
- j
- 方向键↓
上一行
- k
- 方向键↑
下一页
空格
展示第一行:g
展示最后一行:G
head 显示文件的开头至标准输出中
-n 显示的行数
示例:
head -2 /etc/passwd
head -n2 /etc/passwd
tail 动态查看文件内容
查看文件末尾内容
-f 动态读取
示例
查看passwd的后2行:tail -2 /etc/passwd
du 文件和目录的磁盘使用空间
用法:du -sh *
参数:
-s或--summarize 仅显示总计,只列出最后加总的值
-h或--human-readable 以K,M,G为单位,提高信息的 可读性
-m或--megabytes 以MB为单位输出
lsof 列出当前系统打开文件的工具
参数:
lsof filename 显示打开指定文件的所有进程
lsof -i :80 查询指定端口打开的文件
lsof -p pid 查询指定的pid打开的文件
chmod 用来给文件或者文件赋权限
两种方式:
数字 r=4 w=2 x=1
文本
示例:chmod 755 test.txt
chown 改变文件所有者和所属组
-R 递归式地改变指定目录及其所有子目录、文件
chgrp 改变文件所属组
-R 递归
wc 统计指定文件中的行数、字节数、字数,并将统计结果显示输出
参数
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
示例:cat access.log |wc -l
clear:清屏
history 查看历史命令
命令记录个数 echo $HISTSIZE
修改 export HISTSIZE=1000
清除历史命令 history -c
1.8 搜索
1.8.1 grep 显示文件中的匹配行
参数
-c:显示匹配行数
-e 字符串:匹配特殊字符串,如-开头
-i:忽略大小写
-v:输出不匹配行
-w:匹配指定字符串
可以和别的命令通过"|"管道符连接使用
示例
ps -ef|grep httpd |grep -v grep
grep ren /etc/passwd
grep -c ren /etc/passwd
去掉空行、注释 grep -Ev '#|^$' nginx.conf.default > nginx.conf
1.8.2 find 查找目录下的文件
用法:find 目标目录 搜索参数 操作参数
参数
-name 文件名:可以跟通配符
-amin 分钟数:文件最后访问时间为指定分钟之前,负数表示之后
-atime 天数:文件最后访问时间为指定天数之前,负数表示之后
-cmin 分钟数:文件最后修改时间为指定分钟之前,负数表示之后
-ctime 天数:文件最后修改时间为指定天数之前,负数表示之后
-user 用户名:属于用户的目录和文件
-type 文件类型
示例:find / -name lampp
1.9 定位文件位置
1.9.1 whereis
whereis mysql
1.9.2 which
which mysql
which lrzsz
区别:
whereis是搜索程序名,如果是一个普通的文件是找不到的
which命令只查找环境变量中path里面的路径
1.10 归档压缩
1.10.1 zip/unzip
压缩zip包和解压缩以.zip结尾压缩文件
zip
命令格式:zip [选项] 压缩文件名 需要压缩的文档列表
参数
-r 递归压缩,将指定目录下的所有文件以及子目录全部压缩
-x “文件列表” 压缩时排除文件列表中指定的文件
-m 将文件加入压缩文件压缩后,删除原始文件,即把文件移到压缩文件中
unzip
参数
-x "文件列表" 解压文件,但不包含文件列表中指定的文件
-t 测试压缩文件有无损坏,并不解压
-v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小、文件名和压缩比等,并不解压
-n 解压时不覆盖已经存在的文件
-o 解压时覆盖已经存在的文件,并且不要求用户确认
-d 目录名 把压缩文件解压到指定目录下
1.10.2 tar
参数
-c:创建新文档
-x:解压缩归档文件
-f 文件名:使用归档文件
-z:使用gzip解压缩
-v:详细输出模式
压缩:tar -zcvf 1.tar.gz 1.txt 2.txt 3.txt,命令可以将1.txt,2.txt,3.txt 打包并压缩成1.tar.gz
解压缩:tar zxvf 1.tar.gz,可以解压
1.11 进程
1.11.1 ps 显示瞬间进程 (process) 的动态
显示瞬间进程 (process) 的动态,使用权限是所有使用者
参数
ps -aux
ps -ef
可以用管道符连接其他命令使用
示例:ps -ef|grep tomcat
1.11.2 kill 用来终止指定的进程
-9 强制终止进程
kill -9 pid
杀所有java进程:ps -ef | grep java|grep -v grep | awk '{print $2}' | xargs kill -9
1.12 软件安装
1.12.1 rpm安装包
参数
-i 安装
-U 更新(升级)
-e 卸载
-v 显示安装信息
-h 显示安装进度
使用
安装: rpm -ivh xxx.rpm
如果提示有依赖关系,我们忽略依赖关系强制安装
rpm -ivh --nodeps xxx
查询:rpm -qa|grep xxx
卸载:rpm -e xxx --nodeps
如果卸载的时候提示有软件依赖它,卸载时需要加上 --nodeps
1.12.2 yum
yum install -y xxx
源码安装
二进制安装