linux第一天


Shell 簡介:

Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。他接收了用戶輸入的命令並把它送入內核去執行。實際上Sheel是一個命令解釋器。它解釋由用戶輸入的命令並把它們送到內核。不僅如何,Shell有自己的編程語言用於對命令進行編輯,用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點。,比如他也有循環結構和分支控制結構等,用這種編程語言編寫的Shell程序與其他應用程序具有相同的效果。

Shell用途

我們可以使用Shell實現對Linux系統的大部分管理,如:

  • 文件管理
  • 用戶干栗
  • 權限管理
  • 磁盤管理
  • 軟件管理
  • 網絡管理

如何使用Shell

  • 輸入命令 效率低
  • Shell Script 效率高

linux 命令

  • ping ip/網址
    測試是否連接
  • date
    當前時間
  • useradd 用戶名
    添加用戶
  • gedit 名稱.sh
    gedit useradd.sh
    打開一個uesradd.sh 腳本文件

for i in {1..20}
do 
         uesradd tianyun$1 
         echo "tianyun$i is created!"       
done

執行
bash useradd.sh

  • ls
    ls
    展示當前目錄和文件,不包含隱藏
Desktop    Downloads  Pictures  Templates   Videos
Documents  Music      Public    useradd.sh

ls -a
列出文件包含隱藏文件


[root@linux lilihai]# ls -a
.              .bash_profile  .dbus      .esd_auth      Music      useradd.sh
..             .bashrc        Desktop    .ICEauthority  Pictures   Videos
.bash_history  .cache         Documents  .local         Public
.bash_logout   .config        Downloads  .mozilla       Templates
[root@linux lilihai]# 

ls -l
列出文件詳細信息

[root@linux lilihai]# ls -l
total 4
drwxr-xr-x. 2 lilihai lilihai  6 Dec 13 17:08 Desktop
drwxr-xr-x. 2 lilihai lilihai  6 Dec 13 17:08 Documents
drwxr-xr-x. 2 lilihai lilihai  6 Dec 13 17:08 Downloads
drwxr-xr-x. 2 lilihai lilihai  6 Dec 13 17:08 Music
drwxr-xr-x. 2 lilihai lilihai  6 Dec 13 17:08 Pictures
drwxr-xr-x. 2 lilihai lilihai  6 Dec 13 17:08 Public
drwxr-xr-x. 2 lilihai lilihai  6 Dec 13 17:08 Templates
-rw-rw-r--. 1 lilihai lilihai 99 Dec 13 17:36 useradd.sh
drwxr-xr-x. 2 lilihai lilihai  6 Dec 13 17:08 Videos

ls -a -l
累出所有文件,包含隱藏文件並展示詳細信息。


[root@linux lilihai]# ls -a -l
total 40
drwx------. 15 lilihai lilihai 4096 Dec 13 17:52 .
drwxr-xr-x.  4 root    root      33 Dec 13 17:56 ..
-rw-------.  1 lilihai lilihai  443 Dec 13 18:04 .bash_history
-rw-r--r--.  1 lilihai lilihai   18 Oct 31 01:07 .bash_logout
-rw-r--r--.  1 lilihai lilihai  193 Oct 31 01:07 .bash_profile
-rw-r--r--.  1 lilihai lilihai  231 Oct 31 01:07 .bashrc
drwx------. 14 lilihai lilihai 4096 Dec 13 17:11 .cache
drwxr-xr-x. 16 lilihai lilihai 4096 Dec 13 18:12 .config
drwx------.  3 lilihai lilihai   25 Dec 13 17:07 .dbus
drwxr-xr-x.  2 lilihai lilihai    6 Dec 13 17:08 Desktop
drwxr-xr-x.  2 lilihai lilihai    6 Dec 13 17:08 Documents
drwxr-xr-x.  2 lilihai lilihai    6 Dec 13 17:08 Downloads
-rw-------.  1 lilihai lilihai   16 Dec 13 17:07 .esd_auth
-rw-------.  1 lilihai lilihai  310 Dec 13 17:07 .ICEauthority
drwx------.  3 lilihai lilihai   19 Dec 13 17:07 .local
drwxr-xr-x.  4 lilihai lilihai   39 Dec 13 16:48 .mozilla
drwxr-xr-x.  2 lilihai lilihai    6 Dec 13 17:08 Music
drwxr-xr-x.  2 lilihai lilihai    6 Dec 13 17:08 Pictures
drwxr-xr-x.  2 lilihai lilihai    6 Dec 13 17:08 Public
drwxr-xr-x.  2 lilihai lilihai    6 Dec 13 17:08 Templates
-rw-rw-r--.  1 lilihai lilihai   99 Dec 13 17:36 useradd.sh
drwxr-xr-x.  2 lilihai lilihai    6 Dec 13 17:08 Videos
[root@linux lilihai]# 

