Linux(一):Linux基础
1. Linux入门
1.1. Linux概述
- Linux是一套免费使用和自由传播的类Unix操作系统。Unix操作系统是上世纪70年代在贝尔实验室诞生的一个强大的多用户、多任务操作系统。
- Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
- 目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE。
1.2. Linux和Windows的区别
1.3. CentOS下载地址
网易镜像:http://mirrors.163.com/centos/6/isos/
搜狐镜像:http://mirrors.sohu.com/centos/6/isos/
2. Linux 文件与目录结构
2.1. Linux文件
- 在Linux中一切都是文件。
2.2. Linux目录结构
- /home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /root:该目录为系统管理员,也称作超级权限者的用户主目录。
- /etc:所有的系统管理所需要的配置文件和子目录。
- /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里。
- /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
- /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个mysql数据库则就可以放到这个目录下。默认是空的。
- /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
3. VI/VIM编辑器
3.1. 编辑器概述
- VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。
3.2. 编辑器的一般模式
- yy:复制光标当前一行
- p:箭头移动到目的行粘贴
- u:撤销上一步
- dd:删除光标当前行
- x:删除一个字母,相当于del
- shift+^:移动到行头
- shift+$:移动到行尾
- shift+g:移动到页尾
3.3. 编辑器的编辑模式
- i:在当前光标前进入编辑模式
- a:在当前光标后进入编辑模式
- o:当前光标行的下一行
- ESC:退出编辑模式
3.4. 编辑器的指令模式
- ::w是保存,q是退出,!是强制执行
- /:查找,/被查找词,n是查找下一个,shift+n是往上查找
3.5. VI键盘图和模式转换
4. 网络配置和系统管理操作
4.1. 修改网络ip地址
# 使用vim编辑器修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
DEVICE=eth0 #接口名(设备,网卡)
HWADDR=00:0C:2x:6x:0x:xx #MAC地址
TYPE=Ethernet #网络类型(通常是Ethemet)
UUID=926a57ba-92c6-4231-bacb-f27e5e6a9f44 #随机id
ONBOOT=yes #系统启动的时候网络接口是否有效(yes/no)
BOOTPROTO=static # IP的配置方法[none|static|bootp|dhcp](引导时不使
用协议|静态分配IP|BOOTP协议|DHCP协议)
IPADDR=192.168.1.100 #IP地址
GATEWAY=192.168.1.2 #网关
DNS1=192.168.1.2 #域名解析器
4.2. 关闭防火墙(CentOS7)
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
4.3. 关机重启
- 概述:在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。正确的关机流程为:sync > shutdown > reboot > halt。
- 经验技巧:Linux系统中为了提高磁盘的读写效率,对磁盘采取了 “预读迟写”操作方式。当用户保存文件时,Linux核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用sync指令可以立即将缓冲区的数据写入磁盘。
- 基本语法:
sync |
将数据由内存同步到硬盘中 |
|
halt |
关闭系统,等同于shutdown –h now 和 poweroff |
|
reboot |
就是重启,等同于 shutdown –r now |
|
shutdown |
选项 |
-h:-h=halt关机 |
-r:-r=reboot重启 |
||
参数 |
now:立刻关机 |
|
时间:等待多久后关机(时间单位是分钟)。 |
5. Linux中常用的基本命令
5.1. 帮助命令
man 获得帮助信息 |
例:man ls(获取ls的帮助信息) |
help 获得shell内置命令的帮助信息 |
例:help cd(获取cd的帮助信息) |
常用快捷键 |
ctrl + c:停止进程 |
ctrl+l:清屏(彻底清屏是:reset) |
|
ctrl + q:退出 |
|
tab:提示信息 |
|
上下键:查找执行过的命令 |
5.2. 文件目录类
pwd |
显示当前工作目录的绝对路径 |
ls |
-a :全部的文件,连同隐藏的(开头为 . 的文件一起列出来(常用) |
-l :长数据串列出,包含文件的属性与权限等等数据;(常用) |
|
cd |
cd路径:切换到绝对路径或者切换到相对路径 |
cd ~或者cd :回到自己的家目录 |
|
cd -:回到上一次所在目录 |
|
cd ..:回到当前目录的上一级目录 |
|
cd -P:跳转到实际物理路径,而非快捷方式路径 |
|
mkdir |
mkdir:创建一个目录(例:mkdir abc) |
mkdir -p:创建一个多级目录(例:mkdir -p abc/def) |
|
rmdir |
删除一个空的文件夹 |
touch |
创建空文件(例:touch a.txt) |
cp |
cp:复制文件(例:cp /home/a/b.txt /home/x/) |
cp -r:递归复制整个文件夹(例:cp -r /home/a/b /home/x/) |
|
rm |
rm -r:递归删除目录中所有内容 |
rm -f:强制执行删除操作,而不提示用于进行确认。 |
|
rm -v:显示指令的详细执行过程 |
|
mv |
mv oldNameFile newNameFile (功能描述:重命名) |
mv /temp/movefile /targetFolder (功能描述:递归移动文件) |
|
cat |
查看文件内容,从第一行开始显示。 |
cat -n:显示所有行的行号,包括空行。 |
|
more |
空白键 (space):代表向下翻一页; |
Enter: 代表向下翻『一行』; |
|
q:代表立刻离开 more ,不再显示该文件内容。 |
|
Ctrl+F:向下滚动一屏 |
|
Ctrl+B:返回上一屏 |
|
=:输出当前行的行号 |
|
:f:输出文件名和当前行的行号 |
|
echo |
echo输出内容到控制台 |
head |
head用于显示文件的开头部分内容。默认情况下head指令显示文件的前10行内容。 |
head -n 10 文件(查看文件头10行内容,10可以是任意行数) |
|
tail |
tail -n 5 文件(查看文件头5行内容,5可以是任意行数) |
tail -f 文件 (功能描述:实时追踪该档的所有更新) |
|
> |
cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2) |
>> |
echo “内容” >> 文件 |
ln软链接 |
ln -s [原文件] [目标文件]:(功能描述:给原文件创建一个软链接,软链接存放在目标文件目录,例:ln -s xiyou/dssz/houge.txt ./houzi) |
删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/ (例:rm -rf houzi) |
|
进入软连接实际物理路径(例:cd -P dssz/) |
|
history |
查看已经执行过历史命令 |
5.3. 时间日期类
date显示当前时间:
date |
显示当前时间 |
date +%Y |
显示当前年份 |
date +%m |
显示当前月份 |
date +%d |
显示当前是哪一天 |
date "+%Y-%m-%d %H:%M:%S" |
显示年月日时分秒 |
date显示非当前时间:
date -d '1 days ago' |
显示前一天日期 |
date -d '-1 days ago' |
显示明天时间 |
设置系统时间:
date -s "2017-06-19 20:52:18" |
设置系统当前时间 |
cat查看日历:
cal |
查看当前月的日历 |
cal -3 |
查看当前月、前一个月和后一个月的日历 |
cal 2017 |
查看2017年的日历 |
5.4. 用户管理命令
useradd |
useradd 用户名 (功能描述:添加新用户) |
useradd -g 组名 用户名 (功能描述:添加新用户到某个组) |
|
passwd |
passwd 用户名 (功能描述:设置用户密码) |
id |
id 用户名 (功能描述:查看用户是否存在) |
su |
su 用户名称(切换用户,只能获得用户的执行权限,不能获得环境变量) |
su - 用户名称(切换到用户并获得该用户的环境变量及执行权限) |
|
userdel |
userdel 用户名 (功能描述:删除用户但保存用户主目录) |
userdel -r 用户名 (功能描述:用户和用户主目录,都删除) |
|
who |
whoami (功能描述:显示自身用户名称) |
who am i (功能描述:显示登录用户的用户名) |
|
cat |
cat /etc/passwd (功能描述:查看创建了哪些用户) |
usermod |
usermod -g 用户组 用户名 (功能描述:将用户加入到用户组) |
5.5. 用户管理组命令
groupadd |
groupadd 组名 (功能描述:新增组) |
groupdel |
groupdel 组名 (功能描述:删除组) |
groupmod |
groupmod -n 新组名 老组名 (功能描述:修改组) |
cat |
cat /etc/group (功能描述:查看创建了哪些组) |
5.6. 文件权限类
1. 文件属性:
a) 一个文件或者文件夹的属性具体含义如下图所示:
如果查看到是文件:链接数指的是硬链接个数,创建硬链接方法:ln [原文件] [目标文件](例:ln sunhouzi/shz.txt ./shz.txt)
如果查看的是文件夹:链接数指的是子文件夹个数。
b) 从左到右的10个字符的具体含义如下图所示:
c) 0首位表示类型:
- 代表文件
d 代表目录
l 链接文档(link file)
d) 第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User
e) 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group
f) 第7-9位确定其他用户拥有该文件的权限 ---Other
2. chmod改变权限
a) 基本语法:
chmod [{ugoa}{+-=}{rwx}] 文件或目录
chmod [mode=421 ] [文件或目录]
b) 经验技巧:
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
r=4 w=2 x=1 rwx=4+2+1=7
c) 示例:
chmod u+x test1.java
chmod g+x test1.java
chmod -R 777 testdir
3. chown改变所有者
a) 基本语法:
chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者,-R:表示递归修改文件夹中的所有文件)
b) 示例:
修改文件所有者:chown atguigu test1.java
递归改变文件所有者和所有组:chown -R atguigu:atguigu sunhouzi/
4. chgrp改变所属组:
a) 基本语法:
chgrp [最终用户组] [文件或目录]
b) 示例:
修改文件的所属组:chgrp atguigu test1.java
5.7. 磁盘分区类
1. df查看硬盘:
基本语法:df 选项 (功能描述:列出文件系统的整体磁盘使用量)
选项说明:-h 以人们较易阅读的GBytes, MBytes, KBytes等格式自行显示
2. fdisk查看分区:
基本语法:fdisk -l (功能描述:查看磁盘分区详情)
选项说明:-l 显示所有硬盘的分区列表
经验技巧:该命令必须在root用户下才能使用
功能说明:(Device:分区序列) (Blocks:容量)
5.8. 搜索查找类
1. find 查找文件或者目录(find [搜索范围] [选项]):
a) -name<查询方式>:按照指定的文件名查找模式查找文件
例:find /opt/ -name *.txt
b) -user<用户名>:查找属于指定用户名所有文件
例:find /opt/ -user atguigu
c) -size<文件大小>:按照指定的文件大小查找文件
按文件大小:在目录下查找大于n兆的文件(+n 大于 -n小于 n等于)
例:find /home -size +204800
2. grep 过滤查找及“|”管道符:
a) 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
b) 基本语法:grep 选项 查找内容 源文件
c) 选项说明:-n显示匹配行及行号
d) 示例操作:查找某文件在第几行 ls | grep -n test
5.9. 进程线程类
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
1. ps查看系统中所有进程:
基本语法 |
ps -aux | grep xxx |
查看系统中所有进程 |
ps -ef | grep xxx |
可以查看子父进程之间的关系 |
|
选项说明 |
-a |
选择所有进程 |
-u |
显示所有用户的所有进程 |
|
-x |
显示没有终端的进程 |
|
ps -aux显示信息说明 |
%CPU |
该进程占用CPU资源的百分比,占用越高,进程越耗费资源 |
%MEM |
该进程占用物理内存的百分比,占用越高,进程越耗费资源 |
|
VSZ |
该进程占用虚拟内存的大小,单位KB |
|
RSS |
该进程占用实际物理内存的大小,单位KB |
|
STAT |
进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台 |
|
ps -ef显示信息说明 |
UID |
用户ID |
PID |
进程ID |
|
PPID |
父进程ID |
2. kill终止进程
基本语法 |
kill [选项] 进程号 |
通过进程号杀死进程 |
killall 进程名称 |
通过进程名称杀死进程 |
|
选项说明 |
-9 |
表示强迫进程立即停止 |
实例操作 |
杀死指定进程号 |
kill -9 5102 |
通过进程名称杀死进程 |
killall firefox |
3. pstree查看进程树:
基本语法 |
pstree [选项] |
|
选项说明 |
-p |
显示进程的PID |
-u |
显示进程的所属用户 |
|
实例操作 |
显示进程pid |
pstree -p |
显示进程所属用户 |
pstree -u |
4. top 查看系统健康状态:
基本命令 |
top [选项] |
|
选项说明 |
-d 秒数 |
指定top命令每隔几秒更新。默认是3秒 |
操作说明 |
P |
以CPU使用率排序,默认就是此项 |
M |
以内存的使用率排序 |
|
N |
以PID排序 |
|
q |
退出top |
在第2行中zombie为僵尸进程,如果不是0,需要手工检查僵尸进程。
5. netstat显示网络统计信息:
基本语法 |
netstat -anp |
用来显示整个系统目前的网络情况 |
选项说明 |
-an |
按一定顺序排列输出 |
-p |
表示显示哪个进程在调用 |
|
实例操作 |
查看端口50070的使用情况 |
netstat -anp | grep 50070 |
5.10. 压缩和解压类
在Linux中压缩和解压有gzip/gunzip压缩,zip/unzip压缩和tar打包等方法,但在大数据中一般不会使用这些,有自己的压缩和解压方法,但在网络上下载的Linux的文件一般使用tar解压,所以只要对tar有所了解就够了。
基本语法 |
tar [选项] XXX.tar.gz 将要打包进去的内容 |
|
选项说明 |
-c |
产生.tar打包文件 |
-v |
显示详细信息 |
|
-f |
指定压缩后的文件名 |
|
-z |
打包同时压缩 |
|
-x |
解包.tar文件 |
|
实例操作 |
压缩多个文件 |
tar -zcvf test.tar.gz test1.java test.java |
压缩目录 |
tar -zcvf test.java.tar.gz test1 |
|
解压到当前目录 |
tar -zxvf test.tar.gz |
|
解压到指定目录 |
tar -zxvf test.tar.gz -C /opt |
5.11. crond系统定时任务
1. 选项说明:
选项 |
功能 |
-e |
编辑crontab定时任务 |
-l |
查询crontab任务 |
-r |
删除当前用户所有的crontab任务 |
2. 参数说明:
3. 具体操作:
时间 |
含义 |
45 22 * * * 命令 |
在22点45分执行命令 |
0 17 * * 1 命令 |
每周1 的17点0分执行命令 |
0 5 1,15 * * 命令 |
每月1号和15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 |
每周一到周五的凌晨4点40分执行命令 |
*/10 4 * * * 命令 |
每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 |
每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 |
4. 重启crontab,启动定时任务:
/bin/systemctl restart crond.service 或 service crond restart
6. 软件包管理
6.1. RPM软件包
1. RPM概述:
RPM(RedHat Package Manager),Rethat软件包管理工具,类似windows里面的setup.exe是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。RPM包的名称格式如下:
Apache-1.3.23-11.i386.rpm
- “apache” 软件名称
- “1.3.23-11”软件的版本号,主版本和此版本
- “i386”是软件所运行的硬件平台
- “rpm”文件扩展名,代表RPM包
2. RPM查询命令:
a) 基本语法:rpm -qa (功能描述:查询所安装的所有rpm软件包)
b) 经验技巧:由于软件包较多,会采取过滤。rpm -qa | grep rpm软件包
c) 查询firefox软件安装情况:rpm -qa |grep firefox
3. RPM卸载命令:
a) 基本语法:(1) rpm -e RPM软件包 (2) rpm -e --nodeps 软件包
b) 选项说明:
-e:卸载软件包
--nodeps:卸载软件时,不检查依赖(比较少使用)
c) 实例操作:卸载firefox软件 rpm -e firefox
4. RPM安装命令:
a) 基本语法:rpm -ivh RPM包全名
b) 安装firefox软件:rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
Linux(一):Linux基础的更多相关文章
- Linux 脚本编写基础
txt去重 http://man.linuxde.net/sort Linux 脚本编写基础 http://www.cnblogs.com/linn/archive/2007/03/05/664 ...
- linux发行版基础目录
linux发行版基础目录 linux 基础目录 linux基础目录 目录 作用 / 根目录,起源 /boot linux引导启动目录 /lib 库目录 /bin 常用内部命令 /sbin 常用内部管理 ...
- LINUX二十个基础命令
LINUX二十个基础命令 一. useradd命令 1.命令格式: useradd 选项 用户名 2.命令功能: 添加新的用户账号 3.常用参数: -c comment 指定一段注释性描述.-d 目录 ...
- Linux命令工具基础04 磁盘管理
Linux命令工具基础04 磁盘管理 日程磁盘管理中,我们最常用的有查看当前磁盘使用情况,查看当前目录所占大小,以及打包压缩与解压缩: 查看磁盘空间 查看磁盘空间利用大小 df -h -h: huma ...
- Linux数组array基础
Linux数组array基础[${a[*]}和$a的区别] Bash中,数组变量的赋值有两种方法: (1) name = (value1 ... valuen) 此时下标从0开始 (2) name[i ...
- 详细介绍Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- linux 脚本编写基础(一)
1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...
- Linux shell入门基础(六)
六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...
- Linux shell入门基础(一)
Linux shell入门基础(一): 01.增加删除用户: #useradd byf userdel byf(主目录未删除) userdel -r byf 该用户的属性:usermod 用 ...
- Linux回归篇-基础恶补
前言: LINUX在之前仅仅了解一些皮毛知识,最近计划深入研究大数据,LINUX当然少不了,所以借此良机将LINUX也顺带添加进入学习的目录之中.为了知识的全面性,本文先恶补一下LINUX的基础,作 ...
随机推荐
- Nginx配置自定义的403页面
1.开启nginx的状态码,虚拟主机配置中加入下边一段 location /nginx_status{ stub_status on; access_log off; } 或着在nginx的http模 ...
- python 求交集、并集、差集
需要用到set类型 交集,两种方法 retA = [i for i in listA if i in listB] retB = setA.intersection(setB) 并集 retC = s ...
- CountDownLatch和CyclicBarrier使用上的区别
一.CountDownLatchDemo package com.duchong.concurrent; import java.util.Map; import java.util.concurre ...
- ROW_NUMBER()函数使用详解
原文地址:https://blog.csdn.net/qq_30908543/article/details/74108348 注:mysql貌似不适用,本人测试未成功,mysql实现方式可参考:ht ...
- 欧姆龙PLC_CP1H_CRC校验
1.简介 欧姆龙CP1H PLC的CRC校验.CP1H没有CRC校验指令或者功能块,在串口自由协议通信中,如果涉及到CRC校验,需要手动计算CRC值,本程序是一个输入数据,自动计算CRC校验码的程序. ...
- 第八章 跨语言服务治理方案 Service Mesh
8.1 Service Mesh 概述 新兴的下一代微服务架构,被称为下一代微服务,同时也是云原生技术栈的代表技术之一. 8.1.1 Service Mesh的由来 从2016年到2018年,serv ...
- PHP 木马代码,
<?phpheader("content-Type: text/html; charset=utf-8");if(get_magic_quotes_gpc()) foreac ...
- flask的信号使用
from blinker import Namespace from datetime import datetime from flask import request namespace = Na ...
- 第07组 Alpha冲刺(1/4)
队名:秃头小队 组长博客 作业博客 组长徐俊杰 过去两天完成的任务:完成人员分配,初步学习Android开发 Github签入记录 接下来的计划:继续完成Android开发的学习,带领团队进行前后端开 ...
- git push时出现大文件的处理方法
最近在提交项目时出现报错 文件限制只能100M,但是里面有个文件202M,超过了码云的限制. 所以顺手就把这个文件删除了 然后发现还是同样的报错,反复检查目录还是不行,找了资料说,需要git rm 命 ...