linux基礎
1、計算機的組成
計算機是由硬件系統(tǒng)和軟件系統(tǒng)組成
硬件
運算器,控制器,存儲器,輸入設備,輸出設備
軟件
系統(tǒng)軟件
linux? , unix , windows,mac? 安卓? iOS
應用軟件
QQ? 微信? 有道詞典。。。。。。
2、linux介紹
linux? 創(chuàng)始人:林納斯 托瓦茲
linux? 吉祥物:企鵝
常用的linux發(fā)行版:
ubuntu:linux 發(fā)行版中桌面操作系統(tǒng)做的最好的
centos:類似于redhat的免費版本
redhat:最大的linux發(fā)行廠商
deepin:國內(nèi)做的最好的linux發(fā)行版
3、linux的目錄結構
linux沒有盤符的概念,所有的文件,都是從根目錄開始的,按照層級依次查找,直到找到文件為止
常用的目錄:
bin:儲存二進制文件和常用的可執(zhí)行文件
ect:儲存linux中的配置文件,一般我們會修改其中的相關配置,完成服務或者環(huán)境的搭建
home:普通用戶的家目錄,一般用戶產(chǎn)生的文件會默認存放在家目錄中
root:超級管理員的家目錄,一般超級管理員產(chǎn)生的文件會默認存放在root目錄中
超級管理員擁有一切權限,甚至可以將所有的系統(tǒng)文件刪除
sbin:存儲的是超級管理員使用的二進制文件和可執(zhí)行文件,一般用于系統(tǒng)管理
1、ls命令
ls? 查看當前工作目錄中的文件結構,顯示所有文件的文件名
-a :顯示所有文件的文件名,包括隱藏文件
-l:以列表的形式展示文件,包含多列文件信息
-h:更加人性化的展示文件大小,配合-l進行使用(單獨使用沒有效果)
# 查看文件目錄
ls
# 查看文件目錄,包括隱藏文件
ls-a
# 查看文件目錄,以列表形式展示文件信息
ls-l
等價于:ll
# 查看文件目錄,以列表形式展示,并且人性化展示文件大小
ls-hl
# 查看文件目錄,以列表形式展示,并且人性化展示文件大小,顯示所有文件,包括隱藏文件
ls-ahl
ll-ah
2、cd命令
絕對路徑:從根目錄開始,按照層級查找,直到找到該文件為止
相對路徑:從當前工作目錄開始查找,知道找到該文件為止
.:當前目錄(./可以被省略)
..:上一級目錄
cd 命令就是切換工作目錄使用的,工作目錄切換后,我們默認使用linux操作的就是當前工作目錄的內(nèi)容
cd 路徑 (cd到的路徑,必須是一個目錄,并且,該目錄必須存在)
# 切換共做目錄為root目錄
cd/root
# 使用絕對路徑切換到bbb目錄下的kettle目錄
cd/root/bbb/kettle
# 使用相對路徑切換到bbb目錄下的kettle目錄
cd./bbb/kettle# ./可以省略
# 切換到上一級目錄
cd..
# 切換到上兩級目錄
cd../..
# 切換到上一次操作的工作目錄
cd-
# 切換到家目錄
cd~
cd
# 切換到根目錄
cd/
3、mkdir命令
mkdir用于創(chuàng)建空目錄
格式: mkdir 【-p】 目錄名稱
# 創(chuàng)建單個單層級目錄
mkdiraaa
# 創(chuàng)建單個多層級目錄(-p可以寫在目錄名稱之前,也可以寫在目錄名稱之后)
mkdir-pbbb/ccc/ddd
# 創(chuàng)建多個單層級目錄
mkdirccc ddd
# 創(chuàng)建多個多層級目錄
mkdir-peee/fff/eee? fff/eee/fff
4、touch命令
touch 一般情況下是用來創(chuàng)建新文件的
不能創(chuàng)建文件夾
touch創(chuàng)建的文件可以是任意擴展名
格式:touch? 文件名稱/文件路徑
# 創(chuàng)建一個txt文件
toucha.txt
# 創(chuàng)建一個。java文件
tocuh a.java
# 在bbb目錄下創(chuàng)建一個a.txt文件
touch./bbb/a.txt
# touch也可以同時創(chuàng)建多個文件
touch文件路徑1? 文件路徑2 。。。
5、rm命令
rm刪除指定文件或文件夾
rm 【選項】 要刪除文件的路徑
-f 強行刪除,不進行提示
-r 遞歸刪除,可以刪除文件夾
# 刪除a.txt文件
rma.txt
# 刪除a.java文件,不進行提示
rm-fa.java
# 刪除aaa文件夾
rm-raaa
# 刪除bbb文件夾,不進行提示
rm-rfbbb
6、mv命令
mv命令用來移動或者重命名文件
格式:mv? 源文件路徑? 目標文件路徑
如果要移動到的路徑不存在則,重命名
如果要移動到的路徑存在則移動
# 移動a.txt文件到bbb目錄中
mva.txt bbb# 此時bbb目錄已存在
# 將b.txt進行重命名為c.txt
mvb.txt c.txt
# 將aaa目錄,移動到bbb目錄下
mvaaa bbb# 此時bbb目錄已存在
# 將aaa目錄改名為bbb目錄
mvaaa bbb# 此時bbb目錄不存在
# 將a.txt文件移動到bbb目錄下,并改名為abc.txt
mva.txt ./bbb/abc.txt
7、cat和more
cat讀取文本文件,一次性輸出到終端窗口中,并且光標停留在末尾
more 分頁讀取文本文件,一次讀取一頁可以使用命令進行換行或翻頁
enter 向下一行或n行 ,可以設置
空格 向下翻一頁
b向上翻一頁
q退出預覽
注意,無論是cat還是more只適合讀取中小型文件,不適合讀取大型文件
# 使用cat讀取文本信息
cata.txt
# 使用more讀取文本信息
more a.txt
8、cp命令
cp用于復制文件
cp? 源文件名? 目標文件名
cp命令與mv命令使用方式基本一致,只是在復制或移動完成后,cp命令會保留源文件,mv命令會刪除源文件
# 復制a.txt到當前目錄下,命名為b.txt
cpa.txt b.txt
# 復制a.txt文件到ccc目錄下
cpa.txt ccc# ccc目錄存在
# 復制aaa目錄到當前目錄下,并改名為bbb
cp-raaa bbb# bbb目錄不存在
# 復制aaa目錄到ccc目錄下
cp-raaa ccc# ccc目錄存在
9、ps和kill
ps查看當前活躍進程信息
-ef? 查看所有進程信息
kill -9 殺死進程
kill -9 進程號
10、ifconfig命令
獲取當前主機的網(wǎng)絡環(huán)境信息
mac? 和linux中使用ifconfig
windows 使用ipconfig
11、clear清空窗口命令
對當前終端窗口進行清空
清空不是刪除歷史命令,而是將其上移,使光標處于終端窗口的第一行
ctrl + l 也可以進行清空窗口
12、重啟及關機命令
reboot? 重啟命令
shutdown -h now : 立即關機
shutdown -h 10 : 十分鐘后關機
halt:立即關機
13、which命令
which是查詢當前的可執(zhí)行文件所在位置的絕對路徑
which ls? :查詢ls所在位置的絕對路徑
ll命令就是系統(tǒng)底層調用了ls -l? 并沒有l(wèi)l命令
14、hostname
使用hostname可以查詢主機名稱
15、grep和管道|
grep 要查詢的文本信息? 目標文本文件
| 第一個命令的輸出,就是第二個命令的輸入
# 查詢所有的進程? (所有的進程信息就是輸出)
ps-ef
# 從initial。。。文件中查詢a文本出現(xiàn)的位置 (目標文本文件就是輸入)
grepa initial。。。。
# 查詢所有進程中包含mysql的信息(下邊兩行信息即為如下命令的輸出)
ps-ef|grepmysql
# mysql ? ?? 1406 ? ?? 1? 0 01:14 ? ? ? ?? 00:05:32 /usr/sbin/mysqld
# root ? ?? 11458? 10323? 0 10:29 pts/1 ?? 00:00:00 grep --color=auto mysql
# 查詢所有進程中,包含mysql且為root用戶服務的信息
ps-ef|grepmysql |greproot
# 查詢6月份創(chuàng)建的所有名字中帶a的文件信息
ll |grepa |grep6月
16、用戶管理命令
創(chuàng)建用戶:useradd? 用戶名
設置用戶密碼: passwd? 用戶名
刪除用戶: userdel -r 用戶名
當前用戶如果已經(jīng)登錄或遠程訪問則需要先關閉進程才可以被刪除
17、用戶權限管理
怎樣查看用戶權限:ll? 或者ls-l 前10列數(shù)據(jù)進行了文件或目錄的權限展示
第一列:文件類型:d 文件夾? -普通文件? l 連接
后9列:權限展示
前三列:當前用戶權限(u)user
中間三列:用戶組權限(g)group
后三列:其他用戶權限(o)other
權限類型:
r 讀取權限
w 寫入權限
x 可執(zhí)行權限
-沒有權限
字母型權限設置
# 給a.txt文件添加當前用戶的可執(zhí)行權限
chmodu+x a.txt
# 給a.txt文件當前用戶減少寫入權限
chmodu-w a.txt
# 給a.txt,當前用戶添加寫入權限,給所在組用戶減少寫入權限,給其他用戶增加只讀權限
chmodu+w,g-w,o+r a.txt
# 給aaa目錄,組用戶添加寫入權限,減少可執(zhí)行權限,變?yōu)椋╮w),給其他用戶增加寫入權限
chmodg=rw,o+w aaa
數(shù)字型權限設置:r:4? w:2 x:1
# 給aaa.txt文件條件當前用戶可讀可寫可執(zhí)行,所屬組可讀可寫,其他用戶只可以讀
chmod764aaa.txt
18、vi編輯器
vi編輯器有三種模式:命令模式,插入模式,末行模式(底行模式)
命令模式
進入插入模式:o O i a
進入末行模式::
插入模式
進入末行模式:先使用esc進入命令模式,使用:進入末行模式
進入命令模式:esc
末行模式
進入命令模式: enter? esc
進入插入模式:使用esc進入命令模式,使用o O i a進入插入模式
19、數(shù)據(jù)庫概述
數(shù)據(jù)庫就是存儲數(shù)據(jù)的倉庫,程序員可以在數(shù)據(jù)庫中進行數(shù)據(jù)的增刪改查操作
數(shù)據(jù)庫分為關系型數(shù)據(jù)庫和菲關系型數(shù)據(jù)庫
關系型數(shù)據(jù)庫:采用二維表格模型創(chuàng)建的數(shù)據(jù)庫,適用于儲存邏輯復雜的大型數(shù)據(jù)
Oracle, mysql,sqlite,sqlsever,db2
非關系型數(shù)據(jù)庫:大多采用key-value結構存儲數(shù)據(jù),適用于結構簡單,數(shù)據(jù)量大或需要快速存取的數(shù)據(jù)
Redis, hbase,mongodb
20、MySQL數(shù)據(jù)庫的登錄和退出
mysql數(shù)據(jù)庫是一個關系型數(shù)據(jù)庫管理系統(tǒng)
mysql優(yōu)勢:
開源免費
支持大型數(shù)據(jù)庫
使用標準的sql語言開發(fā)
支持跨平臺,多種語言接口
我們當前課程使用的是8.0社區(qū)版mysql進行學習
mysql的登錄和退出
# 登錄方式一:
mysql-uroot-p回車
密碼
# 登錄方式二:
mysql-uroot-p密碼
# 登錄方式三:
mysql--user=root--password=密碼
# 退出方式一:
exit
# 退出方式二:
quit
# 退出方式三:
ctrl+z
mysql支持遠程連接
# 遠程連接方式一:
mysql--user=root--host=192.168.88.100--password=密碼
# 遠程連接方式二:
mysql-uroot-h192.168.88.100-p密碼
21、sql語句
sql語句的分類
DDL:數(shù)據(jù)庫定義語言:對數(shù)據(jù)庫和數(shù)據(jù)表進行構建,修改和刪除
DML:數(shù)據(jù)庫操作語言:對數(shù)據(jù)表中的記錄進行增加,修改和刪除
DQL:數(shù)據(jù)庫查詢語言:對數(shù)據(jù)表中的記錄進行查詢
DCL:對用戶權限進行管理,對數(shù)據(jù)安全等級進行設定,用戶的添加和刪除
sql通用語法:
可以單行顯示,也可以多行顯示,以分號結尾
可以隨意換行或者縮進,不影響sql語句的執(zhí)行
關鍵字不區(qū)分大小寫
注釋類型
單行注釋? --? #? ctrl + /
多行注釋/**/