ls -a /
ls -a /目錄
列出指定目錄、跟目錄下所有目錄

[root@linux lilihai]# ls -a /
.   bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
..  boot  etc  lib   media  opt  root  sbin  sys  usr
[root@linux lilihai]# ls -a /home
.  ..  jack  lilihai
[root@linux lilihai]# 

ls常見選項
-a all,查看目錄下所有文件,包含隱藏文件
-l 長列表像是
-h human 以人性化方式顯示
-t 按修改時間排序
-S 按文件的Size排序
-r 逆序排列
-i 顯示文件的incode號(索引號)

ip

ip a
獲取IP
192.168.190.130


: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:79:26:aa brd ff:ff:ff:ff:ff:ff
    inet 192.168.190.130/24 brd 192.168.190.255 scope global noprefixroute dynamic ens33
       valid_lft 1660sec preferred_lft 1660sec
    inet6 fe80::ad9a:bde8:6300:117c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:65:1a:58 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:65:1a:58 brd ff:ff:ff:ff:ff:ff

  • su
    切換用戶:
[lilihai@linux ~]$ su
Password: 
[root@linux lilihai]# 
  • whoami
    顯示當前用戶
[root@linux lilihai]# whoami
root
  • passwd
    設置密碼:
    passwd 賬號

快捷鍵

CTRL+C 終止前台運行程序
CTRL+D 退出等價於exit
CTRL+L 清屏
CTRL+A 光標移動到命令行最前端
CTRL+E 光標移動命令行后端
CTRL+U 刪除光標前所有字符
CTRL+K 刪除貫標后所有字符
CTRL+R 搜索歷史命令,利用關鍵字
ALT+. 引用上一個命令和最后一個參數,等價於!$
ESC. 引用上一個命令的最后一個參數,等價於!$

歷史命令

  • history
    光標上下鍵 上一條命令嚇一跳命令
    CTRL+R 搜索歷史命令(輸入某個命令的關鍵字)
    !行號 執行多少行號的歷史命令
    !字符集 搜索歷史最近一個已xxx字符集開頭的命令
    !$ 醫用上一個命令的最后一個參數。

別名

  • 別名優先級最高
    alias 變量名='路徑/命令'
[lilihai@linux ~]$ alias dt='date'
[lilihai@linux ~]$ date
Thu Dec 13 19:39:58 CST 2018

永久別名:
[root@linux ~]# gedit /etc/bashrc
alias yang='date'
關閉重啟打開 terminal

BASH Shell 對文件進行管理

創建、復制、刪除、移動、查看、編輯、壓縮、查找

  • 目錄結構

  • bin 普通用戶使用的命令 /bin/ls./bin/date
    *sbin 管理員使用的命令 /skin/service

  • dev 設備文件 /dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/pts/1

  • root root 用戶的HOME

  • proc 虛擬的文件系統,反映出來的內核,進程信息或者實時狀態

  • User 系統文件,相當於c:\Windows\user\local 軟件安裝目錄,相當於c:\Program
    /user/bin 普通用戶使用的應用程序
    /user/sbin 管理員使用的應用程序
    /user/lib 庫文件Glibc 32bit
    /user/lib64 庫文件Glibc 64bit

  • boot 存放的系統啟動相關的文件。

  • etc 配置文件
    系統相關如網絡/etc/sysconfig/network
    應用相關的配置文件/etc/ssh/sshd_config

  • tmp 臨時文件

  • var 存放的一些變化文件,比如數據庫,日志,郵件....

