1. 按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別
2. 安裝Centos7.6作業系統,創建一個自己名字的用戶名,并可以正常登錄,將主要步驟截圖,
3. 配置環境變數,實作執行history的時候可以看到執行命令的時間,
4. 總結Linux哲學思想,
5. 總結Linux常用命令使用格式,并用實體說明,例如echo、screen、date、ifconfig、export等命令
1、按系列羅列linux的發行版,并描述不同發行本之間的聯系與區別
Linux 發行版本:
Slackware:SUSE ,linux Enterprise Server(SLES) OpenSuse 桌面
Debian:Ubuntu,deepin(深度),mint
Redhat:redhat enterprise linux ,centos ,fedora
Archlinux:輕量簡潔,遵循K.L.S.S原則,(keep IT simple and stupid)
Gentoo:極致性能,不提供傳統意義的安裝程式,下載源代碼在本機上編譯安裝軟體
LFS:linux From sxrath 自制linux
Android:kernel+busybox(工具集)+Java虛擬機
不同發行版本之間的聯系:完整的Linux系統都是由Linux內核加上各種應用程式組成
區別:
Red Hat ,是redhat自己的發行的企業版,是redhat的一個重要節點,
Fedore是一款基于linux的作業系統,也是一組維持計算機正常運行的軟體集合,由紅帽公司贊助,
suse linux,針對個人用戶,
紅旗linux的發行版,包括桌面版、作業站版、資料中心服務器版、HA集群版和紅旗嵌入式linux等產品,
是中國較大、較成熟的linux發行版之一,
Debian,三大發行版中唯一以社區形式運作,不以商業公司形式運作,是一個致力于創建自由作業系統
的合作組織,而且debian開發者所創建的作業系統中絕大部分基礎工具來自于GNU工程,
Ubuntu,是一個以桌面應用為主的linux作業系統,Ubuntu的目標在于為一般用戶提供一個最新的、同時
又相當穩定的主要由自由軟體構建而成的作業系統,
Centos,是一個基于redhat linux 提供的可自由使用源代碼的企業級linux發行版本,目前Centos已被收購,
成為redhat旗下的一個組織,
2、安裝centos7.6作業系統,創建一個自己的名字的用戶名,并可以正常登陸,將主要步驟截圖
[root@localhost ~]# useradd tk
[root@localhost ~]# passwd tk
Changing password for user tk.
New password:
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password:
passwd: all authentication tokens updated successfully.
3、配置環境變數,實作執行history的時候可以看到執行命令的時間
在/etc/profile 下找到HISTSIZE并在下面添加 HISTTIMEFORMT=”%F%T”
或者HISTTIMEFORMT=”%y-%m-%d %H:%M:%S”,注意格式%S后面最好有空格這樣顯示的時候格式
好看 即可,如下:
[root@tk ~]# vim /etc/profile
[root@tk~]# source /etc/profile
[root@tk ~]# history
4、總結linux哲學思想
a.一切都是一個檔案(包括硬體)
b.小型,單一用途的程式
c.鏈接程式,共同完成復雜的任務
d.避免令人困惑的用戶界面
e.配置資料存盤在文本中
5、總結linux常用的命令使用格式,并用實體說明,列如echo、screen、date、ifconfig、export等命令
Screen:
screen用于命令列終端切換
用戶可以通過該軟體同時連接多個本地或遠程的命令列會話,并在其間自由切換,GNU Screen可以看作
是視窗管理器的命令列界面版本,它提供了統一的管理多個會話的界面和相應的功能,
會話恢復:只要Screen本身沒有終止,在其內部運行的會話都可以恢復,這一點對于遠程登錄的用戶特別
有用——即使網路連接中斷,用戶也不會失去對已經打開的命令 行會話的控制,只要再次登錄到主機上
執行screen -r就可以恢復會話的運行,同樣在暫時離開的時候,也可以執行分離命令detach,在保證里
面的程式正常運行的情況下讓Screen掛起(切換到后 臺)
語法:
screen [-AmRvx -ls -wipe][-d <作業名稱>][-h <行數>][-r <作業名稱>][-s ][-S <作業名稱>]
選項:
-A 將所有的視窗都調整為目前終端機的大小,
-d <作業名稱> 將指定的screen作業離線,
-h <行數> 指定視窗的緩沖區行數,
-m 即使目前已在作業中的screen作業,仍強制建立新的screen作業,
-r <作業名稱> 恢復離線的screen作業,
-R 先試圖恢復離線的作業,若找不到離線的作業,即建立新的screen作業,
-s 指定建立新視窗時,所要執行的shell,
-S <作業名稱> 指定screen作業的名稱,
-v 顯示版本資訊,
-x 恢復之前離線的screen作業,
-ls或--list 顯示目前所有的screen作業,
-wipe 檢查目前所有的screen作業,并洗掉已經無法使用的screen作業,
常用screen引數:
screen -S yourname -> 新建一個叫yourname的session
screen -ls -> 列出當前所有的session
screen -r yourname -> 回到yourname這個session
screen -d yourname -> 遠程detach某個session
screen -d -r yourname -> 結束當前session并回到yourname這個session
在每個screen session 下,所有命令都以 ctrl+a(C-a) 開始,
C-a ? -> 顯示所有鍵系結資訊
C-a c -> 創建一個新的運行shell的視窗并切換到該視窗
C-a n -> Next,切換到下一個 window
C-a p -> Previous,切換到前一個 window
C-a 0..9 -> 切換到第 0..9 個 window
Ctrl+a [Space] -> 由視窗0循序切換到視窗9
C-a C-a -> 在兩個最近使用的 window 間切換
C-a x -> 鎖住當前的 window,需用用戶密碼解鎖
C-a d -> detach,暫時離開當前session,將目前的 screen session (可能含有多個 windows)
丟到后臺執行,并會回到還沒進 screen 時的狀態,此時在 screen session 里,每個 window 內運行的 process
(無論是前臺/后臺)都在繼續執行,即使 logout 也不影響,
C-a z -> 把當前session放到后臺執行,用 shell 的 fg 命令則可回去,
C-a w -> 顯示所有視窗串列
C-a t -> time,顯示當前時間,和系統的 load
C-a k -> kill window,強行關閉當前的 window
C-a [ -> 進入 copy mode,在 copy mode 下可以回滾、搜索、復制就像用使用 vi 一樣
C-b Backward,PageUp
C-f Forward,PageDown
H(大寫) High,將游標移至左上角
L Low,將游標移至左下角
0 移到行首
$ 行末
w forward one word,以字為單位往前移
b backward one word,以字為單位往后移
Space 第一次按為標記區起點,第二次按為終點
Esc 結束 copy mode
C-a ] -> paste,把剛剛在 copy mode 選定的內容貼上
安裝screen
流行的Linux發行版(例如Red Hat Enterprise Linux)通常會自帶screen實用程式,如果沒有的話,可以從
GNU screen的官方網站下載,
[root@localhost ~]# yum -y install screen
實體:
創建 screen 終端
#screen //創建 screen 終端
創建 screen 終端 并執行任務
#screen vi ~/main.c //創建 screen 終端 ,并執行 vi命令
使用描述性名稱啟動螢屏會話是一個很好的做法,這樣你可以輕松地記住會話中正在運行的行程,要使用
會話名稱創建新會話,請運行以下命令:
screen -S name #將 “name” 替換為對你會話有意義的名字,
從 screen 會話中分離
要從當前的 screen 會話中分離,你可以按下Ctrl-A 和 d,所有的 screen 會話仍將是活躍的,你之后可以
隨時重新連接,
重新連接到 screen 會話
如果你從一個會話分離,或者由于某些原因你的連接被中斷了,你可以使用下面的命令重新連接:
screen -r
如果你有多個 screen 會話,你可以用 ls 引數列出它們,
screen -ls
There are screens on:
7880.session (Detached)
7934.session2 (Detached)
7907.session1 (Detached)
3 Sockets in /var/run/screen/S-root.
在我們的例子中,我們有三個活躍的 screen 會話,因此,如果你想要還原 “session2” 會話,你可以執行:
screen -r 7934
或者使用 screen 名稱,
screen -r -S session2
中止 screen 會話
有幾種方法來中止 screen 會話,你可以按下 Ctrl+d ,或者在命令列中使用 exit 命令,
要查看screen命令所有有用的功能,你可以查看 screen 的 man 手冊,man screen
echo:
字串輸出
命令格式:
echo string
實體:
?普通字串輸出
[root@localhost ~]# echo IM taokui
IM taokui
[root@localhost ~]# echo "IM taokui"
IM taokui
[root@localhost ~]# echo 'IM taokui'
IM taokui
?顯示轉義字符
[root@localhost ~]# echo \"IM taokui\"
"IM taokui"
[root@localhost ~]# echo ""\"IM taokui\"
"IM taokui"
?顯示變數
read 命令從標準輸入中讀取一行,并把輸入行的每個欄位的值指定給 shell 變數
[root@localhost ~]# vim test.sh
#!/bin/sh
read name
echo "$name IM taokui"
[root@localhost ~]# sh test.sh
wo
wo IM taokui
?顯示換行
[root@localhost ~]# echo -e "tk \n" #-e開啟轉義,\n表示換行,以下是換行和不換行的效果
tk
[root@localhost ~]# echo IM tk
IM tk
?顯示不換行
[root@localhost ~]# vim test.sh
#!/bin/sh
echo -e “tk \c” #-e開啟轉義 \c不換行
echo "IM taokui"
[root@localhost ~]# sh test.sh
tk IM taokui
?顯示結果指定向檔案
[root@localhost ~]# echo IM taokui >a.txt
[root@localhost ~]# cat a.txt
IM taokui
?原樣輸出字串,不進行轉義或取變數(用單引號)
[root@localhost ~]# echo '$name\'
$name\
[root@localhost ~]# echo "$name\" #如果用雙引號會是不能原樣輸出的
?顯示命令執行結果
[root@localhost ~]# echo
date#這里用的是反引號(`)而不是單引號(’),如果用單引號或者雙引號
都只會原樣輸出
Sun Dec 1 19:16:05 CST 2019
export:
命令用于設定或顯示環境變數,可新增,修改或洗掉環境變數,供后續執行的程式使用,xeport的效力僅限于該次登錄操作
語法:
export [-fnp][變數名]=[變數設定值]
-f 代表[變數名稱]中為函式名稱
-n 洗掉指定的變數,變數時間上并未洗掉,只是不會輸出到后續指令的執行環境中
-p 列出所有的shell賦予程式的環境變數
?列出當前所有的環境變數
[root@localhost ~]# export -p #列出當前所有環境變數 ,由于篇幅原因這里我只復制前半部分
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="localhost"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
?定義環境變數賦值
[root@localhost ~]# export tk=love
[root@localhost ~]# export -p #會看到剛剛定義的變數
declare -x USER="root"
declare -x XDG_RUNTIME_DIR="/run/user/0"
declare -x XDG_SESSION_ID="4"
declare -x tk="love"
?定義環境變數
[root@localhost ~]# export TK #定義變數的時候需要大寫
[root@localhost ~]# export -p
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x TK
date:
用來顯示或者設定系統的時間和日期
若是不以加號作為開頭,則表示要設定時間,而時間格式為 MMDDhhmm[[CC]YY][.ss],其中 MM 為月份,DD 為日,hh 為小時,mm 為分鐘,CC 為年份前兩位數字,YY 為年份后兩位數字,ss 為秒數,
語法:
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
引數說明:
?-d datestr : 顯示 datestr 中所設定的時間 (非系統時間)
?--help : 顯示輔助訊息
?-s datestr : 將系統時間設為 datestr 中所設定的時間
?-u : 顯示目前的格林威治時間
?--version : 顯示版本編號
date命令的用法 :
date +%Y-%m-%d, date +%y-%m-%d 年月日
date +%H:%M:%S = date +%T 時間
date +%s 時間戳
date -d @1504620492 時間戳換算
date -d “+1day” 一天后
date -d “-1 day” 一天前
date -d “-1 month” 一月前
date -d “-1 min” 一分鐘前
date +%w, date +%W 星期
?查看當前時間
[root@tk ~]# date
2019年 12月 04日 星期三 02:18:19 CST
?查看系統日期
[root@tk ~]# cal
十二月 2019
日 一 二 三 四 五 六
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
?查看當前年份(四位顯示)
[root@dl-001 shell]# date +%Y
2019
?查看當前年份(簡化顯示)
[root@tkl~]# date +%y
19
?查看當前 年 月 日 時 分 秒 星期
[root@tk ~]# date "+%Y-%m-%d %H:%M:%S %w"
2019-12-04 02:24:44 3
?查看當前時間是一年的第幾周
[root@tk ~]# date +%W
48
?查看時間戳(顯示從1970年1月1日00:00:00到目前經歷的秒數)
[root@tk ~]# date +%s
1575397686
?時間戳的換算
[root@tk ~]# date -d @1575397686
2019年 12月 04日 星期三 02:28:06 CST
?列印指定日期和時間
[root@tk ~]# date -d "-2 day" +%d
02
[root@tk ~]# date -d "-1 year -3 month -1 day" +%Y-%m-%d
2018-09-03
?手動設定當前時間
[root@tk ~]# date -s "2019-12-4 02:37:40"
2019年 12月 04日 星期三 02:37:40 CST
[root@tk ~]# date
2019年 12月 04日 星期三 02:37:44 CST
?同步網路時間
[root@tk~]# yum install -y ntp
[root@tk ~]# ntpdate ntp.ubuntu.com
4 Dec 02:38:48 ntpdate[19778]: the NTP socket is in use, exiting
[root@tk ~]# date
2019年 12月 04日 星期三 02:38:53 CST
Ifconfig:
用于顯示或者設定網路
語法:
ifconfig [網路設備][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<網路設備型別><硬體地址>][io_addr<I/O地址>][irq<IRQ地址>][media<網路媒介型別>][mem_start<記憶體地址>][metric<數目>][mtu<位元組>][netmask<子網掩碼>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
引數說明:
?add<地址> 設定網路設備IPv6的IP地址,
?del<地址> 洗掉網路設備IPv6的IP地址,
?down 關閉指定的網路設備,
?<hw<網路設備型別><硬體地址> 設定網路設備的型別與硬體地址,
?io_addr<I/O地址> 設定網路設備的I/O地址,
?irq<IRQ地址> 設定網路設備的IRQ,
?media<網路媒介型別> 設定網路設備的媒介型別,
?mem_start<記憶體地址> 設定網路設備在主記憶體所占用的起始地址,
?metric<數目> 指定在計算資料包的轉送次數時,所要加上的數目,
?mtu<位元組> 設定網路設備的MTU,
?netmask<子網掩碼> 設定網路設備的子網掩碼,
?tunnel<地址> 建立IPv4與IPv6之間的隧道通信地址,
?up 啟動指定的網路設備,
?-broadcast<地址> 將要送往指定地址的資料包當成廣播資料包來處理,
?-pointopoint<地址> 與指定地址的網路設備建立直接連線,此模式具有保密功能,
?-promisc 關倍訓啟動指定網路設備的promiscuous模式,
?[IP地址] 指定網路設備的IP地址,
?[網路設備] 指定網路設備的名稱,
實體:
?啟動關閉指定網卡
#ifconfig eth0 down# ifconfig eth0 up
?為網卡配置和洗掉IPv6地址
ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //為網卡誒之IPv6地址
#ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //為網卡洗掉IPv6地址
?用ifconfig修改MAC地址
#ifconfig eth0 down //關閉網卡# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址# ifconfig eth0 up //啟動網卡# ifconfig eth1 hw ether 00:1D:1C:1D:1E //關閉網卡并修改MAC地址 # ifconfig eth1 up //啟動網卡
?配置IP地址
#ifconfig eth0 192.168.1.56 //給eth0網卡配置IP地址# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 // 給eth0網卡配置IP地址,并加上子掩碼# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255// 給eth0網卡配置IP地址,加上子掩碼,加上個廣播地址
?啟用和關閉ARP協議
ifconfig eth0 arp //開啟# ifconfig eth0 -arp //關閉
?設定最大傳輸單元
#ifconfig eth0 mtu 1500 //設定能通過的最大資料包大小為 1500 bytes
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/150212.html
標籤:Linux
上一篇:ubuntu下安裝tomcat,shutdown時報錯:./catalina.sh:1:eval:/home/xxx/jdk/jre/bin/java:not found





