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
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...