創建文件

thuch 路徑+文件

創建文件

touch file1.txt 沒有則創建,有則修改時間

[root@linux linux]# touch file.txt
[root@linux linux]# ll -l
total 0
-rw-r--r--. 1 root root 0 Dec 14 15:43 file.txt
[root@linux linux]# touch file.txt
[root@linux linux]# ll -l
total 0
-rw-r--r--. 1 root root 0 Dec 14 15:44 file.txt

同時在一個目錄下創建兩個文件

touch file3 file4

[root@linux linux]# touch file3 file4
[root@linux linux]# ll -l
total 0
-rw-r--r--. 1 root root 0 Dec 14 15:46 file3
-rw-r--r--. 1 root root 0 Dec 14 15:46 file4
-rw-r--r--. 1 root root 0 Dec 14 15:44 file.txt

創建一個txt文件

touch /home/file10.txt


oot@linux ~]# ll /home -a
total 4
drwxr-xr-x.  7 root      root       190 Dec 14 14:57 .
dr-xr-xr-x. 18 root      root       248 Dec 14 15:43 ..
-rw-r--r--.  1 root      root         0 Dec 14 14:55 file1
-rw-r--r--.  1 root      root         0 Dec 14 15:51 file10.txt

在指定目錄下一次性創建兩個文件

touch /linux/{zhuzhu,guoguo}


root@linux linux]# touch /linux/{zhuzhu,guouog}
[root@linux linux]# ll -a
total 0
drwxr-xr-x.  3 root root 101 Dec 14 15:53 .
dr-xr-xr-x. 18 root root 248 Dec 14 15:43 ..
-rw-r--r--.  1 root root   0 Dec 14 15:49 file
drwxr-xr-x.  2 root root   6 Dec 14 15:48 .file
-rw-r--r--.  1 root root   0 Dec 14 15:46 file3
-rw-r--r--.  1 root root   0 Dec 14 15:46 file4
-rw-r--r--.  1 root root   0 Dec 14 15:44 file.txt
-rw-r--r--.  1 root root   0 Dec 14 15:53 guouog
-rw-r--r--.  1 root root   0 Dec 14 15:53 zhuzhu

一次性創建以file開頭1到20的文件

touch file{1..20}


[root@linux linux]# touch file{1..20}
[root@linux linux]# ll -a
total 4
-rw-r--r--.  1 root root    0 Dec 14 15:49 file
-rw-r--r--.  1 root root    0 Dec 14 15:56 file1
-rw-r--r--.  1 root root    0 Dec 14 15:56 file10
-rw-r--r--.  1 root root    0 Dec 14 15:56 file11
-rw-r--r--.  1 root root    0 Dec 14 15:56 file12
-rw-r--r--.  1 root root    0 Dec 14 15:56 file13
-rw-r--r--.  1 root root    0 Dec 14 15:56 file14
-rw-r--r--.  1 root root    0 Dec 14 15:56 file15
-rw-r--r--.  1 root root    0 Dec 14 15:56 file16
-rw-r--r--.  1 root root    0 Dec 14 15:56 file17
-rw-r--r--.  1 root root    0 Dec 14 15:56 file18
-rw-r--r--.  1 root root    0 Dec 14 15:56 file19
-rw-r--r--.  1 root root    0 Dec 14 15:56 file2
-rw-r--r--.  1 root root    0 Dec 14 15:56 file20
-rw-r--r--.  1 root root    0 Dec 14 15:56 file3
-rw-r--r--.  1 root root    0 Dec 14 15:56 file4
-rw-r--r--.  1 root root    0 Dec 14 15:56 file5
-rw-r--r--.  1 root root    0 Dec 14 15:56 file6
-rw-r--r--.  1 root root    0 Dec 14 15:56 file7
-rw-r--r--.  1 root root    0 Dec 14 15:56 file8

