目錄html
學習連接:尚硅谷韓順平Linux教程前端
Linux世界裏,一切皆文件。java
總結:node
三種常見模式:python
正常模式mysql
在正常模式下,咱們可使用快捷鍵。linux
插入模式/編輯模式c++
在這個模式下,程序猿能夠輸入內容。git
命令行模式github
在這個模式中,能夠提供相關指令。
快捷鍵使用練習:
用戶,組,家目錄。
指定運行級別(7個級別)
系統的運行級別配置文件:/etc/inittab
切換到指定運行級別的指令:init [012356]
面試題:如何找回丟失的root密碼?:進入到單用戶模式,而後修改root密碼。由於進入單用戶模式,root不須要密碼就能夠登陸。【開機->在引導時輸入 回車鍵->看到一個界面輸入 e->看到一個新的界面,選中第二行(編輯內核),再輸入 e->在這行最後輸入 1,再輸入 回車鍵->再輸入b,這時就會進入到單用戶模式,使用passed來修改root密碼。】
幫助指令:
文件目錄類
pwd:Print Working Directory,顯示當前工做目錄的絕對路徑。
ls:-a:顯示當前目錄全部的文件和目錄,包括隱藏的;-l:以列表的方式顯示信息。
cd:cd ~:回到本身的家目錄;cd ..:回到當前目錄的上一級目錄。
mkdir:建立目錄;-p:建立多級目錄。
rmdir:刪除空目錄。rmdir不能刪除非空的目錄。若是須要刪除非空的目錄,須要使用rm -rf。
touch:建立空文件。能夠一次性建立多個文件
cp:拷貝文件到指定目錄;-r:遞歸複製整個文件夾。強制覆蓋不提示的方法:cp命令改成\cp
rm:移除文件或目錄;-r:遞歸刪除整個文件夾;-f:強制刪除不提示。
mv:移動文件與目錄或重命名,兩種功能!
cat:查看文件內容。只能瀏覽文件,而不能修改文件。-n:顯示行號。結尾加上 | more:分頁顯示,不會所有一下顯示完。
more:是一個基於VI編輯器的文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容。more還內置了不少快捷鍵:
操做 | 功能說明 |
---|---|
空白鍵(Space) | 向下翻一頁 |
Enter | 向下翻一行 |
q | 馬上離開more,再也不顯示該文件內容 |
Ctrl + F | 向下滾動一屏 |
Ctrl + B | 返回上一屏 |
= | 輸出當前行的行號 |
:f | 輸出文件名和當前行的行號 |
less:用來分屏查看文件內容,與more類似,可是更強大,支持各類顯示終端。less指令在顯示文件內容時,並非一次將整個文件加載以後才顯示,而是根據顯示須要加載內容。對於顯示大型文件具備較高的效率。
>
指令:輸出重定向。若是不存在會建立文件,不然會將原來的文件內容覆蓋。
>>
指令:追加。若是不存在會建立文件,不然不會覆蓋原來的文件內容,而是追加到文件的尾部。
cat是查看,echo是寫入,echo (內容) >> 文件
cal:顯示當前月日曆。
echo:輸出內容到控制檯。
head:顯示文件的開頭部分。-n 5:看前面5行內容。
tail:輸出文件中尾部的內容。-n 5:看後面5行內容。-f:時事追蹤該文檔的全部更新
時間日期類
搜索查找類
cat hello.txt | grep yes
壓縮和解壓類
文件:
文件/目錄全部者:
組的建立
文件/目錄所在組
其餘組
改變用戶所在組
權限的基本介紹
文件類型:
ls -l 顯示內容說明:
rwx權限詳解
修改權限 chmod
經過數字變動權限
修改文件全部者 chown
修改文件所在組 chgrp
crond任務調度:crontab進行定時任務調度
項目 | 含義 | 範圍 |
---|---|---|
第一個「*」 | 一小時當中的第幾分鐘 | 0-59 |
第二個「*」 | 一天當中的第幾小時 | 0-23 |
第三個「*」 | 一個月當中的第幾天 | 1-31 |
第四個「*」 | 一年當中的第幾月 | 1-12 |
第五個「*」 | 一週當中的星期幾 | 0-7(0和7都表明星期日) |
特殊符號說明
*
:表明任什麼時候間。好比第一個*
就表明一小時中每分鐘都執行一次的意思。,
:表明不連續的時間。好比「0 8,12,16 * * *命令」,就表明在天天的8點0分,12點0分,16點0分都執行一次命令。-
:表明連續的時間範圍。好比「0 5 * * 1-6命令」,表明在週一到週六的凌晨5點0分執行命令。/n
:表明每隔多久執行一次。好比「/10 * * * 命令」,表明每隔10分鐘就執行一遍命令。分區的方式
Linux分區
硬盤說明
掛載的經典案例
磁盤狀況查詢:df -h / df -l
查詢指定目錄的磁盤佔用狀況:du -h /目錄,默認爲當前目錄
磁盤狀況-工做實用指令
ls -l /home | grep "^-" | wc -l
ls -l /home | grep "^d" | wc -l
ls -lR /home | grep "^-" | wc -l
ls -lR /home | grep "^d" | wc -l
查看是否有mysql:rpm -qa | grep mysql
刪除舊mysql:rpm -e –nopdeps mysql(強制刪除)
安裝環境:yum -y install make gcc-c++ cmake bison-devel ncurses-devel
解壓mysql:tar -zxvf mysql-5.6.14.tar.gz
進入mysql目錄
編譯安裝:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc
-DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306
-DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENHINE=1
-DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
編譯並安裝:make && make install
配置mysql,設置權限
查看是否有mysql用戶和組:cat /etc/passwd,cat /etc/group
添加mysql組:groupadd mysql
添加mysql用戶並放在mysql組中:useradd -g mysql mysql
修改/usr/local/mysql權限:chown -R mysql:mysql /usr/local/mysql/
初始化mysql:
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
--user=mysql
若是報錯:Can't locate Data/Dumper.pm
,則運行:yum install 'perl(Data::Dumper)'
,參考連接:https://www.cnblogs.com/yanghongfei/p/7118072.html
刪除以前mysql的配置文件:mv /etc/my.cnf /etc/my.cnf.bak
啓動MySQL
添加服務,拷貝服務腳本到init.d目錄,並設置開機啓動
[注意在 /usr/local/mysql 下執行]
cp support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start
執行下面的命令修改root密碼
cd /usr/local/mysql/bin
./mysql -u root -p
set password = password('root');(quit退出mysql)
Shell是一個命令行解釋器,它爲用戶提供了一個向Linux內核發送請求以便裕興程序的界面系統級程序,用戶能夠用Shell來啓動、掛起、中止甚至是編寫一些程序。
Shell腳本的執行方式:
shell的變量
shell變量的介紹
$HOME
、$PWD
、$SHELL
、$USER
等等shell變量的定義
基本語法
定義變量:變量=值,=兩邊不能有空格
撤銷變量:unset 變量
聲明靜態變量:readonly 變量,注意:不能unset
定義變量的規則
將命令的返回值賦給變量
ls -la
這裏有反引號(ESC下面),運行裏面的命令,並把結果返回給變量A設置環境變量
基本語法
export 變量名=變量值:將shell變量輸出爲環境變量
source 配置文件:讓修改後的配置文件信息當即生效
echo $變量名:查詢環境變量的值
多行註釋:
:<<!
須要註釋的內容
!
位置參數變量
$n
:n爲數字,$0
表明命令自己,$1-$9
表明第一到第九個參數,10以上的參數須要用大括號包含,如${10}
$*
:這個變量表明命令行中全部的參數,$*
把全部的參數當作一個總體$@
:這個變量也表明命令行中全部的參數,不過$@
把每一個參數區分對待$#
:這個變量表明命令行中全部參數的個數預約義變量
$$
:當前進程的進程號(PID)$!
:後臺運行的最後一個進程的進程號(PID)$?
:最後一次執行的命令的返回狀態。若是這個變量的值爲0,證實上一個命令正確執行;若是這個變量的值爲非0(具體是哪一個數,由命令本身來決定),則證實上一個命令執行不正確。運算符
$
((運算式))」或「$
[運算時]」\*
/ %,乘,除,取餘條件判斷
流程控制if語句
if判斷基本語法:
if [ 條件判斷式 ];then
程序
fi
或者:
if [ 條件判斷式 ]
then
程序
elif [ 條件判斷式 ]
then
程序
fi
流程控制case語句
case語句基本語法:
case $變量名 in
「值1」)
若是變量的值等於值1,則執行程序1
;;
「值2」)
若是變量的值等於值2,則執行程序2
;;
…省略其餘分支…
*)
若是變量的值都不是以上的值,則執行此程序
;;
esac
流程控制for循環
for循環基本語法1:
for 變量 in 值1 值2 值3…
do
程序
done
for循環基本語法2
for ((初始值;循環控制條件;變量變化))
do
程序
done
流程控制while循環
while循環基本語法1:
while [ 條件判斷式 ]
do
程序
done
read讀取控制檯的輸入
函數
系統函數
自定義函數
基本語法:
function funname()
{
Action;
[return int;]
}
調用直接寫函數名:funname(不用寫括號),而後在後面寫參數
需求分析
若是報錯:mysqldump: command not found
解決方案:
crontab -e
10 2 * * * /usr/sbin/mysql_backup_db.sh
設置Ubuntu支持中文
su root顯示認證失敗:是由於咱們尚未對root用戶設置密碼
給root用戶設密碼:sudo passwd
若是ubuntu沒有vim:apt install vim
apt軟件管理和遠程登陸
apt:Advanced Packaging Tool,是一款安裝包管理工具。在Ubuntu下,咱們可使用apt命令進行軟件包的安裝、刪除、清理等。
經常使用命令:
sudo apt-get update
更新源
sudo apt-get install package 安裝包
sudo apt-get remove package 刪除包
sudo apt-cache search package 搜索軟件包
sudo apt-cache show package
獲取包的相關信息,如說明、大小、版本等
sudo apt-get install package --reinstall
從新安裝包
sudo apt-get -f install
修復安裝
sudo apt-get remove package --purge 刪除包,包括配置文件等
sudo apt-get build-dep package 安裝相關的編譯環境
sudo apt-get upgrade 更新已安裝的包
sudo apt-get dist-upgrade 升級系統
sudo apt-cache depends package 瞭解使用該包依賴那些包
sudo apt-cache rdepends package 查看該包被哪些包依賴
sudo apt-get source package
下載該包的源代碼
更新Ubuntu軟件下載地址
Windows使用SSH遠程登陸Ubuntu
Linux使用SSH遠程登陸Ubuntu
個人CSDN:https://blog.csdn.net/qq_21579045
個人博客園:https://www.cnblogs.com/lyjun/
個人Github:https://github.com/TinyHandsome
紙上得來終覺淺,絕知此事要躬行~
歡迎你們過來OB~
by 李英俊小朋友