linux入門學習筆記 07

2021-10-06 20:39:12 字數 4432 閱讀 7852

本節主要講 gdb、shutdown 、rpm/yum/apt-get 和 mount

目錄

gdb 用法

shutdown 和 reboot

rpmmount

umount

usb前一節講了 gcc 是編譯用的,gdb 則是除錯用的,類似於 vs 中的 debug,可以斷點、單步除錯

$ gcc -g -o test test.c

$ gdb test

選項

list

l顯示多行源**

break

b設定斷點,程式執行到斷點的位置會停下來

info

i描述程式的狀態

runr

開始執行程式

display

disp

跟蹤檢視某個變數,每次停下來都顯示它的值

step

s執行下一條語句,如果該語句為函式呼叫,則進入函式執行其中的第一條語句

next

n執行下一條語句,如果該語句為函式呼叫,不會進入函式內部執行(即不會一步步地除錯函式內部語句)

print

p列印內部變數值

continue

c繼續程式的執行,直到遇到下乙個斷點

set var name=v

設定變數的值

start

st開始執行程式,在main函式的第一條語句前面停下來

file

裝入需要除錯的程式

kill

k終止正在除錯的程式

watch

監視變數值的變化

backtrace

bt產看函式呼叫資訊(堆疊)

frame

f檢視棧幀

quit

q退出gdb環境

只有 root 許可權才能關機和重啟

init0 是關機,init6 是重啟

一般來說著名的 linux 系統基本上分兩大類:

1、redhat 系列:redhat、centos、fedora 等

2、debian 系列:debian、ubuntu 等

在這兩大類系統上想安裝東西時要使用的命令如下

redhat 系列

1、rpm

$ rpm -i *.rpm  # 安裝

$ rpm -ivh *.rpm  # 安裝並且有安裝進度等提示資訊

$ rpm -uvh *.rpm # 公升級並且有安裝進度等提示資訊

$ rpm -ivh –force -nodeps mypck-1.1-2rj.i386.rpm

# 安裝mypck包且顯示安裝資訊等,軟體版本號1.1,發行號為2

# rh表作業系統,i386表示這個軟體包適用於intel 80386以上的x86架構的計算機(ai32)

$ --force表示強制安裝,-nodeps忽略缺失的依賴檔案

$ rpm -u *.rpm # *為包名,公升級乙個已存在的軟體包

$ rpm -e * # *為包名,解除安裝乙個包,注意不要有字尾.rpm

$ rpm -qa|grep -i 'name' # 檢視是否安裝有名為name的rpm包

$ rpm -qif `which rpm_pkg_name` # 返回軟體包的有關資訊(看檔案在哪個包裡)

rpm 的包名比較長,因為不同的機器、不同的 linux 版本要使用 rpm 包也不一樣,所以要自己找對應的包

2、yum 黃狗

最簡單,yum 幫你去找對應的包,你只要說你要什麼包就行了

# yum會自己去幫你找你需要的包是哪個版本,可以不用指定

# yum install httpd # 安裝httpd包

# yum remove httpd # 解除安裝httpd和相關的包

# yum list # 檢視所有可安裝的包

# yum list installed # 檢視所有已安裝的包

# yum update # 公升級所有包同時公升級系統和軟體核心

3、tar

有 gcc 的機器才用

debian 系列

apt和apt-get

ubuntu上常用的包安裝命令為apt和apt-get

區別:兩個命令差的不多;

apt是apt-get、apt-cache 和 apt-config 中最常用命令選項的集合;

linux發行商鼓勵使用apt,apt提供了 linux 包管理的必要選項

$ apt install pkg  # 安裝包,或者apt-get install

$ apt remove pkg # remove解除安裝包但保留配置檔案,purge刪除包同時刪除檔案,或者apt-get remove,purge對應為apt-get purge

$ apt list zlib*  # 找出本地倉庫中所有已zlib開頭的包,只寫apt list就會列出所有包,apt-get沒這個功能

$ apt search keyword  # 搜尋給定關鍵字,並列出所有的包和描述,在找指定功能的包的時候會用到,對應為apt-cache search

$ apt autoremove pkg  # 自動刪除不需要的包, 對應為apt-get autoremove

apt-get

linux 是用於伺服器的作業系統,伺服器最重要意識 cpu,二是硬碟

早起 linux 還有什麼顯示卡音效卡,現在說到裝置基本就是硬碟,所以 mount 的操作物件是硬碟

硬碟滿了,買個硬碟然後開啟機箱插機器上 mount 就行了

插上硬碟後:

$ fdisk -l  # 檢視分割槽狀態,看有沒有沒分割槽的空盤,插了一塊就有 /dev/sda 兩塊就有 /dev/sdb

sdb 是乙個物理硬碟,現在要把這個硬碟放到軟體可以訪問的地方上

$ fdisk

一般來說用 n(加乙個新分割槽),這就獲得乙個新的邏輯分割槽

接下來用 mkfs 格式化

一般用 mkfs.xfs

$ mkfs.ext4 /dev/sdb1 or # 或 mkfs.xfs /sdb1

# 除了 xfs 還有 nfs,nfs就是把 a 機器上的硬碟 mnt 到 b 機器上,b的也可以 mnt 到 a 的上,這樣共享資料而且安全,但要搭建網路

# nis 還可以做到多台機器/使用者共享乙個內容,登入一台機器就是登入十臺機器,公司小區域網裡可能用到

$ mkdir -p /mnt/backup2

$ mount /dev/sdb1 /mnt/backup2

這就把硬碟掛載上了,之後對於 /mnt/backup2 的訪問就是對硬碟 /dev/sdb1 的訪問

一般也不加 -type 說明是那種型別

因為 mount 之後會在 /proc/filesystems 裡挨個試,哪個試成功了就是那個型別所以無需指定

要注意的就是硬碟要 mnt 到並列的目錄下,不要乙個在 mnt 乙個在 mnt/hd1 下

使用 $ mount 檢視當前的 mnt 的狀態,但是看不到哪個硬碟掛在**,也看不到空間

實際上用的是 $ df -h

umount 就是 unmount ,取消掛載,當初寫的時候寫錯了少寫了個 n

umount 顯示 device is busy 說明硬碟的內容還有在讀寫,這時候不能硬把硬碟拔下來不然東西就沒了,可能會把機器搞壞

解決方法

1、關機

可能造成工作丟失

2、umount -l

lazy umount 會斷開裝置並關閉開啟該裝置的全部控制代碼

插入 u 盤

這裡是 root 的許可權所以不是 $ 是 #

# mkdir /mnt/usb1

# ls /dev/sd*  # u 盤的裝置檔案也是 sd*

/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdb1  # 出現的檔案為掛載的 sata 硬碟

現在,插上 u 盤,再觀察/dev/ 目錄

# ls /dev/sd*

/dev/sda /dev/sda2 /dev/sdb/dev/sdc

/dev/sda1 /dev/sda3 /dev/sdb1 /dev/sdc1

# 多出來的 sdc 為 u 盤的裝置檔案,現在把新增的裝置 mount 上

[root@forward /]# mount /dev/sdc1 /mnt/usb1

$ cp /home/yd211/1.txt /mnt/usb1

$ sync  # 把 linux cash 中還沒做的命令強行做,也就是同步

$ umount /mnt/usb1  # umount /dev/sdc1 也行

如果 umount 不了顯示 busy,就用 umount -l 強行解除安裝

可以拔出 u 盤了

學習筆記 07 python入門 模組

立即學習 1 安裝模組 1,cmd下 2,pip install 2 解除安裝模組 1,cmd下 2,pip uninstall 3 模組 函式 程式的集合體 類似api概念 有系統已存在的,也可以自定義自己的模組 4 匯出模組 download as 模組名.py 5 匯入模組 1.import ...

學習筆記07

2017年9月26日 學習筆記與總結 1.盒子模型簡介 margin 當前元素和相鄰元素之間的距離 分四個方向,按順時針方向 top right bottom left 特點 1.垂直方向的相鄰元素,上下外邊距只會取最大值 2.在子元素裡新增垂直方向的外邊距,需要給父元素新增 overflow hi...

學習筆記07

概述 在程式設計中,為了方便處理資料具有相同型別的若干變數按有序形式組織起來 稱為陣列。include 變數定義 資料型別 變數 值 陣列定義 資料型別 陣列名 元素個數 int array 10 陣列 陣列下標 陣列名 下標 printf d n arr 0 printf d n arr 1 pr...