一次性創建file開頭 filea fileb filec 三個文件

touch file{a..c} 等價於
touch file{a,b,c}

[root@linux linux]# touch file{a..c}
[root@linux linux]# ll -a
total 0
drwxr-xr-x.  3 root root 115 Dec 14 16:00 .
dr-xr-xr-x. 18 root root 248 Dec 14 15:43 ..
drwxr-xr-x.  2 root root   6 Dec 14 15:48 .file
-rw-r--r--.  1 root root   0 Dec 14 16:00 filea
-rw-r--r--.  1 root root   0 Dec 14 16:00 fileb
-rw-r--r--.  1 root root   0 Dec 14 16:00 filec
-rw-r--r--.  1 root root   0 Dec 14 15:54 gg.txt
-rw-r--r--.  1 root root   0 Dec 14 15:53 guouog
-rw-r--r--.  1 root root   0 Dec 14 15:54 zhu.txt
-rw-r--r--.  1 root root   0 Dec 14 15:53 zhuzhu

目錄 mkdir

創建一個目錄

mkdir dir1

[root@linux linux]# mkdir dir1
[root@linux linux]# ll 
total 0
drwxr-xr-x. 2 root root 6 Dec 14 16:06 dir1

同時在文件夾下面一次性創建兩個目錄

mkdir /linux/{dir2,dir3}

[root@linux ~]# mkdir /linux/{dir2,dir3}
[root@linux ~]# ll /linux
total 0
drwxr-xr-x. 2 root root 6 Dec 14 16:06 dir1
drwxr-xr-x. 2 root root 6 Dec 14 16:08 dir2
drwxr-xr-x. 2 root root 6 Dec 14 16:08 dir3

一次性創建多級目錄,

mkdir -pv /linux/dir22/xiaohai

[root@linux dir3]# mkdir -pv /linux/dir22/xiaohai
mkdir: created directory ‘/linux/dir22’
mkdir: created directory ‘/linux/dir22/xiaohai’

復制 cp

復制一個文件到指定目錄

cp -v anaconda-ks.cfg /linux/dir2/
anaconda-ks.cfg 文件拷貝到dir2 目錄下
-v 展示詳細信息

[root@linux dir1]# cp -v anaconda-ks.cfg /linux/dir2/
‘anaconda-ks.cfg’ -> ‘/linux/dir2/anaconda-ks.cfg’

復制一個文件到指定目錄並且重命名

cp -v anaconda-ks.cfg /linux/dir2/anaconda.txt

[root@linux dir2]# cp -v  anaconda-ks.cfg /linux/dir2/anaconda1.txt
‘anaconda-ks.cfg’ -> ‘/linux/dir2/anaconda1.txt’

復制一個文件如果已存在覆蓋

cp -rv anaconda1.txt /.
-r

[root@linux dir2]# cp -rv anaconda1.txt /.
cp: overwrite ‘/./anaconda1.txt’? 

移動 mv

將file2移動到/home/dir3下

mv file2 /home/dir3

將fiel2移動到home/dir3下,並改名為file20

mv file2 /home/dir3/file20

重命名

當前位置移動就是重命名
mv file4 file5

刪除 rm

rm /目錄 刪除

rm -rf /目錄 遞歸並強制刪除

-r 遞歸
-f force 強制
-v 詳細過程

查看

cat

cat 文件地址
-n 顯示行號
-A 顯示控制字符(換行符/制表符)
linux 換行$
Windows 換行^M$

head 默認查看前世行

默認該文件的前10行 也可以指定行數
head -2 /文件

tail 默認查看后十行

