Linux简介
Linux使用场景:服务器操作系统,移动设备(安卓手机,平板电脑),路由器(WIFI),交换机,智能家居,Java程序开发...等
Linux版本:
- Linux内核版本(一个内核版本是有多种多样的发行版本)
- Linux发型版本(由各大互联网/公司定制)
Linux主流版本:
- RedHat Linux(嵌入式技术)
- Ubuntu(桌面应用为主;开发可能会用到,但是服务器部署上,不会优先选择Ubuntu)
- CentOS(对服务器性能进行了一定程度的优化,性能比较高,比较稳定。服务器操作系统的优选CentOS)
Linux安装
Google搜索一大堆,略
Linux目录结构
- / : Linux系统根目录
- /etc (etcetera): 系统配置文件存放的目录,不建议在此目录下存放可执行文件。
- 重要的配置文件有:/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。修改配置文件之前记得备份。注:/etc/X11存放与x windows有关的设置。
- 存放防火墙文件、网络设置文件、JDK环境配置文件、mysql...等。
- /usr(unix shared resources) :应用程序存放目录
- /usr/bin 存放应用程序
- /usr/share 存放共享数据
- /usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。
- /usr/local:存放软件升级包。
- /usr/share/doc: 系统说明文件存放目录。
- /usr/share/man: 程序说明文件存放目录,使用 man ls时会查询
- /usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间。
- Jdk,tomcat,mysql,redis,nginx
- /root:系统管理员root的家目录
- 系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
- 相当于windows的桌面 备注:以上建议并不是强制性约束。
CRT远程连接Linux
- 鼠标右键: 复制/粘贴
- 文件上传:alt+p 上传窗口
- Linux:/root 上传的文件全部被放在了root目录中
常用命令
Linux命令中参数,一般都是无序的。特殊情况下除外。常用命令如下
【磁盘管理】
「 ls 目录内容 」
ls(list):列出目录内容
常用命令:
ls -l (简写为 ll)
ls -al (查看所有详细内容)
ll /home/ (显示制定目录下的内容)
其中,第一位:“d”代表目录,“-”代表普通文件,“l”代表链接
ls[参数][文件或目录]
参数:
-a 或 --all 查询所有文件和文件夹,包含隐藏的
-l 查询详细列表。“ls -l”可以简写为“ll”
-t 用文件和目录的更改时间排序
-r 反向排序
-h 友好展示信息。“ll -h”
--help 在线帮助
「 cd 切换目录 」
cd(change directory):切换目录
cd [目录]
常用命令:
cd ~ 切换到当前用户家目录 ,Root用户家目录 /root 回家
cd / 切换到Linux的根目录
cd - 上一次访问的目录,只能两个目录相互切换
cd ../ 上一级目录
cd 缺省当前用户目录
cd /目录名 切换到指定目录中 (/目录名 Linux的绝对路径)
Linux中的路径:
- 绝对路径: cd /etc/x1 先切换到/目录,然后在/目录中找到子目录etc,在etc中找子目录x1
- 在任意目录都可以随意切换
- 相对路径:cd x1/x2 在当前目录中寻找子目录x1, 在x1中寻找子目录x2
- 必须确定当前目录下有子目录x1
「 pwd 当前目录 」
pwd ( print working directory) 功能:显示当前的所在目录。返回绝对路径
「 mkdir 创建目录 」
mkdir(make directoriy)功能: 创建目录
-p 父目录不存在情况下先生成父目录 (parents)
-v 显示命令执行过程中的详细信息
「 rmdir 删除空目录 」
rmdir(remove directory)功能:删除空目录 (后面一般是用rm命令替代)
【文件浏览命令】
「 cat 查看文件 」
cat(catenate)功能:显示文本文件内容;快捷查看当前文件的内容,cat适合查看少量信息的文件
cat 文件 : 显示指定文件的所有内容
「 more 分页查看文件 」
more功能:分页显示文件内容,还支持直接跳转行等功能
more filename
Enter:向下n行,需要定义,默认为1行
空格键:向下滚动一屏,或Ctrl+F
B:返回上一屏,或Ctrl+B
q:退出more
「 less 分页查看文件 」
less 功能:分页显示文件内容,操作更详细;适合大量数据的查看
less[参数] 文件名
参数:
-m 显示类似more命令的百分比
-N 显示每行的行号
操作:
Enter 向下n行,需要定义,默认为1行
空格键 前进一页 或 page down
b 后退一页 或 page up
d 前进半页
u 后退半页
回车键 前进一行 或 方向键向下
y 后退一行 或 方向键向上
/字符串 向下搜索
?字符串 向上搜索
v 进入vim编辑器
左右方向键 相当于水平滚动条
q 退出
「 tail 显示文件内容 」
功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理,常用查看日志文件
tail [必要参数] [选择参数] [文件]
-n<行数> 显示行数
-f 循环读取
使用 ctrl+c 可退出查看
"tail -数字 文件名" : 可以快速查看文件后x行的内容
如 tail -10 text.log 查看文件的后10行内容
【文件操作命令】
「 cp 复制 」
cp(copy)功能:复制文件或目录
cp [参数] [源文件或目录] [目标文件或目录]
参数:
-r 或 --recursive 递归处理,将指定目录下的文件与子目录一并处理
cp ./abc ./XXX #无法复制目录
cp -r ./abc ./XXX #复制目录必须使用-r参数
需求:把/root/Demo1.java文件 复制到 /root/t1 目录中
位置:/root
命令:cp Demo1.java t1
或者:cp /root/Demo1.java /root/t1
需求:把/root/Demo1.java文件 复制到 /root/t1 目录中,改名为ddd.java
位置:/root
命令:cp Demo1.java t1/ddd.java
需求:把/root/t5目录 复制到 /root/t1目录中
位置:/root
命令:cp -r t5 t1
或者:/root/t5 /root/t1
「 mv 移动或改名 」
mv(move)功能:移动或更名现有的文件或目录
mv [源文件或目录] [目标文件或目录]
参数:
-f 或 --force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录
mv ./abc/123 ./XXX/111 #移动一个空目录或一个文件
cp ip.log ./abc/ip.log
mv ip.log ./abc/ip.log
mv -f ip.log ./abc/ip.log
需求:把/root/t5 目录 移动到 /root/t3目录中
位置:/root
命令:mv t5 t3
需求:把/root/t5 目录 移动到 /root/t3目录中 不询问,直接覆盖
位置:/root
已知:/root/t3目录中 已经有一个t5目录了
命令:mv -f t5 t3
文件/目录更名操作:
需求:把/root/Demo1.java 改名为 hehe.java
位置:/root
命令:mv Demo1.java hehe.java
「 rm 删除 」
rm(remove)功能:删除文件或目录
rm [-dfirv] [--help] [--version] [文件或目录...]
参数:
-f 或 --force 强制删除文件或目录
-r 或 -R 或 --recursive 递归处理,将制定目录下的所有文件及子目录一并处理
注意:
rm -rf : 删除当前目录下所有内容
rm –rf /* : 删除Linux系统根目录下所有内容(慎重!)
rm ./ip2.log
rm -f ./ip2.log #强制删除文件
rm -f ./XXX
rm -rf ./XXX #强制删除目录
需求:删除/root/t5 目录,
位置:/root
已知:t5目录下有子目录或者文件
命令:rm -rf t5
「 find 查找 」
find 功能:查找文件或目录
find [目录...] [参数]
find 目录名 -name '需要查找的字符串'
参数:"-name" : 指定字符串作为寻找文件或目录的范本样式;*表示0~多个任意字符
find /root/ -name 'test*'
【文档编辑命令】
「 vi & vim 编辑文件 」
基本操作:
- 输入 “vim 文件名” 进入 “一般模式”
- 按下 “i” 从 一般模式 进入 “插入模式”
- 按下 “esc” 从 插入模式 退出到 “一般模式”
- 在“一般模式”下,输入“:wq”,退出编辑
插入模式:
一般模式:
vi基本概念:
vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各个模式的功能区分如下:
-
命令模式(command mode)
- 也叫“一般模式”
- 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode
- 可以浏览文件内容,可以进行文本快捷操作。 单行复制,多行复制,单行删除,多行删除
- 按【i】 可以切换到插入模式
- 按【:】可以切换到底行模式
-
插入模式(Insert mode)
- 只有在Insert mode下,才可以做文字输入
- 按【ESC】回到命令行模式
-
底行模式(last line mode)
- 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号...等
- 可以进行强制退出不保存操作 【q!】
- 可以进行保存并退出操作 【wq】
常用命令:
「 | 管道 」
linux提供管道符号【|】。作用是“命令1”的输出内容,将作为“命令2”的输入内容,一般与grep命令一起使用
格式:命令1 | 命令2 | 命令3...
需求:查询当前目录中,所有带ins关键字的行数据
位置:/root
思考:查询当前目录内容 ll
查询字符串,返回字符串所在行 grep
命令:ll | grep ins
「 grep 正则过滤 」
grep:Global Regular Expression Print,表示全局正则表达式版本
功能:用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用。如果符合规则,就会返回符合规则的行。
grep [option] pattern [file]
grep 参数 过滤条件 文件
参数:-i 或 -ignore-case #忽略字符大小写
其他命令 | grep 参数 过滤条件
例子:
# 查看install.log文件中含有“control”字符的内容
grep -i control /root/install.log
# 在cat命令输出结果基础上,进行过滤
cat /root/install.log | grep -i control
# 查询当前目录中,所有带t关键字的行数据
ll | grep -i t
「 tar 压缩解压 」
tar功能:文件备份压缩
*.tar 打包,但是大小不会进行压缩
*.tar.gz 打包并压缩文件大小
语法格式及参数:
tar 命令
-c 建立一个压缩文件的参数指令(create)--压缩
-x 解开一个压缩文件的参数指令(extract)--解压
-z 是否需要用gzip压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在f之后要立即接档名(file)
压缩命令:(参数顺序不变)
tar -zcvf 压缩包名字.tar.gz 需要压缩的内容
例子:
tar -zcvf demo.tar.gz * 将当前目录下所有内容进行打包压缩,文件名hehe.tar.gz
解压命令:(参数顺序不变)
tar -zxvf 需要解压的压缩包名称 // 解压到当前目录
tar -zxvf 需要解压的压缩包名称 -C 指定压缩路径 // 解压到指定目录中,C是大写
例子:
需求:需要把/root/t5/hehe.tar.gz 压缩包 解压到 指定目录中。指定目录/root/t5/t5
位置:/root/t5
命令:
tar -zxvf hehe.tar.gz -C /root/t5/t5
tar -zxvf hehe.tar.gz -C t5
【系统命令】
「 ps 进程状态 」
ps:Process Status(进程状态)的缩写,提供对进程的一次性查看,即:执行ps命令的那个时刻进程信息。
语法格式:
ps [参数]
-e 此参数的效果和指定“A”参数相同,显示所有程序
-f 显示UID,PPIP,C与STIME栏位
需求:查看进程中和 vim 相关的进程
命令:ps -ef | grep -i vim
「 kill 删除进程 」
kill功能:删除执行中的程序或工作。
语法格式:
kill [参数] [程序]
-l<信息编号>。若不加<信息编号>选项,则-l参数会列出全部的信息名称
kill -9 表示强制终止
kill -9 pid号
「 ifconfig 网络 」
功能:显示网络设备,查看网络配置
ifconfig
「 ping 网络连接 」
功能:测试与目标主机的连通性。会持续不断一直测试,直到ctrl+c
ping 主机名 或 ip地址
「 reboot & halt 关机重启 」
Linux centos 重启命令:reboot
Linux centos 关机命令:halt //立刻关机
「 setup 网络设置 」
网络设置:setup
建议使用CRT运行该命令,会有中文界面
【chmod 文件权限命令】
chmod(change mode)功能:变更文件或目录的权限
语法格式:
chmod [参数] [<权限范围><符号><权限代号>]
-R 或 --recursive 递归处理,将制定目录下的所有文件及子目录一并处理
权限范围的表示法如下:
- u:user,即文件或目录的拥有者
- g:Group,即文件或目录的所属群组
- o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围
- a:All,即全部的用户,包含拥有者,所属群组以及其他用户
符号:
- + 添加权限
- - 取消权限
权限代号的部分:
- r:读取权限,数字代号为“4”
- w:写入权限,数字代号为“2”
- x:执行或切换权限,数字代号为“1”
- -:不具任何权限,数字代号为“0”
mkdir xxx
ll | grep xxx
chmod u-rwx xxx #取消xxx目录,用户“读写执行”的权限
chmod g-rwx xxx #取消xxx目录,组“读写执行”的权限
chmod 777 xxx #给xxx目录添加所有权限
linux权限格式:<类型><用户><组><其他用户>
例子:
权限更改:
语法:chmod 权限设置 需要更改权限的文件名
更改Demo1.java 所属用户的权限为所有权限
例如:chmod u=rwx Demo1.java
更改Demo1.java 所属组 用户的权限为r-x
例如:chmod g=rx Demo1.java
更改Demo1.java 所有用户的权限为r—
例如:chmod a=r Demo1.java
更改文件夹权限:
语法:chmod -R 权限设置 需要更改权限的文件名
更改t1 文件夹中所有文件的权限。 所属用户的权限 r--
例如:chmod -R u=r t1
【网卡配置】
查看网卡配置:
cat /etc/sysconfig/network-scripts/ifcfg-eth0