Linux常用命令
:q! 强制不保存退出
关机:sudo halt
一般模式可以复制、粘贴、不能插入(除非进入另外一个模式)
Linux文件与目录结构
Linux系统中一切皆文件。
Linux目录结构
/bin (/usr/bin 、 /usr/local/bin)
是Binary的缩写, 这个目录存放着最经常使用的命令
/sbin (/usr/sbin 、 /usr/local/sbin)
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/home
存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/root
该目录为系统管理员,也称作超级权限者的用户主目录。
/lib
系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/etc
所有的系统管理所需要的配置文件和子目录
/usr
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
/boot
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里
/proc
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/srv
service缩写,该目录存放一些服务启动之后需要提取的数据。
/sys
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
/tmp
这个目录是用来存放一些临时文件的。
/dev
类似于windows的设备管理器,把所有的硬件用文件的形式存储。
/media
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
/opt
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/usr/local
这是另一个给主机额外安装软件所摆放的目录。一般是通过编译源码方式安装的程序。
/var
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/selinux
SELinux是一种安全子系统,它能控制程序只能访问特定文件。
VI/VIM编辑器
VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。
VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。
修改主机名
# vi /etc/sysconfig/network
ETWORKING=yes
HOSTNAME=kris
一般模式
以vi打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。
yy 复制光标当前一行
y数字y 复制一段(从第几行到第几行)
p 箭头移动到目的行粘贴
u 撤销上一步
dd 删除光标当前行
d数字d 删除光标(含)后多少行
x 删除一个字母,相当于del,向后删
shift+^ 移动到行头
shift+$ 移动到行尾
gg或者1+G 移动到页头
G 移动到页尾
数字+G(先输入数字,在按G) 移动到目标行
编辑模式
在一般模式中可以进行删除、复制、粘贴等的动作,但是无法编辑文件内容!要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。
注意了!通常在Linux中,按下这些按键时,在画面的左下方会出现『INSERT或 REPLACE』的字样(vi显示insert,vim显示中文插入),此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
i 当前光标前
a 当前光标后(插入内容光标马上移动到后边)
o 当前光标行的下一行
指令模式
在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。
在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!
:w 保存
:q 退出
:! 强制执行
/ 要查找的词 n 查找下一个(按n光标移动),N 往上查找
? 要查找的词 n是查找上一个,N是往下查找
:set nu 显示行号
:set nonu 关闭行号
ZZ(shift+zz) 如果没有修改文件直接退出,如果修改了文件保存后退出
强制保存退出
:wq!
文件目录类
mkdir 创建一个新的目录| touch 创建空文件
[root@kris ~]# mkdir hei [root@kris ~]# mkdir hei/xi //创建多级目录加 -p [root@kris ~]# mkdir -p kk/kris/smile
//创建文件
[root@kris ~]# touch 1.txt hei/xi
cp 复制文件或目录
cp [选项] source dest (功能描述:复制source文件到dest)
-r 递归复制整个文件夹
[root@kris ~]# cp -r hei kk/kris
rm 移除文件或目录
-r 递归删除目录中所有内容
-f 强制执行删除操作,而不提示用于进行确认。
-v 显示指令的详细执行过程
[root@kris ~]# rm -rf hei
mv 移动文件与目录或重命名
基本语法
(1)mv oldNameFile newNameFile (功能描述:重命名)
(2)mv /temp/movefile /targetFolder (功能描述:移动文件)
[root@kris kris]# mv hei heihei (重命名)
[root@kris ~]# mv kk/kris ./(移动到当前目录,之前的就不存在了)
查看文件内容
cat(一般查看比较小的文件,一屏幕能显示全的)
[root@kris kris]# cat -n test.txt ##查看所有日志内容,全部显示出来
[root@kris kris]# cat test.txt | head -n 200 ##查看日志前200行内容
[root@kris kris]# cat test.txt | tail -n 200 ##查看日志末尾200行内容
[root@kris kris]# more test.txt ##分屏显示,按enter键往下查看;
more 文件内容分屏查看器
less 分屏显示文件内容
它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
[root@kris ~]# less smartd.conf
空白键 向下翻动一页;
[pagedown] 向下翻动一页
[pageup] 向上翻动一页;
/字串 向下搜寻『字串』的功能;n:向下查找;N:向上查找;
?字串 向上搜寻『字串』的功能;n:向上查找;N:向下查找;
q 离开 less 这个程序;
压缩和解压类
-z 打包同时压缩
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-x 解包.tar文件
[root@kris ~]# tar -zcvf 12.tar.gz 1.txt 2.txt
1.txt
2.txt
[root@kris ~]# tar -zxvf 12.tar.gz -C xi (解压,-C是可以指定解压的路径,默认是本目录)
1.txt
2.txt
查看进程
如果想查看进程的CPU占用率和内存占用率,可以使用 ps -aux ; ps -aux | grep clickhouse-server
如果想查看进程的父进程ID可以使用 ps -ef ;
[root@hadoop myredis]# ps -ef | grep redis //查看父子进程之间的关系;
root 5713 3334 0 18:16 pts/0 00:00:00 grep redis
[root@hadoop myredis]# redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>
[root@hadoop myredis]# redis-server redis.conf
[root@hadoop myredis]# ps -ef | grep redis
UID PID PPID C STIME TTY TIME CMD
root 5716 1 0 18:17 ? 00:00:00 redis-server *:6379
root 5720 3334 0 18:17 pts/0 00:00:00 grep redis
[root@hadoop myredis]# redis-cli
127.0.0.1:6379>
UID:用户ID; PID:进程ID; PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间; TTY:完整的终端名称; TIME:CPU时间; CMD:启动进程所用的命令和参数
[kris@hadoop101 ~]$ ps -ef | grep flume| grep grep kris 13942 2926 0 00:13 pts/0 00:00:00 grep flume -v取反,过滤掉grep的 -v, --invert-match select non-matching lines xargs作为kill的参数 xargs kill -9
iostat I/O 和 CPU 监视工具
iostat
用于监控统计系统输入输出设备和 CPU 的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出 CPU 使用情况。同 vmstat
一样,iostat
也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
iostat [参数] [间隔时间] [报告次数]
间隔时间:每次报告的间隔时间(秒)
报告次数:显示报告的次数
CPU属性值:
%user CPU 处在用户模式下的时间百分比
%nice CPU 处在带 NICE 值的用户模式下的时间百分比
%system CPU 处在系统模式下的时间百分比
%iowait CPU 等待输入输出完成时间的百分比
%steal 管理程序维护另一个虚拟处理器时,虚拟 CPU 的无意识等待时间百分比
%idle CPU 空闲时间百分比
RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe
是Linux这系列操作系统里面的打包安装工具
//查询
[root@kris ~]# rpm -qa | grep firefox
firefox-60.4.0-1.el6.centos.x86_64
[root@kris ~]#
//卸载要先进入安装镜像的目录
[root@kris ~]# cd /mnt/cdrom/Packages
[root@kris Packages]# rpm -e firefox //-e是卸载
//安装;-i=install安装,-v=verbose显示详细信息, -h=hash进度条
[root@kris Packages]# pwd
/mnt/cdrom/Packages
[root@kris Packages]# rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
YUM仓库配置
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
类似java中的maven工具;
修改网络YUM源
修改关联的网络YUM源为国内镜像的网站,比如网易163。
1.前期文件准备
(1)前提条件linux系统必须可以联网
(2)在Linux环境中访问该网络地址:http://mirrors.163.com/.help/centos.html,在使用说明中点击CentOS6->再点击保存,如图所示
(3)查看文件保存的位置,如图
在打开的终端中输入如下命令,就可以找到文件的保存位置。
[kris@hadoop101 下载]$ pwd
/home/kris/下载
2.替换本地yum文件
(1)把下载的文件移动到/etc/yum.repos.d/目录
[root@hadoop101 下载]# mv CentOS6-Base-163.repo /etc/yum.repos.d/
(2)进入到/etc/yum.repos.d/目录
[root@hadoop101 yum.repos.d]# pwd
/etc/yum.repos.d
(3)用CentOS6-Base-163.repo替换CentOS-Base.repo
[root@hadoop101 yum.repos.d]# mv CentOS6-Base-163.repo CentOS-Base.repo
3.安装命令
(1)[root@hadoop101 yum.repos.d]#yum clean all
(2)[root@hadoop101 yum.repos.d]#yum makecache
yum makecache就是把服务器的包信息下载到本地电脑缓存起来
4.测试
[root@hadoop101 yum.repos.d]#yum list | grep firefox
[root@hadoop101 ~]#yum -y install firefox.x86_64
把压缩包添加到linux系统的小工具
[kris@hadoop101 hadoop-2.7.2]$ sudo yum install -y lrzsz
sz 是下载到本地; rz -E是从本地上传文件
top 查看系统健康状态(内存-top)
[kris@hadoop100 ~]$ top -d 3 //指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:
[kris@hadoop100 ~]$ top -i //使top不显示任何闲置或者僵死进程
[kris@hadoop100 ~]$ top -p 25723 //通过指定监控进程ID来仅仅监控某个进程的状态
可以按P(-p是以CPU使用率排序,默认就是此项 )、M(以内存的使用率排序)、N(以PID排序)对查询出的进程结果进行排序。 top -m ;top -n;
q 退出top
netstat 显示网络统计信息和端口占用情况
netstat -anp |grep 进程号 (功能描述:查看该进程网络信息) netstat -nlp | grep 端口号 (功能描述:查看网络端口号占用情况)
netstat -tunlp | grep 端口号 (t是tcp;u是udp )
df 查看磁盘空间使用情况
[kris@hadoop100 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 47G 3.0G 42G 7% /
tmpfs 2.0G 72K 2.0G 1% /dev/shm
/dev/sda1 190M 39M 142M 22% /boot
查看磁盘IO读写情况:iotop(需要安装一下:yum install iotop)
iotop -o(直接查看输出比较高的磁盘读写程序)
cat /proc/version
显示正在运行的内核版本。
find 查找文件或者目录
(1)按文件名:根据名称查找/目录下的filename.txt文件。 [root@hadoop101 ~]# find xiyou/ -name “*.txt” (2)按拥有者:查找/opt目录下,用户名称为-user的文件 [root@hadoop101 ~]# find xiyou/ -user atguigu (3)按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于) [root@hadoop101 ~]find /home -size +204800
[kris@hadoop datas]$ ls | awk '{sum+=1} END{print sum}' 21 [kris@hadoop datas]$ find ./ -name "*.sh" | awk '{sum+=1} END{print sum}' 12 [kris@hadoop datas]$ find ./ -name "*.txt" | awk '{sum+=1} END{print sum}' 6
将hadoop101上的文件wc.txt发送到hadoop102上可采用nc;
[kris@hadoop101 ~]$nc -l 9999 > wc.txt [kris@hadoop102 ~]$nc hadoop104 9999 < wc.txt