文章目录
1.桌面和终端基本操作
-
super键是win徽标键;super+上:窗口最大化,super+左/右:窗口置左/右;super+下:恢复
-
Linux终端和windows命令提示符类似
-
登录界面,进入后鼠标右击,选择打开终端,即可进入终端界面
-
ctrl+alt+f(2-6):切换终端,ctrl+alt+f1:恢复图形化页面,ctrl+shift++:字体放大,ctrl+ -:字体缩小
-
[root@Username ~ ]#:root当前用户,Username主机名,当前所在位置(是主文件夹),#输入命令提示(root用户#,普通用户$)
2.Linux文件系统
- windows目录用反斜线“ \ ",Linux用“ / ”
-
/bin
是Binary的缩写,存放经常使用的命令,二进制目录,可直接执行,实际逻辑位置是/usr/bin -
/sbin
s是system,需要管理员权限才能使用的命令 -
/lib libary
,库目录,相当于windows的system32 -
/lib64
实际逻辑位置/usr/bin -
/usr
用户所有的应用程序和所需要的文件数据,很多系统软件的默认安装路径,类似win的porgran file目录 -
/boot
挂载引导分区,linux系统启动的时候需要加载和使用的文件 -
/dev
device设备目录,包含cpu,disk等,外设连接Linux后,对应的文件存放的位置 -
/etc
放置系统管理所需要的配置文件,注册文件等,类似win中的注册表 -
/home
存放普通用户的主目录,root用户的主文件夹存放在/root -
/opt optional
,可选目录,给第三方软件包的位置
-
/media
可移动媒体设备的挂载点,u盘、光驱 -
/mnt
和media
类似 -
/proc
process,进程目录,系统内存的映射 -
/run
运行目录,当前系统运行的所有实时信息,重启之后会消失 -
/srv
service,存放系统服务相关信息 -
/sys
system系统硬件信息相关文件 -
/tmp
temporarily(暂时地),临时存放目录 -
/var
variable可变的,可变目录,存放经常被修改的内容,如日志文件和缓存文件
3.系统命令
-
ip a(ip addr)
查看IP地址 -
ping 目标机器的ip
ping网络(测试网络连通) -
date
查看系统时间 -
logout
注销 -
clear
清屏 -
sync
将数据由内存同步到硬盘中 -
halt
停机,关闭系统,但不断电 -
poweroff
关机,断电 -
reboot
重启,等同于 shutdown -r now -
shutdown [选项] 时间
选项 功能 -H 相当于-halt,关机 -r 重启 -c 撤销关机操作 now 立刻关机 时间 等待关机时间(min,默认1min),或者 shutdown 15:28
- Linux系统为提高磁盘读写效率,对磁盘采取“预读迟写”操作方式。当用户保存数据时,Linux核心并不是立刻将保存数据写入物理磁盘,而是先保存在缓冲区,等缓冲区满时再写入磁盘,极大提高磁盘写入数据的效率。但也带来了安全隐患,如果还未写入磁盘时系统掉电,将导致数据丢失。使用
sync
指令可以立刻将缓冲区的数据写入磁盘
4.帮助命令
-
man
manual获得帮助信息,`man ls`` -
help
获得shell内置命令的帮助信息,help cd
-
常用快捷键
常用快捷键 功能 ctrl + c 停止进程 ctrl + l 清屏,等同于clear;彻底清屏:reset 善于用tab键 提示(更重要的是可以防止敲错) 上下键 查找执行过的命令
5.文件管理命令
ls
列出目录的内容:ls [-参数1参数2] [目标文件夹]
- 查看当前目录下的文件列表: ls
- 查看指定目录下的文件 : ls /
- 查看详细信息,元数据信息 : ls -l(等同 ll)(用户、组、大小、创建时间、权限信息、文件类型),
- 查看全部(包括隐藏)文件: ls -a
- 参数并用: ls -la
cd
切换目录:cd 目标文件夹
- 路径切换: cd 绝对/相对路径
- cd - :返回上一个文件夹
- cd :回到用户的主文件夹
pwd
显示当前工作目录的绝对路径
- 特殊目录符号 : ‘‘:当前用户的home目录;’.‘:当前目录;’…‘:上一级目录,’’:当前用户的主文件夹
mkdir
创建一个新的目录
- 在当前位置新建文件夹 : mkdir 文件夹名
- 在指定目录位置,创建文件夹,并创建父文件夹: mkdir -p /a/b/文件夹名
-
rmdir
删除一个空目录 -
touch
创建空文件
- 在当前目录下新建文件: touch 文件名/文件路径
rm
删除文件或目录:
- 删除文件: rm 文件夹
- 删除文件夹:rm -r 文件夹
- 强烈删除不询问: rm -rf 文件夹(谨慎使用)
cp
复制文件或目录- 拷贝文件: cp 原文件 新文件
- 拷贝文件夹 : cp -r 原文件夹 新文件夹(-r 参数,递归复制整个文件夹)
mv
移动文件或修改文件名- 移动原文件到目标文件夹中: mv 文件 文件夹
- 修改文件A的名字为文件B: mv 文件A 文件B
6.文本内容查看命令
-
cat
查看文件中的全部信息(适合查看小文档): cat 文件名 -
more
文件内容分屏查看器操作 功能说明 空格键(space) 向下翻一页 Enter 向下翻一行 q 立刻离开more,不再显示该文件内容 Ctrl+F 向下滚动一屏 Ctrl+B 返回上一屏 = 输出当前行的行号 :f 输出文件名和当前行的行号 -
less
以分页方式浏览文件信息(适合查看大文档): less 文件名
操作 | 功能说明 |
---|---|
空白键 | 向下翻动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
/字串 | 向下搜寻[字串]的功能;n:向下查找;N:向上查找 |
?字串 | 向上搜寻[字串]的功能;n:向上查找;N:向下查找 |
q | 退出、离开less |
G | 最后一页 |
g | 第一页 |
echo
输出内容到控制台:echo [选项] [输出内容]
- -e:支持反斜杠控制的字符转换, echo -e “hello\nworld”
控制符号 | 作用 |
---|---|
\\ | 输出\本身 |
\n | 换行符 |
\t | 制表符,也就是Tab键 |
head
显示文件头部内容
-
head 文件: 查看文件头10行内容
-
head -n 5 文件 :查看文件头5行内容,5可以是任意行数
tail
输出文件尾部内容
- tail 文件: 查看文件尾部10行内容
- tail -n 5 文件 :查看文件尾部5行内容
- tail -f 文件: 实现追踪该文档的所有更新,监视文件变化
7.文件查找命令
find
查找文件或目录 find [搜索范围] [选项]
- -name<查询方式> 按照指定的文件名查找文件
- find /root -name “*.cfg” 查找目录下所有.cfg文件
- -user<用户名> 查找属于指定用户名所有文件
- find /home -user A用户 查找属于A用户的所有文件
- -size<文件大小> 按照指定的文件大小查找
- b-块(512字节)、c-字节、w-字(2字节)、k-千字节、M-兆字节、G-吉字节
- find /root -size +2M 查找文件大小大于2M的文件
locate
定位文件路径 locate 搜索文件
- 利用事先建立的系统中所有文件名称及路径,locate数据库实现快速定位文件
- 为保证查询结果的准确度,管理员需定期更新locate时刻
- updatedb 由于locate指令基于数据库查询,所以第一次运行前,要使用updatedb指令创建更新数据库
- locate document 查找文件
grep
文件内容查找:grep -参数 查找内容 原文件
- -n:显示查找结果所在行号;
- -R:递归查找目录下的文件
- grep -n boot docunment 在document文件查找boot
wc
word count,单词词频统计
- 显示内容:行数、单词数、字节数
- wc info 查看info文件的行数、单词数、字节数
- grep -n boot document | wc 对grep查询结果进行统计
8.其他命令
history
查看已经执行过的历史命令
- history 10 :显示10条历史命令
- !1156 :执行编号对应的历史命令
- history -c:清空历史命令
data
[-OPTION]…[+FORMAT]
- -d<时间字符串> 显示指定的“时间字符串”表示的时间,而非当前时间
- date -d ‘1 days ago’ 显示前一天的时间
- date -d ‘-1 hours ago’ 显示后一小时的时间
- -s<日期时间> 设置系统日期时间
- data -s “2017-06-19 20:52:18” 设置系统当前时间
- ntpdata -u cn.pool.ntp.org 同步时间代码,恢复系统时间(可能需要先安装ntpdata:yum install ntpdata)
- <+日期时间格式> 指定显示时使用的日期时间格式
- data 显示当前时间
- data +%Y 显示当前年份
- data +%m 显示当前月份
- data “+%Y-%m-%d %H:%M:%S” 显示年月日时分秒(格式中存在空格,需要引号)
- data +%s 显示时间戳(1970.1.1到现在经过的总秒数)
cal
查看日历 cal [选项]
- cal 不加选项,显示本月日历
- cal -y 显示当年日历
- cal -m 周一置左显示(默认周日)
- cal -3 显示前、当、后三个月日历
- cal 2017 (具体某一年) 显示这一年的日历
9.VIM编辑器
模式间转换
- 一般模式 常用语法
语法 | 功能描述 |
---|---|
yy | 复制光标当前行 |
y(数字n)y | 复制n行(从光标当前行到后n行) |
p | 粘贴 |
u | 撤销上一步 |
dd | 删除光标当前行 |
d(数字n)d | 删除n行 |
x | 剪切一个字符(当前光标),相当于del |
X | 剪切一个字符(当前光标的前一个),相当于Backspace |
yw | 复制一个词 |
dw | 删除一个词 |
shift+6(^) | 移动到行头 |
shift+4($) | 移动到行尾 |
w | 移动到下一个词(词头位置) |
e | 移动到当前词尾 |
1+G | 移动到页头 |
G | 移动到页尾 |
数字N+G | 移动到目标行 |
- 进入 编辑模式 语法
按键 | 功能 |
---|---|
i | 当前光标前(常用) |
a | 当前光标后 |
o | 当前光标行的下一行 |
I | 光标所在行的最前 |
A | 光标所在行的最后 |
O | 当前光标行的上一行 |
- 指令模式 基本语法
命令 | 功能 |
---|---|
:w | 保存 |
:q | 退出 |
:wq | 保存并退出 |
:q! | 不保存强制退出 |
/要查找的词 | n 查找下一个,N 往上查找 |
:noh | 取消高亮显示 |
:set nu | 显示行号 |
:set nonu | 关闭行号 |
: s/old/new | 替换当前行匹配到的第一个old为new |
: s/old/new/g | 替换当前行匹配到的所有old为new |
:%s/old/new | 替换文档中每一行匹配到的第一个old为new |
:%s/old/new/g | 替换文档中所有的old为new |
10.系统管理
- 静态查看系统进程:ps -aux
- 实时查看系统进程:top
- 上箭头:上翻;下箭头:下翻;q:退出
- 关闭进程:kill 进程id
- 强制关闭进程(谨慎使用):kill -9 进程id
11.输出重定向(>)和追加(>>)
- ls -l > 文件 列表的内容写入文件 a.txt 中(覆盖写)
- ls -al >> 文件 列表的内容追加到文件 aa.txt 的末尾
- cat 文件1 > 文件2 将文件1的内容覆盖到文件2
- echo “内容” >> 文件
12.管道
- 将命令1的输出结果,作为命令2的输入:命令1 | 明亮
- 例子
- 查找aries用户: cat /etc/passwd | grep -n “baizhi”
- 查找aries组: cat /etc/group | grep -n “baizhi”
- 查找sshd进程: ps -aux | grep sshd
13.ln软链接
-
ln -s [原文件或目录] [软链接名] 给原文件创建一个软链接,类似于windows里的快捷方式
-
删除软链接:rm -rf 软链接名,而不是 rm -rf 软链接名/(会把软链接对应真实目录下内容删掉)
-
查询:通过 ll 可以查看,列表属性第1位是 l ,尾部会有位置指向
-
ln [原文件] [硬链接名] 硬链接,原文件多了一个指向
-
软链接是链接到文件地址,硬链接是链接到文件的内容;原文件删除,软链接失效,硬链接不失效
14.用户管理命令
- 用户
- 创建用户:
useradd -g 组名 用户名
- useradd 用户
- 普通用户主文件夹:/home/用户名
- useadd -d /home/dave david 在创建david用户时,修改其主文件夹名为dave
- 设置密码:
passwd 用户名
(输入密码不显示) - 查找系统账户:系统每个用户信息保存在/etc/passwd文件中
- 切换用户:
su 用户名
- 删除用户:
userdel -r 用户名
- id 用户名 查看用户的所属信息
- cat /etc/passwd 查看创建了哪些用户
- cat /etc/shadow 查看密码(已加密)
- whoami(who am i) 查看当前用户身份(最原始创建会话的用户)
- 用户组
- 创建组:
groupadd 组名
- 删除组:
groupdel 组名
- 查找系统中的组:
cat /etc/group | grep -n "组名"
(系统每个组的信息会被存放在/etc/group的文件中) - groupmod -n B组 A组 将 A组 组名改为 B组
- usermod -g A组 b用户 将 b用户 添加到 A组 中
sudo
设置普通用户具有root权限
-
sudo可以给普通用户临时赋予管理员权限
-
赋予普通用户使用 sudo 命令权限
- root用户登录下,进入/etc/sudoers(vim /etc/sudoers)
- ```
##找到下面一行(91行),在root下面添加一行,如下所示:
root ALL=(ALL) ALL
user ALL=(ALL) ALL
##或者配置成采用sudo命令时,不需要输入命令
root ALL=(ALL) ALL
user ALL=(ALL) NOPASSWD:ALL
```
-
用户组管理员权限(/etc/sudoers),默认wheel组有管理员权限
%wheel ALL=(ALL) ALL
15.文件权限管理
- rwx 作用于文件和目录
- 作用于文件
- r :read,可读,可以读取,查看(代表命令:more, cat, less, cp, head, tail)
- w :write,可写,可以修改,但不代表可以删除该文件(删除一个文件,需要对该文件所在的目录有写权限)(代表命令:vi)
- x :execute,可执行,可以被系统执行
- 作用于目录
- r :可以读取,ls查看目录内容(代表命令:ls)
- w :可以修改,目录内创建+删除+重命名目录(代表命令:rm、touch)
- x : 可以进入该目录(代表命令:cd)
- ll (ls -l)命令显示内容详解
-
第 1 列
- 0首位(第一个字符)表示文件类型
- 1-3位确定属主(该文件的所有者)拥有该文件的权限 --User
- 4-6位确定属组(文件所有者的同组用户)拥有该文件的权限 --Group
- 7-9位确定其他用户拥有该文件的权限 --Other
-
第 2 列 目录/链接个数
-
第 3 列 文件的所有者
-
第 4 列 文件所有者所在组
- 第 5 列 文件大小,单位为字节
-
第 6 、7、8 列 文件最后修改日期时间
-
第 9 列 文件名
-
文件类型
- “-” 普通文件
- “d” 目录
- “l” 链接文件
- “p” 管理文件
- “b” 块设备文件
- “c” 字符设备文件
- “s” 套接字文件
- 查看权限
-
ls -la 文件 :显示当前目录下文件的详细信息
-
chown
修改文件所有者 和chgrp
修改所属组- chown [-R] user名:group名 文件名
- -R 递归执行,如果是文件夹,使用这个参数对文件夹下所有文件修改
- 命令权限需要root
- 修改文件所有者:
chown 用户名 文件名
- 修改文件所属组:
chown :组名 文件
- 修改文件所有者和所属组:
chown 用户名:组名 文件名
- 修改文件夹的所有者和所属组:
chown [-R] 用户名:组名 文件夹
- chgrp [新组] [文件目录]
- chgrp root document
-
chmod
权限设置- chmod [ { u g o a }{ + - = }{ r w x }] 文件或目录
- u:所有者,g:所属组,o:其他,a:所有
- chmod u=rw, g+x,o+x document
- chmod a+x document
- chmod [-R] nnn 文件或目录
- r,w,x对应值分别为4,2,1
- 拥有 读 写 权限r+w=6,拥有 读 执行 权限r+x=1
- chmod 765 document
- chmod -R 777 文件夹/ 给文件夹里面所有文件赋予权限
- chmod [ { u g o a }{ + - = }{ r w x }] 文件或目录
16.系统软件管理
- 压缩解压缩
-
gzip/gunzip
- gzip 文件 压缩文件,只能将文件压缩为*.gz文件
- gunzip 文件.gz 解压缩文件命令
- 只能压缩文件不能压缩目录,不保留原文件,同时对多个文件压缩产生多个压缩包
-
zip/unzip
- zip [选项] XXX.zip 将要压缩的内容 压缩文件和目录
- unzip [选项] XXX.zip 解压缩文件
- zip选项:-r 压缩目录
- unzip选项: -d<目录> 指定解压缩后文件的存放目录
- zip 压缩命令在window/linux都通用,可以压缩目录且保留原文件
-
tar
打包-
tar [选项] XXX.tar.gz 将要打包的内容 打包目录,压缩后的文件格式 .tar.gz
-
-c : c压缩,产生 .tar 打包文件
-
-v :显示执行过程的详细信息
-
-f :指定压缩后的文件名,必须放在最后
-
-z :打包同时压缩
-
-x :解包.tar文件
-
-C :解压到指定目录
-
压缩语法:tar -zcvf 压缩后文件夹名 被压缩文件夹
-
解压缩语法:tar -zxvf 压缩文件名 -C 解压后文件所在目录
-
-
rpm
软件类似于windows中的.exe程序
- 安装rpm软件:
rpm -ivh xxx.rpm
- 查看系统中是否安装过该rpm软件:
rpm -qa 软件名
- 卸载rpm软件:
rpm -e 软件名
- 安装tree工具,查看某个目录下的文件信息:
tree -L 2 要查看的路径
yum
- 列出所有可以安装的软件包:
yum list
- 安装软件:
yum install -y 软件名
- 卸载软件:
yum remove 软件名
- 查看软件包:
yum search all 软件包
17.Linux服务
-
服务器管理命令:
systemctl status 服务名
-
启动服务:
systemctl start 服务名
-
重启服务:
systemctl restart 服务名
-
停止服务:
systemctl stop 服务名
-
禁止服务随linux启动:
systemctl disable 服务器
-
设置服务随linux启动:
systemctl enable 服务器
-
查看服务的方法: /etc/init.d/服务名
- 进程:一个正在执行的程序或命令
- 启动之后一直存在、常驻内存的进程
18.系统运行级别
- Linux运行级别(CentOS 6)
- Linux系统的7种运行级别(runlevel):常用的是级别3和5
- 运行级别0:系统停机状态,系统默认运行状态不能设为0,否者不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
- 运行级别2:多用户状态(没有NFS),不支持网络
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形CUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
- CentOS7的运行级别简化为:
multi-user.target
等价于原运行级别3(多用户有网,无图形界面)graphical.target
等价于原运行级别5(多用户有网,有图形界面)
- 查看当前运行级别:
systemctl get-default
- 修改当前运行级别:
systemctl set-default TARGET.target
(TARGET取multi-user 或者 graphical)
19.网络配置
- 查看网络IP和网关
- 查看虚拟网络编辑器
- windows查看ip地址:命令提示符窗口输入
ipconfig
- Linux查看ip地址:终端输入
ifconfig
- 测试网络连通: ping 目标机器的ip
- windows查看ip地址:命令提示符窗口输入
- VMware提供的三种网络连接模式
- 桥接模式 :虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用。这种模式下,虚拟机可以直接访问外部网络,并且对外部网络是可见的
- NAT模式 :虚拟机和主机构建一个专用网络(VMnet8),并且通过虚拟网络地址转换(NAT)设备对IP进行转换。虚拟机通过共享主机IP可以访问外部网络,但外部网络无法访问虚拟机
- 仅主机模式 : 虚拟机只与主机共享一个专用网络(VMnet1),与外部网络无法通信
- IP设置
服务名:network
[root@centos7 dirnew]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
----------------网卡对应的文件内容---------------------
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" # 由'dhcp'修改为'static',自动获取改为静态获取
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="0bd5d8a5-fe1b-42de-82bd-bfa7d2984b95"
DEVICE="ens33"
ONBOOT="yes"
#IP地址
IPADDR="192.168.199.8" # 修改这里的ip地址即可
PREFIX="24"
#网关
GATEWAY="192.168.199.2"
#域名解析器
DNS1="192.168.199.2"
DNS2="8.8.8.8"
IPV6_PRIVACY="no"
[root@centos7 dirnew]# systemctl restart network #重启网卡服务
- 修改IP地址后可能会遇到的问题
- 物理机能ping通虚拟机,虚拟机ping不通物理机,一般都是因为物理机的防火墙问题,把防火墙关了就行
- 虚拟机能ping通物理机,但是虚拟机ping不通外网,一般都是因为DNS的设置问题
- 虚拟机ping 百度 显示域名未知等信息,一般查看CATEWAY和DNS设置是否正确
- 如果以上全部设置完全不行,需要关闭NetworkManager服务
systemctl stop NetworkManager
关闭systemctl disable NetworkManager
禁用
- 如果检查发现systemctl status network 有问题,需要检查ifcfg-ens33
20.防火墙
服务名:firewalld
- 开启防火墙:
systemctl start firewalld
- 关闭防火墙:
systemctl srop firewalld
- 禁止防火墙开机自启:
systemctl disable firewalld
21.主机名
- 查看主机名:
hostname
- 修改主机名(一):
hostnamectl set-hostname 主机名
- 修改主机名(二):
vi /etc/hostname
(重启生效)
22.ip映射
-
虚拟机
-
域名解析
-
本地hosts编辑
-
[root@centos7 ~]# vim /etc/hosts
--------------下面是文件------------------
192.168.199.100 hadoop100
192.168.199.101 hadoop101
192.168.199.102 hadoop102
-
主机
-
路径:C:\Windows\System32\drivers\etc\hosts
--------------文件内容------------------ 192.168.199.100 hadoop100 192.168.199.101 hadoop101 192.168.199.102 hadoop102
-
23.SSH
- 远程登录linux:
ssh 远程linux的ip或映射域名
- 以root用户远程登录:
ssh root@hadoop100
(hadoop100为主机名) - 免密登录
- ssh登录远程linux,免去输入密码的麻烦
# 生成公钥和私钥
[root@centos7 ~]# ssh-keygen
------------执行结果-----------
[root@centos7 ~]# tree .ssh
.ssh
├── id_rsa # 私钥
├── id_rsa.pub # 公钥
└── known_hosts
# 发送公钥
`保存公钥的文件为/root/.ssh/authorized_keys`
[root@centos7 .ssh]# cat id_rsa.pub > authorized_keys
# 发送公钥
[root@centos7 .ssh]# ssh-copy-id 目标主机的ip
24.远程拷贝
-
scp 本地的文件 root@远程linuxip:/远程linux的文件路径
-
scp -r 本地的目录 root@远程linuxip:/远程linux的文件路径
25.补充知识
- 以’.'开头的文件\文件夹为隐藏的文件\文件夹 .document
- alias 可查看命令的别名
- -r :递归处理,将指定目录下的文件与子目录一并处理
- -i :交互式执行命令
- -v :显示执行过程
- -f : 强制执行
- –help :显示在线帮助
- –version :显示版本
- echo $ :可查看系统环境变量