tail -20 /w文件
從后查看 指定多少行
tail -f /文件
滾動展示文件內容

less 分頁顯示文件內容

less 文件/

grep 搜索文件中帶有指定內容的行,可使用正則

grep '關鍵字' /文件地址
grep '^a' /文件地址 以a開頭的

編輯器

gedit

  圖形化編輯器

vi

  • vi 工作模式

當使用 vi a.txt 進入到command model(命令模式)
輸入i 進入到編輯模式
按v/V/^v 進入到可視化模式
按:進入到擴展命令模式(extended command model)
進入到擴展命令模式 按wq退出

命令模式(在命令模式下操作)

光標移動

hjkl

l右移動
h 左移動
j下移動
k 上移動
0 按0 回到行首
$ 按$回到行尾
gg 回到第一行行首
G 回到行尾
5G 回到第五行行首

查找

/ 輸入關鍵詞查找 按n/N 下一個 小n往后找 大N往前找
/^d 以d開頭的
/st$以st結尾的

復制
  • y 命令(以行為單位)
    yy 復制一行
    ygg 從光標開始一直復制到第一行
    3yy 復制三行
    yG 從行首復制到行為
刪除
  • d 命令(以行為單位)
    D 從光標刪除到尾行
    dd 刪除u當前行
    3dd 刪除下面三行
    dgg 從當前行開始刪除到行首
    dG 從當前行刪除到行尾

粘貼

  • p 粘貼
  • x 刪除光標所在字符
  • u 撤銷
  • ^r 重做
  • r 用來修改一個字符

進入到其他模式

  • a 進入到編輯模式(光標在當前位置的下個字符)
  • A 進入到編輯模式 (光標到行尾)
  • i 進入到編輯模式 (光標到行前一個字符)
  • o 進入到編輯模式(光標換行)
  • :進入模式模式
  • v 進入可視模式
  • ^v 進入可視塊模式
  • V 進入可是模式
  • R 進入替換模式

可是塊模式

  • 塊插入(在制定塊前插入字符) ctrl+v 選擇塊 ->shift+i 輸入字符-->按Esc 退出
  • 塊替換 ctrl+v 選擇塊,r 輸入替換字符
  • 塊刪除 ctrl+v ,d|x 刪除
  • 塊復制 ctrl+v 選擇塊 ,y

擴展命令模式 按:進入

:10 進入10行
:w 保存
:q 退出
:wq 保存並退出
:w! 強制保存並退出
:q! 不保存 強制退出
:wq! 強制保存並退出
:x 保存並退出
:X 給文件加入密碼

查找替換 按:進入

/ 替換標識符 也可以改成 @#¥%% 隨意字符
:1,5 /s/small/big/
把1~5行的每行第一個small替換成big
:1,5 /s/small/big/g
把1~5行的每行所有small替換成big
:1,$ /s/small/big/
把1~最后一行的每行第一個small替換成big
:1,$ /s/small/big/g
把1~最后一行的每行所有small替換成big
:4,9 s/^#// 將4-9行以#開頭的替換空

讀入文件/寫文件(另存為)

:w 保存到當前位置
:w /linux/test.txt 保存到linux/test.txt
:1,3 w /linux/33.txt 把1到3行去保存到33.txt
:r /etc/hosts 讀入文件到當前行后
:5 r /ect/hosts 讀入文件到第五行后

設置環境

  • 關閉窗口失效
    : set number 設置行號
    : set Ic 不缺分大小寫
    : set ai 自動縮進
    :set list 顯示控制字符
    :set nolist 取消顯示控制字符
    :set nonu 取消顯示行號
    :set noic 取消忽略大小寫
  • 永久有效

vim ~/.vimrc

set Ic
set nu

一次性打開兩個文件

vim -O /etc/hostname /ect/hosts

小o 水平分割
大O 垂直分割
按ctrl+ww 切換

vimdiff /ect/host /ect/hostname 對比兩個文件不同


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM