linux學習第一周

来源:https://www.cnblogs.com/aiaitie/archive/2019/12/04/11980788.html
-Advertisement-
Play Games

1. 按系列羅列Linux的發行版,並描述不同發行版之間的聯繫與區別 2. 安裝Centos7.6操作系統,創建一個自己名字的用戶名,並可以正常登錄,將主要步驟截圖。 3. 配置環境變數,實現執行history的時候可以看到執行命令的時間。 4. 總結Linux哲學思想。 5. 總結Linux常用命 ...


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系統都是由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.
linux學習第一周
linux學習第一周

3、配置環境變數,實現執行history的時候可以看到執行命令的時間

在/etc/profile 下找到HISTSIZE併在下麵添加 HISTTIMEFORMT=”%F%T” 
或者HISTTIMEFORMT=”%y-%m-%d %H:%M:%S”,註意格式%S後面最好有空格這樣顯示的時候格式
好看 即可,如下:
[root@tk ~]# vim /etc/profile
linux學習第一周
[root@tk~]# source /etc/profile
[root@tk ~]# history
linux學習第一周

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡介: 搭建個人雲存儲一般會想到ownCloud,堪稱是自建雲存儲服務的經典。而Nextcloud是ownCloud原開發團隊打造的號稱是“下一代”存儲. 真正試用過後就由衷地贊同這個Nextcloud:它是個人雲存儲服務的絕佳選擇。一開始以為Nextcloud只是一個網盤雲存儲,後來看到 Next ...
  • 上期問題回顧 上期問題回顧 上期問題回顧 上期問題回顧 上期問題回顧 全球 IPv4 地址正式耗盡,IPv4地址大約42.9億,按照理論來說,每一個聯網的設備都需要IP地址,而現在全球聯網設備遠遠不止42.9億,那麼,這麼多設備是怎麼處理聯網的問題呢? 先說說IPv4的格式 0~255.0~255. ...
  • https://www.jianshu.com/p/2237f029c385 https://www.cnblogs.com/chenpython123/p/11052276.html https://blog.csdn.net/weixin_33907511/article/details/857 ...
  • i.MXRTxxx支持存儲類型一共有三種:一是256KB的ROM(即BootROM)、二是總容量4.5MB的RAM(有兩個映射起始地址0x00000000/0x20000000)、三是分配給外部存儲器介面控制器(QSPI)的128MB區域。i.MXRTxxx Boot方式主要是藉助BootROM從外... ...
  • 數組簡介 在bash腳本編程當中,變數是存儲單個元素的記憶體空間;而數組是存儲多個元素的一段連續的記憶體空間。 數組由數組名和下標構成,如下。 ARRAY_NAME[SUBSCRIPT] 數組按照下標的類型可分為兩種: 索引(indexed)數組:下標為0、1、2等非負整數。 關聯(associativ ...
  • 一 kubeadm介紹 1.1 概述 參考《附003.Kubeadm部署Kubernetes》。 1.2 kubeadm功能 參考《附003.Kubeadm部署Kubernetes》。 二 部署規劃 2.1 節點規劃 節點主機名 IP 類型 運行服務 k8smaster01 172.24.8.71 ...
  • 一般情況下,是新安裝的虛擬機沒有安裝ssh造成的 進入虛擬機控制台,輸入 sudo apt-get openssh-server 回車 等安裝完成即可登陸。 ...
  • 版權聲明:本文為博主原創文章,轉載請註明出處。 https://www.cnblogs.com/YaoYing/ 下載燒寫軟體 "燒寫軟體" 將下載的壓縮文件解壓縮並安裝 下載樹莓派鏡像 "樹莓派系統鏡像文件" 將下載的壓縮文件解壓生成.img文件 製作啟動卡 利用讀卡器將需寫入的SD卡連接電腦,打 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...