導航:首頁 > 編程系統 > linux246

linux246

發布時間:2023-06-07 05:14:00

1. linux系統怎樣查看伺服器性能命令

通過執行以下命令,可以在1分鍾內對系統資源使用情況有個大致的了解。
uptime
dmesg | tail
vmstat 1
mpstat -P ALL 1
pidstat 1
iostat -xz 1
free -m
sar -n DEV 1
sar -n TCP,ETCP 1
top
其中一些命令需要安裝sysstat包,有一些由procps包提供。這些命令的輸出,有助於快速定位性能瓶頸,檢查出所有資源(CPU、內存、磁碟IO等)的利用率(utilization)、飽和度(saturation)和錯誤(error)度量,也就是所謂的USE方法。
下面我們來逐一介紹下這些命令,有關這些命令更多的參數和說明,請參照命令的手冊。
uptime
$ uptime
23:51:26 up 21:31, 1 user, load average: 30.02, 26.43, 19.02

這個命令可以快速查看機器的負載情況。在Linux系統中,這些數據表示等待CPU資源的進程和阻塞在不可中斷IO進程(進程狀態為D)的數量。這些數據可以讓我們對系統資源使用有一個宏觀的了解。
命令的輸出分別表示1分鍾、5分鍾、15分鍾的平均負載情況。通過這三個數據,可以了解伺服器負載是在趨於緊張還是區域緩解。如果1分鍾平均負載很高,而15分鍾平均負載很低,說明伺服器正在命令高負載情況,需要進一步排查CPU資源都消耗在了哪裡。反之,如果15分鍾平均負載很高,1分鍾平均負載較低,則有可能是CPU資源緊張時刻已經過去。
上面例子中的輸出,可以看見最近1分鍾的平均負載非常高,且遠高於最近15分鍾負載,因此我們需要繼續排查當前系統中有什麼進程消耗了大量的資源。可以通過下文將會介紹的vmstat、mpstat等命令進一步排查。
dmesg | tail
$ dmesg | tail
[1880957.563150] perl invoked oom-killer: gfp_mask=0x280da, order=0, oom_score_adj=0
[...]
[1880957.563400] Out of memory: Kill process 18694 (perl) score 246 or sacrifice child
[1880957.563408] Killed process 18694 (perl) total-vm:1972392kB, anon-rss:1953348kB, file-rss:0kB
[2320864.954447] TCP: Possible SYN flooding on port 7001. Dropping request. Check SNMP counters.

該命令會輸出系統日誌的最後10行。示例中的輸出,可以看見一次內核的oom kill和一次TCP丟包。這些日誌可以幫助排查性能問題。千萬不要忘了這一步。
vmstat 1
$ vmstat 1
procs ---------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
34 0 0 200889792 73708 591828 0 0 0 5 6 10 96 1 3 0 0
32 0 0 200889920 73708 591860 0 0 0 592 13284 4282 98 1 1 0 0
32 0 0 200890112 73708 591860 0 0 0 0 9501 2154 99 1 0 0 0
32 0 0 200889568 73712 591856 0 0 0 48 11900 2459 99 0 0 0 0
32 0 0 200890208 73712 591860 0 0 0 0 15898 4840 98 1 1 0 0
^C

vmstat(8) 命令,每行會輸出一些系統核心指標,這些指標可以讓我們更詳細的了解系統狀態。後面跟的參數1,表示每秒輸出一次統計信息,表頭提示了每一列的含義,這幾介紹一些和性能調優相關的列:
r:等待在CPU資源的進程數。這個數據比平均負載更加能夠體現CPU負載情況,數據中不包含等待IO的進程。如果這個數值大於機器CPU核數,那麼機器的CPU資源已經飽和。
free:系統可用內存數(以千位元組為單位),如果剩餘內存不足,也會導致系統性能問題。下文介紹到的free命令,可以更詳細的了解系統內存的使用情況。
si, so:交換區寫入和讀取的數量。如果這個數據不為0,說明系統已經在使用交換區(swap),機器物理內存已經不足。
us, sy, id, wa, st:這些都代表了CPU時間的消耗,它們分別表示用戶時間(user)、系統(內核)時間(sys)、空閑時間(idle)、IO等待時間(wait)和被偷走的時間(stolen,一般被其他虛擬機消耗)。
上述這些CPU時間,可以讓我們很快了解CPU是否出於繁忙狀態。一般情況下,如果用戶時間和系統時間相加非常大,CPU出於忙於執行指令。如果IO等待時間很長,那麼系統的瓶頸可能在磁碟IO。
示例命令的輸出可以看見,大量CPU時間消耗在用戶態,也就是用戶應用程序消耗了CPU時間。這不一定是性能問題,需要結合r隊列,一起分析。
mpstat -P ALL 1
$ mpstat -P ALL 1
Linux 3.13.0-49-generic (titanclusters-xxxxx) 07/14/2015 _x86_64_ (32 CPU)
07:38:49 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
07:38:50 PM all 98.47 0.00 0.75 0.00 0.00 0.00 0.00 0.00 0.00 0.78
07:38:50 PM 0 96.04 0.00 2.97 0.00 0.00 0.00 0.00 0.00 0.00 0.99
07:38:50 PM 1 97.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 2.00
07:38:50 PM 2 98.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00
07:38:50 PM 3 96.97 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.03
[...]

該命令可以顯示每個CPU的佔用情況,如果有一個CPU佔用率特別高,那麼有可能是一個單線程應用程序引起的。
pidstat 1
$ pidstat 1
Linux 3.13.0-49-generic (titanclusters-xxxxx) 07/14/2015 _x86_64_ (32 CPU)
07:41:02 PM UID PID %usr %system %guest %CPU CPU Command
07:41:03 PM 0 9 0.00 0.94 0.00 0.94 1 rcuos/0
07:41:03 PM 0 4214 5.66 5.66 0.00 11.32 15 mesos-slave
07:41:03 PM 0 4354 0.94 0.94 0.00 1.89 8 java
07:41:03 PM 0 6521 1596.23 1.89 0.00 1598.11 27 java
07:41:03 PM 0 6564 1571.70 7.55 0.00 1579.25 28 java
07:41:03 PM 60004 60154 0.94 4.72 0.00 5.66 9 pidstat
07:41:03 PM UID PID %usr %system %guest %CPU CPU Command
07:41:04 PM 0 4214 6.00 2.00 0.00 8.00 15 mesos-slave
07:41:04 PM 0 6521 1590.00 1.00 0.00 1591.00 27 java
07:41:04 PM 0 6564 1573.00 10.00 0.00 1583.00 28 java
07:41:04 PM 108 6718 1.00 0.00 0.00 1.00 0 snmp-pass
07:41:04 PM 60004 60154 1.00 4.00 0.00 5.00 9 pidstat
^C

pidstat命令輸出進程的CPU佔用率,該命令會持續輸出,並且不會覆蓋之前的數據,可以方便觀察系統動態。如上的輸出,可以看見兩個JAVA進程佔用了將近1600%的CPU時間,既消耗了大約16個CPU核心的運算資源。
iostat -xz 1
$ iostat -xz 1
Linux 3.13.0-49-generic (titanclusters-xxxxx) 07/14/2015 _x86_64_ (32 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
73.96 0.00 3.73 0.03 0.06 22.21
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvda 0.00 0.23 0.21 0.18 4.52 2.08 34.37 0.00 9.98 13.80 5.42 2.44 0.09
xvdb 0.01 0.00 1.02 8.94 127.97 598.53 145.79 0.00 0.43 1.78 0.28 0.25 0.25
xvdc 0.01 0.00 1.02 8.86 127.79 595.94 146.50 0.00 0.45 1.82 0.30 0.27 0.26
dm-0 0.00 0.00 0.69 2.32 10.47 31.69 28.01 0.01 3.23 0.71 3.98 0.13 0.04
dm-1 0.00 0.00 0.00 0.94 0.01 3.78 8.00 0.33 345.84 0.04 346.81 0.01 0.00
dm-2 0.00 0.00 0.09 0.07 1.35 0.36 22.50 0.00 2.55 0.23 5.62 1.78 0.03
[...]
^C

iostat命令主要用於查看機器磁碟IO情況。該命令輸出的列,主要含義是:
r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫次數和每秒讀寫數據量(千位元組)。讀寫量過大,可能會引起性能問題。
await:IO操作的平均等待時間,單位是毫秒。這是應用程序在和磁碟交互時,需要消耗的時間,包括IO等待和實際操作的耗時。如果這個數值過大,可能是硬體設備遇到了瓶頸或者出現故障。
avgqu-sz:向設備發出的請求平均數量。如果這個數值大於1,可能是硬體設備已經飽和(部分前端硬體設備支持並行寫入)。
%util:設備利用率。這個數值表示設備的繁忙程度,經驗值是如果超過60,可能會影響IO性能(可以參照IO操作平均等待時間)。如果到達100%,說明硬體設備已經飽和。
如果顯示的是邏輯設備的數據,那麼設備利用率不代表後端實際的硬體設備已經飽和。值得注意的是,即使IO性能不理想,也不一定意味這應用程序性能會不好,可以利用諸如預讀取、寫緩存等策略提升應用性能。
free –m
$ free -m
total used free shared buffers cached
Mem: 245998 24545 221453 83 59 541
-/+ buffers/cache: 23944 222053
Swap: 0 0 0

free命令可以查看系統內存的使用情況,-m參數表示按照兆位元組展示。最後兩列分別表示用於IO緩存的內存數,和用於文件系統頁緩存的內存數。需要注意的是,第二行-/+ buffers/cache,看上去緩存佔用了大量內存空間。這是Linux系統的內存使用策略,盡可能的利用內存,如果應用程序需要內存,這部分內存會立即被回收並分配給應用程序。因此,這部分內存一般也被當成是可用內存。
如果可用內存非常少,系統可能會動用交換區(如果配置了的話),這樣會增加IO開銷(可以在iostat命令中提現),降低系統性能。
sar -n DEV 1
$ sar -n DEV 1
Linux 3.13.0-49-generic (titanclusters-xxxxx) 07/14/2015 _x86_64_ (32 CPU)
12:16:48 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
12:16:49 AM eth0 18763.00 5032.00 20686.42 478.30 0.00 0.00 0.00 0.00
12:16:49 AM lo 14.00 14.00 1.36 1.36 0.00 0.00 0.00 0.00
12:16:49 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:16:49 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
12:16:50 AM eth0 19763.00 5101.00 21999.10 482.56 0.00 0.00 0.00 0.00
12:16:50 AM lo 20.00 20.00 3.25 3.25 0.00 0.00 0.00 0.00
12:16:50 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
^C

sar命令在這里可以查看網路設備的吞吐率。在排查性能問題時,可以通過網路設備的吞吐量,判斷網路設備是否已經飽和。如示例輸出中,eth0網卡設備,吞吐率大概在22 Mbytes/s,既176 Mbits/sec,沒有達到1Gbit/sec的硬體上限。
sar -n TCP,ETCP 1
$ sar -n TCP,ETCP 1
Linux 3.13.0-49-generic (titanclusters-xxxxx) 07/14/2015 _x86_64_ (32 CPU)
12:17:19 AM active/s passive/s iseg/s oseg/s
12:17:20 AM 1.00 0.00 10233.00 18846.00
12:17:19 AM atmptf/s estres/s retrans/s isegerr/s orsts/s
12:17:20 AM 0.00 0.00 0.00 0.00 0.00
12:17:20 AM active/s passive/s iseg/s oseg/s
12:17:21 AM 1.00 0.00 8359.00 6039.00
12:17:20 AM atmptf/s estres/s retrans/s isegerr/s orsts/s
12:17:21 AM 0.00 0.00 0.00 0.00 0.00
^C

sar命令在這里用於查看TCP連接狀態,其中包括:
active/s:每秒本地發起的TCP連接數,既通過connect調用創建的TCP連接;
passive/s:每秒遠程發起的TCP連接數,即通過accept調用創建的TCP連接;
retrans/s:每秒TCP重傳數量;
TCP連接數可以用來判斷性能問題是否由於建立了過多的連接,進一步可以判斷是主動發起的連接,還是被動接受的連接。TCP重傳可能是因為網路環境惡劣,或者伺服器壓力過大導致丟包。
top
$ top
top - 00:15:40 up 21:56, 1 user, load average: 31.09, 29.87, 29.92
Tasks: 871 total, 1 running, 868 sleeping, 0 stopped, 2 zombie
%Cpu(s): 96.8 us, 0.4 sy, 0.0 ni, 2.7 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 25190241+total, 24921688 used, 22698073+free, 60448 buffers
KiB Swap: 0 total, 0 used, 0 free. 554208 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20248 root 20 0 0.227t 0.012t 18748 S 3090 5.2 29812:58 java
4213 root 20 0 2722544 64640 44232 S 23.5 0.0 233:35.37 mesos-slave
66128 titancl+ 20 0 24344 2332 1172 R 1.0 0.0 0:00.07 top
5235 root 20 0 38.227g 547004 49996 S 0.7 0.2 2:02.74 java
4299 root 20 0 20.015g 2.682g 16836 S 0.3 1.1 33:14.42 java
1 root 20 0 33620 2920 1496 S 0.0 0.0 0:03.82 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:05.35 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 0:06.94 kworker/u256:0
8 root 20 0 0 0 0 S 0.0 0.0 2:38.05 rcu_sched

top命令包含了前面好幾個命令的檢查的內容。比如系統負載情況(uptime)、系統內存使用情況(free)、系統CPU使用情況(vmstat)等。因此通過這個命令,可以相對全面的查看系統負載的來源。同時,top命令支持排序,可以按照不同的列排序,方便查找出諸如內存佔用最多的進程、CPU佔用率最高的進程等。
但是,top命令相對於前面一些命令,輸出是一個瞬間值,如果不持續盯著,可能會錯過一些線索。這時可能需要暫停top命令刷新,來記錄和比對數據。
總結
排查Linux伺服器性能問題還有很多工具,上面介紹的一些命令,可以幫助我們快速的定位問題。例如前面的示例輸出,多個證據證明有JAVA進程佔用了大量CPU資源,之後的性能調優就可以針對應用程序進行。

2. 樹莓派(Linux 系統)觸摸屏翻轉顯示以及觸摸翻轉

樹莓派(Linux 系統)觸摸屏翻轉顯示以及觸摸翻轉

問題:未使用的Pi官方屏幕,所以使用HDMI屏幕顯示的時候,顯示旋轉的同時,觸摸沒有旋轉

目的:旋轉屏幕顯示的同時,使得觸摸也跟隨旋轉

操作總流程:

    旋轉90度操作

 翻轉顯示:

 1.sudo nano /boot/config.txt

 2.在文件末尾加入

 display_rotate=0

 display_rotate=1   //90°

 display_rotate=2   //180°

 display_rotate=3   //270°

 ctrl + o 保存文檔 重啟即可。

 註:以下操作皆為SSH操作,所以每條指令前都加了DISPLAY=:0,如果本機操作刪掉即可。

 1.安裝xinput

 sudo apt-get install xinput

 2.列出所有輸入設備信息 遠程操作時,使用xinput指令需要加入DISPLAY=:0

 DISPLAY=:0 xinput --list

 3.列出目標設備屬性

 DISPLAY=:0 xinput --list-props 7

 4.旋轉觸摸的坐標軸

 1)所以先交換x、y軸

 DISPLAY=:0 xinput --set-prop '7' 'Evdev Axes Swap' 1

 2)然後反轉y軸

 DISPLAY=:0 xinput --set-prop '7' 'Evdev Axis Inversion' 0 1

顯示旋轉修改之後需要重啟。而觸摸旋轉不需要重啟。

詳細操作方法: 

1.安裝xinput

 sudo apt-get install xinput

 描述:

 xinput - utility to configure and test X input devices  

 xinput-用於配置和測試X輸入設備的實用程序

 xinput is a utility to list available input devices,

 xinput是一個實用程序,可以列出可用的輸入設備、

 query information about a device and change input device settings.

 關於設備的查詢信息和更改輸入設備設置

2.列出所有輸入設備信息

 xinput --list

 如果遠程操作記得在命令前加DISPLAY=:0

得到以下信息:

 pi@NTGAGE:~ $ DISPLAY=:0 xinput --list

⎡ Virtual core pointer                          id=2    [master pointer  (3)]

⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]

⎜   ↳ Logitech USB Optical Mouse                id=6    [slave  pointer  (2)]

⎜   ↳ WaveShare WaveShare Touchscreen           id=7    [slave  pointer  (2)]

⎣ Virtual core keyboard                         id=3    [master keyboard (2)]

    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]

    ↳ Logitech USB Keyboard                     id=8    [slave  keyboard (3)]

    ↳ Logitech USB Keyboard                     id=9    [slave  keyboard (3)]

3.列出目標設備屬性

 由於所使用的觸摸屏幕是微雪7寸屏幕,由以上信息可以得到微雪的觸摸屏對應的ID為7

所以,接下來看這款輸入設備的屬性,

pi@NTGAGE:~ $ DISPLAY=:0 xinput --list-props 7

Device 'WaveShare WaveShare Touchscreen':

        Device Enabled (115):   1

        Coordinate Transformation Matrix (116): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

        Device Accel Profile (240):     0

        Device Accel Constant Deceleration (241):       1.000000

        Device Accel Adaptive Deceleration (242):       1.000000

        Device Accel Velocity Scaling (243):    10.000000

        Device Proct ID (244):        3823, 5

        Device Node (245):      "/dev/input/event3"

        Evdev Axis Inversion (246):     0, 0

        Evdev Axis Calibration (247):   <no items>

        Evdev Axes Swap (248):  0

        Axis Labels (249):      "Abs MT Position X" (267), "Abs MT Position Y" (268), "Abs MT Pressure" (269), "None" (0), "None" (0), "None" (0)

        Button Labels (250):    "Button Unknown" (233), "Button Unknown" (233), "Button Unknown" (233), "Button Wheel Up" (121), "Button Wheel Down" (122)

        Evdev Scrolling Distance (251): 0, 0, 0

        Evdev Middle Button Emulation (252):    0

        Evdev Middle Button Timeout (253):      50

        Evdev Third Button Emulation (254):     0

        Evdev Third Button Emulation Timeout (255):     1000

        Evdev Third Button Emulation Button (256):      3

        Evdev Third Button Emulation Threshold (257):   20

        Evdev Wheel Emulation (258):    0

        Evdev Wheel Emulation Axes (259):       0, 0, 4, 5

        Evdev Wheel Emulation Inertia (260):    10

        Evdev Wheel Emulation Timeout (261):    200

        Evdev Wheel Emulation Button (262):     4

        Evdev Drag Lock Buttons (263):  0

 這塊屏幕正常顯示和觸摸的信息如上。

 如果執行到這一步,發現並沒有以上的Evdev等屬性項,請跳轉第2種方法。

 現在需要達到的目的是在屏幕顯示反轉的同時,使得觸摸也隨顯示翻轉。

 屏幕顯示為翻轉90度。/boot/config.txt設置為display_rotate=1

 上述信息中Evdev Axis Inversion 項是每條軸的旋轉設置項,後面第一個參數是x,第二個參數是y.

 Evdev Axes Swap項對應的是兩條軸的交換。

 0為不翻轉,1為翻轉 

 例如。x軸原本是朝向右的,當把Evdev Axis Inversion的第一個參數

 設置為1,即x軸朝向左。

4.旋轉觸摸的坐標軸

 現在目的是要觸摸旋轉90度,從坐標軸理解:

 即目的x軸正向為初始y軸的反向。目的y軸的正方向為初始x軸的正向。

 1)所以先交換x、y軸

 DISPLAY=:0 xinput --set-prop '7' 'Evdev Axes Swap' 1

 2)然後反轉y軸

 DISPLAY=:0 xinput --set-prop '7' 'Evdev Axis Inversion' 0 1

這樣即可完成觸摸旋轉90度。若要旋轉其他角度,推理一下即可。

顯示旋轉修改之後需要重啟。而觸摸旋轉不需要重啟。

第二種方法

 如果查詢到的信息如下

 DISPLAY=:0 xinput --list-props 6

Device 'WaveShare WaveShare Touchscreen':

        Device Enabled (114):   1

        Coordinate Transformation Matrix (115): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

        libinput Calibration Matrix (246):      0.000000, 1.000000, 0.000000, -1.000000, 0.000000, 1.000000, 0.000000, 0.000000, 1.000000

        libinput Calibration Matrix Default (247):      1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

        libinput Send Events Modes Available (248):     1, 0

        libinput Send Events Mode Enabled (249):        0, 0

        libinput Send Events Mode Enabled Default (250):        0, 0

        Device Node (251):      "/dev/input/event0"

        Device Proct ID (252):        3823, 5

 可以看到該驅動方式採用的是libinput,

 查看/usr/share/X11/xorg.conf.d/目錄下是否有40-libinput.conf這個文件。

 無 則需要安裝 

 sudo apt-get install xserver-xorg-input-libinput 

 下一步安裝完成後ls一下,就可以看到在/usr/share/X11/xorg.conf.d/目錄下存在該文件,

 下一步復制該文件到/etc/X11/xorg.conf.d/目錄下。

 一開始xorg.conf.d這個目錄在/etc/X11可能沒有,需要自己創建。

 sudo mkdir xorg.conf.d

 下一步復制到xorg.conf.d 目錄下即可。

 sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/

 下一步進入/etc/X11/xorg.conf.d/目錄下修改40-libinput.conf 文件

 cd /etc/X11/xorg.conf.d/

 sudo nano 40-libinput.conf

 找到touchscreen section

 Section "InputClass"

        Identifier "libinput touchscreen catchall"

        MatchIsTouchscreen "on"

        MatchDevicePath "/dev/input/event*"

        Driver "libinput"

 EndSection

 添加一行  Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1 

 結果為

 Section "InputClass"

        Identifier "libinput touchscreen catchall"

        Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1

        MatchIsTouchscreen "on"

        MatchDevicePath "/dev/input/event*"

        Driver "libinput"

EndSection

然後重啟生效

 這樣的修改也是同樣修改為翻轉90度,如果需要修改為其他角度,請參考libinput的演算法

  https://wayland.freedesktop.org/libinput/doc/latest/absolute_axes.html

3. Linux都有哪些版本 那隻企鵝是什麼版本 最好能給安裝教程

Linux的發行版本很多,如果你以前沒接觸過,可以先裝一個Unbuntu試試,到Unbuntu網站上下載一個ISO鏡像,然後刻盤,或者向他們要一張光碟,他們負責郵寄的。Unbuntu中文地址:http://www.ubuntu.com.cn/

或者裝一個紅旗也行,是咱們中國做的發行版,中文處理方面相對要好一些,目前是6.0,也是下載一張系統盤就行了。紅旗官網:http://www.redflag-linux.com/xiazai/index.php

至於具體的安裝,在這里搜一下會找到很多,大概說一下:主要是在硬碟上留一塊空白空間,6、7G以上,用光碟啟動按步驟操作就行了。難點是Linux的分區,在安裝之前可以再查一下,做到心中有數。VirtualBox下載地址:http://www.virtualbox.org/wiki/Downloads

另外你也可以下載一個虛擬機軟體,在虛擬機上安裝Linux,這樣成功的把握大一些。推薦使用VirtualBox。

企鵝是Linux的標志,來歷看這里:
企鵝是Linux的象徵,linux的標志為什麼是企鵝?
企鵝是南極洲的標志性動物,根據國際公約,南極洲為全人類共同所有,不屬於當今世界上的任何國家,當今任何國家無權將南極洲納入其版圖。Linux選擇企鵝圖案作標志 ,其含意也是表明:開源的Linux,為全人類共同所有,任何公司無權將其私有。
在1996年, Linux操作系統開始被廣泛應用, Linus開始考慮給這個操作系統創作一個logo. 他想起曾經在澳大利亞被一種鳥咬過,咬他的不是別鳥,就是企鵝.選 定了企鵝做為logo之後,linus當時的要求是:"不要太胖, 而且應該是坐著的姿態 ?想像一下裝滿豆子的袋子." 設計師Ewing使用GIMP創建了企鵝的基本形態, 允許用戶自由添加修改這只企鵝的造型, 也衍生了現在諸多企鵝造型.
至於企鵝的名字: Tux. 因為企鵝總是黑白一身,當時外界認為這個名字來自燕尾服(Txuedo)一詞.事實上Tux是「Torvalds' UniX」的縮寫.現在, 企鵝Tux已經是Linux的標志,或者可以說品牌. 笑容可掬的Tux吸引了世界眾多愛好自由的電腦愛好者.

4. Linux伺服器搭建實戰詳解的目錄

第1章 Linux系統概述 1
1.1 Linux的發展 1
1.2 Linux常見版本 2
1.2.1 Red Hat Linux 2
1.2.2 Debian Linux 2
1.2.3 Ubuntu Linux 3
1.3 Linux操作系統 3
1.3.1 Linux操作系統結構 3
1.3.2 Linux操作系統特點 5
1.3.3 Linux操作系統的應用領域 6
1.3.4 Red Hat Enterprise Linux 5 7
1.4 Red Hat Enterprise Linux 5的兩個版本 8
1.5 安裝和管理Red Hat Enterprise Linux 8
1.5.1 安裝前的准備 8
1.5.2 與其他操作系統並存的問題 10
1.5.3 Red Hat Enterprise Linux的安裝階段 11
1.6 Linux操作系統的引導與登錄 19
1.6.1 多系統引導管理器——GRUB及LILO 19
1.6.2 Linux的啟動過程 20
1.6.3 Linux的關閉與重新引導 20
1.6.4 Linux系統的登錄和退出 20
1.7 GNOME和KDE桌面管理器 22
1.7.1 GNOME桌面環境 23
1.7.2 KDE桌面環境 31
1.7.3 定製自己的桌面 42
第2章 FTP伺服器 45
2.1 FTP服務簡介 45
2.1.1 FTP工作原理 45
2.1.2 匿名用戶訪問的產生 46
2.1.3 FTP服務的連接模式 46
2.1.4 幾種流行的FTP伺服器軟體 48
2.2 安裝vsFTPd服務 49
2.2.1 安裝vsFTPd軟體 49
2.2.2 FTP服務的啟動與關閉 50
2.3 vsFTPd的相關配置 52
2.3.1 配置匿名用戶登錄環境 53
2.3.2 監聽地址與控制埠 53
2.3.3 FTP模式與數據埠 54
2.3.4 ASCII模式 55
2.3.5 超時選項 55
2.3.6 負載控制 55
2.3.7 用戶設置 56
2.3.8 用戶登錄控制 57
2.3.9 目錄訪問控制 57
2.3.10 文件操作控制 58
2.3.11 新增文件許可權設置 58
2.3.12 日誌設置 58
2.4 安裝與配置PureFTPD伺服器的 59
2.4.1 安裝Apache服務 59
2.4.2 安裝MySQL資料庫 61
2.4.3 安裝PureFTPD 62
2.4.4 生成PureFTPD服務管理腳本 64
2.4.5 配置匿名用戶登錄環境 64
2.4.6 安裝Zend Optimizer 65
2.4.7 WebPureFTP的安裝與配置 66
2.4.8 生成MySQL資料庫 67
2.4.9 生成pure-ftpd資料庫配置文件 68
2.4.10 使用webpureftp管理虛擬用戶 68
2.5 FTP伺服器的訪問 69
2.5.1 Linux環境下訪問FTP伺服器 69
2.5.2 Windows環境下訪問FTP伺服器 70
第3章 電子郵件伺服器 71
3.1 電子郵件服務概述 71
3.1.1 電子郵件服務簡介 71
3.1.2 郵件專有名詞解釋 72
3.1.3 POP3與SMTP協議 73
3.2 Postfix郵件伺服器 74
3.2.1 安裝Postfix郵件伺服器 74
3.2.2 Postfix配置文件 76
3.2.3 Postfix基本配置 77
3.2.4 虛擬別名域 80
3.2.5 用戶別名 80
3.2.6 SMTP認證 81
3.2.7 啟動和停止Postfix服務 83
3.2.8 配置與訪問電子郵件客戶端 84
3.3 POP和IMAP郵件服務 87
3.3.1 dovecot服務 87
3.3.2 CyrusImapd服務 88
3.4 Web支持電子郵件 92
3.4.1 Squirrelmail的安裝與配置 92
3.4.2 登錄Squirrelmail 94
第4章 Web伺服器 95
4.1 Web概述 95
4.1.1 Web服務簡介 95
4.1.2 HTTP協議簡介 96
4.1.3 Web伺服器軟體 99
4.2 Apache概述 99
4.2.1 Apache的誕生 100
4.2.2 安裝Apache服務 101
4.3 啟動與停止Apache服務 103
4.4 Apache服務的基本配置方法 106
4.4.1 httpd.conf配置文件 106
4.4.2 Apache服務主配置文件的構成 107
4.5 Apache伺服器控制存取的方式 112
4.5.1 Options選項 113
4.5.2 瀏覽許可權的設置 113
4.6 Apache服務的高級配置 116
4.6.1 虛擬目錄簡介 116
4.6.2 配置與管理虛擬主機 117
4.6.3 用戶認證和授權 119
4.6.4 配置SSI 123
4.6.5 MIME類型簡介 124
4.7 創建並配置動態網站 124
4.7.1 創建並配置JSP動態網站 124
4.7.2 創建並配置CGI動態網站 131
第5章 DHCP伺服器 133
5.1 DHCP服務概述 133
5.1.1 DHCP服務的實現原理 133
5.1.2 IP地址租約和更新 134
5.1.3 DHCP伺服器分配的IP地址類型 135
5.2 安裝DHCP服務 137
5.2.1 做好DHCP伺服器安裝前的准備 137
5.2.2 安裝DHCP服務的方法 138
5.2.3 啟動及停止DHCP服務 141
5.3 配置DHCP服務 142
5.3.1 DHCP配置文件及格式 142
5.3.2 配置IP作用域 145
5.3.3 配置客戶機的IP 選項 146
5.3.4 設置租約期限 147
5.3.5 保留特定的IP地址 147
5.3.6 多網段的IP地址的分配 148
5.3.7 DHCP伺服器配置實例 149
5.4 配置DHCP客戶機 150
5.4.1 以Linux操作系統作為客戶端配置 150
5.4.2 以Windows操作系統作為客戶端配置 152
第6章 DNS伺服器 155
6.1 DNS服務概述 155
6.1.1 DNS服務簡介 155
6.1.2 DNS提供的服務 156
6.1.3 DNS查詢原理和規劃 156
6.1.4 DNS域名解析 158
6.2 DNS服務的安裝 158
6.2.1 安裝DNS服務 159
6.2.2 安裝Chroot軟體包 159
6.2.3 DNS服務的啟動與停止 160
6.3 配置主要名稱伺服器 161
6.3.1 主配置文件 161
6.3.2 設置根區域和主區域 162
6.3.3 設置反向解析區域 165
6.3.4 根伺服器信息文件 166
6.3.5 區域文件 166
6.3.6 反向解析區域文件 169
6.3.7 功能實現 170
6.3.8 測試DNS伺服器 170
6.4 配置輔助DNS伺服器 174
6.5 配置緩存Cache-only伺服器 175
6.6 DNS客戶端的配置 176
6.6.1 在Linux下配置DNS客戶端 176
6.6.2 在Windows下配置DNS客戶端 177
第7章 代理伺服器 179
7.1 代理伺服器概述 179
7.1.1 代理伺服器的工作流程 179
7.1.2 代理伺服器的作用及相關應用 180
7.2 安裝Squid Server 181
7.2.1 Squid簡介 181
7.2.2 Squid Server的安裝 182
7.3 Squid Server的基本配置 184
7.3.1 設置監聽的IP和埠 184
7.3.2 設置緩存大小 184
7.3.3 訪問控制設置 186
7.3.4 指定Squid可以使用內存的理想值 188
7.3.5 其他參數設置 188
7.3.6 設置錯誤提示為中文 189
7.3.7 初始化Squid Server 189
7.4 啟動與停止代理伺服器 192
7.4.1 設置Squid服務隨系統的啟動而自動啟動 193
7.4.2 重新載入配置文件 195
7.5 Squid Server高級配置 195
7.5.1 實現透明代理 195
7.5.2 Squid安全設置 197
7.5.3 Squid外部程序支持選項 199
7.6 Squid日誌管理 199
7.6.1 日誌選項 199
7.6.2 Squid代理伺服器日誌系統的構成 199
7.6.3 日誌及流量分析軟體——Webalizer 200
7.6.4 Webalizer軟體的應用 204
7.7 不同環境下的代理客戶端的配置 205
7.7.1 Linux系統下Firefox代理設置 205
7.7.2 Windows系統下IE代理配置 207
第8章 Samba伺服器 209
8.1 Samba服務概述 209
8.1.1 Samba服務簡介 209
8.1.2 Samba服務的安裝 209
8.1.3 Samba服務的圖形化配置方法 212
8.1.4 啟動、停止和重啟Samba服務 216
8.2 Samba服務的配置文件 216
8.2.1 Samba服務的主要配置文件 217
8.2.2 Samba服務的密碼文件 217
8.2.3 Samba服務的日誌文件 218
8.3 smb.conf文件詳解 218
8.3.1 smb.conf文件結構 219
8.3.2 smb.conf文件的語法和變數 220
8.3.3 smb.conf文件詳解 220
8.3.4 smb.conf文件中的段 223
8.3.5 Samba服務具體參數設置 223
8.4 Samba服務功能實現 225
8.4.1 指定Samba所要加入的工作組 225
8.4.2 注釋說明伺服器 226
8.4.3 限制可訪問伺服器IP地址的范圍 226
8.4.4 列印機設置 227
8.4.5 設置guest賬號匿名登錄 228
8.4.6 設置日誌文件名、存放路徑及大小 228
8.4.7 伺服器安全設置 229
8.4.8 具體的共享設置 232
8.5 共享的資源訪問 234
8.5.1 不同客戶端主機的資源訪問 234
8.5.2 本機Windows分區和Linux分區的資源互訪 235
第9章 NFS伺服器 237
9.1 NFS服務簡介 237
9.1.1 使用NFS的優勢 237
9.1.2 NFS服務的組件 238
9.2 RPC簡介 238
9.3 安裝並配置NFS服務 239
9.3.1 安裝NFS服務 239
9.3.2 配置NFS服務 240
9.3.3 NFS文件的存取許可權 242
9.4 啟動與停止NFS服務 243
9.5 在客戶端掛載NFS文件系統 244
9.5.1 查看NFS伺服器信息 244
9.5.2 載入NFS伺服器共享目錄 245
9.5.3 自動掛接NFS文件系統 246
第10章 LDAP目錄服務 247
10.1 目錄服務概述 247
10.1.1 X.500簡介 247
10.1.2 初識LDAP 248
10.1.3 X.500與LDAP 251
10.1.4 流行的目錄服務產品 252
10.2 深入認識LDAP 254
10.2.1 LDAP的幾種基本模型 254
10.2.2 如何規劃目錄樹 256
10.2.3 LDAP的應用領域 257
10.3 安裝LDAP 257
10.3.1 安裝Berkeley DB 257
10.3.2 安裝OpenLDAP 260
10.4 配置OpenLDAP 261
10.4.1 OpenLDAP的基本配置 261
10.4.2 啟動OpenLDAP伺服器 262
10.5 為OpenLDAP建立初始化數據 263
10.6 LDAP圖形界面管理工具簡介 264
10.6.1 主要的LDAP圖形界面管理工具 264
10.6.2 安裝phpLDAPadmin 266
10.7 配置phpLDAPadmin 268
10.7.1 生成phpLDAPadmin主配置文件 268
10.7.2 phpLDAPadmin的基本配置 268
10.8 使用OpenLDAPadmin管理目錄樹 271
10.8.1 進入phpLDAPadmin 271
10.8.2 創建組織單元 272
10.8.3 創建用戶組 274
10.8.4 創建用戶賬號 276
10.9 實現LDAP服務的身份驗證 277
10.9.1 實現Linux系統用戶驗證 277
10.9.2 實現FTP用戶驗證 279
10.9.3 實現Web用戶驗證 280
第11章 SSH伺服器 281
11.1 SSH服務概述 281
11.1.1 SSH服務簡介 281
11.1.2 公鑰加密體系結構 282
11.2 SSH服務的安裝 283
11.3 配置SSH伺服器 283
11.4 SSH服務的啟動和停止 286
11.4.1 啟動SSH服務 286
11.4.2 重啟SSH服務 287
11.4.3 自動啟動SSH服務 287
11.4.4 停止SSH服務 288
11.5 使用SSH客戶端 288
11.5.1 SSH客戶端在Windows平台下的使用 288
11.5.2 SSH客戶端在Linux平台下的使用 289
第12章 MySQL資料庫的配置 293
12.1 MySQL概述 293
12.1.1 MySQL簡介 293
12.1.2 MySQL的應用領域 294
12.2 安裝MySQL 295
12.2.1 安裝前的准備 295
12.2.2 MySQL的具體安裝過程 295
12.3 啟動與停止MySQLD服務 298
12.4 配置及使用MySQL服務 298
12.4.1 修改MySQL管理員的口令 299
12.4.2 MySQL資料庫的創建和使用 299
12.4.3 MySQL數據表的創建和使用 300
12.4.4 索引的創建和刪除 304
12.4.5 用戶的創建和刪除 305
12.4.6 用戶許可權的設置 306
12.5 圖形化配置MySQL 309
12.5.1 安裝phpMyAdmin 309
12.5.2 配置phpMyAdmin虛擬目錄 310
12.5.3 使用phpMyAdmin 311
第13章 使用Webmin配置各種服務 313
13.1 Webmin的概述 313
13.1.1 Webmin簡介 313
13.1.2 Webmin特性 313
13.1.3 Webmin主要功能 314
13.2 安裝和配置Webmin 317
13.2.1 Perl語言解釋器的安裝 318
13.2.2 Net-SSLeay perl和OpenSSL的安裝 318
13.2.3 安裝與訪問Webmin 319
13.2.4 設置Webmin為中文界面 321
13.2.5 停止和啟動Webmin服務 322
13.3 用Webmin配置服務 323
13.3.1 Samba服務的配置 323
13.3.2 NFS服務的配置 327
13.3.3 DNS服務的配置 328
13.3.4 Web服務的配置 331
13.3.5 網路防火牆與NAT服務配置 336
13.3.6 代理服務配置 342
13.3.7 SSH服務的配置 349
第14章 Linux命令行 351
14.1 Linux Shell概述 351
14.1.1 Linux Shell簡介 351
14.1.2 系統默認Shell——Bash Shell 351
14.1.3 設置使用其他Shell 352
14.2 啟動Shell 353
14.2.1 終端啟動Shell 353
14.2.2 直接啟用Shell 354
14.2.3 直接啟動命令行窗口 354
14.3 Shell指令詳解 355
14.3.1 目錄及文件管理指令 355
14.3.2 信息顯示指令 360
14.3.3 網路基本配置指令 363
14.3.4 關機和注銷指令 366
14.4 配置Shell環境 367
14.4.1 Shell環境變數 367
14.4.2 環境變數設置 369
14.4.3 Shell環境配置文件 370
14.5 使用vim文本編輯器 371
14.5.1 vim編輯器簡介 371
14.5.2 常用vim指令 372
14.5.3 vim的定製 376
第15章 Linux操作系統中的 網路連通性測試 377
15.1 網路線路的連通性測試 377
15.1.1 雙絞線的線芯 377
15.1.2 測試直通雙絞線 378
15.1.3 測試交叉雙絞線 378
15.1.4 利用ping命令測試網路連通性 379
15.2 路由跟蹤 382
15.2.1 traceroute命令 382
15.2.2 traceroute顯示代碼 383
15.2.3 traceroute命令選項的應用 384
15.3 Linux圖形界面下測試網路 386
15.3.1 進入「Network Tools」窗口 386
15.3.2 網路設備查詢 387
15.3.3 網路連通性測試 387
15.3.4 網路信息統計 388
15.3.5 網路路由跟蹤 388
15.3.6 網路埠掃描 389
15.3.7 網路查閱 389
15.3.8 查詢登錄用戶的信息 390
15.3.9 域名查詢工具 390
第16章 Linux網路管理 391
16.1 靜態IP地址管理工具 391
16.1.1 IP地址 391
16.1.2 子網掩碼 392
16.1.3 TCP/IP配置文件 392
16.1.4 在圖形界面下配置乙太網絡 392
16.1.5 在命令模式下配置乙太網 397
16.2 動態IP地址分配工具 400
16.2.1 獲取動態IP地址 400
16.2.2 安裝DHCP服務 401
16.2.3 DHCP服務的啟動與停止 404
16.2.4 DHCP服務的配置 405
16.3 網路地址表管理工具 407
16.3.1 顯示ARP緩存 407
16.3.2 管理ARP緩存 408
第17章 軟體基礎管理 409
17.1 Kickstart簡介 409
17.1.1 安裝Kickstart 409
17.1.2 Debian/Ubuntu的自動化安裝 419
17.2 Linux操作系統中的軟體包管理 420
17.2.1 RPM簡介 420
17.2.2 RPM軟體包管理系統的應用 423
17.3 Debian的軟體包管理系統 434
17.3.1 DPKG簡介 434
17.3.2 DPKG軟體包管理系統應用 435
第18章 軟體包高級管理 441
18.1 APT——高級軟體包管理 441
18.1.1 APT概述 441
18.1.2 應用APT軟體包管理系統 442
18.2 YUM——智能化的RPM軟體包管理 452
18.2.1 YUM概述 452
18.2.2 應用YUM軟體包管理系統 453
18.3 Linux內核的升級 462
18.3.1 獲取內核源代碼 463
18.3.2 配置內核 464
18.3.3 編譯內核 467
18.3.4 安裝內核 469
第19章 用戶和進程管理 471
19.1 用戶管理 471
19.1.1 用戶賬號文件 471
19.1.2 用戶群組文件 474
19.1.3 命令行方式的用戶管理 476
19.1.4 圖形界面方式的用戶管理 486
19.1.5 命令行方式的群組管理 486
19.2 進程管理 490
19.2.1 進程及作業 490
19.2.2 進程式控制制 490
19.2.3 作業控制 494
第20章 管理Linux文件系統及磁碟 497
20.1 管理Linux文件系統 497
20.1.1 Linux文件系統結構 497
20.1.2 常見的文件系統 497
20.1.3 文件類型 498
20.1.4 文件壓縮與歸檔 498
20.1.5 文件鏈接 503
20.1.6 安裝文件系統 505
20.2 磁碟管理 507
20.2.1 硬碟簡介 507
20.2.2 管理磁碟分區 509
20.2.3 使用磁碟管理命令 529
20.2.4 磁碟配額管理問題 539
第21章 Linux系統安全 549
21.1 系統安全基礎設置 549
21.1.1 BIOS安全 549
21.1.2 賬號安全 549
21.2 系統安全高級設置 552
21.2.1 重要文件 552
21.2.2 防止攻擊系統 553
21.2.3 開啟安全服務 555
21.2.4 審計日誌 556
21.2.5 文件和目錄許可 558

5. 紅旗版本Linux(asianux server 4)安裝unixODBC-2.2.12,在make時出現CAbout錯誤,求解答,謝謝,重賞!

你缺了開發頭文件,安裝QT的開發包就可以了
望採納

閱讀全文

與linux246相關的資料

熱點內容
編程怎麼做3d生存游戲 瀏覽:955
word使用教程下載 瀏覽:295
電腦文件平鋪圖片默認大小 瀏覽:115
文件查看設置信息失敗 瀏覽:668
編程如何編出烏鴉喝水的課文 瀏覽:20
國家反詐app報案助手怎麼使用 瀏覽:439
秘密文件丟失多少天 瀏覽:237
js中csstext 瀏覽:382
目標文件名過長復制 瀏覽:892
樂動力計步器老版本 瀏覽:933
壓縮文件鏈接怎麼編輯 瀏覽:808
如何鎖定PDF文件里的圖章 瀏覽:89
資料庫超時是什麼 瀏覽:649
文件怎麼改整列內容 瀏覽:764
360壓縮文件發郵件空白 瀏覽:813
上哪裡查自己大數據 瀏覽:907
編程語言怎麼學車 瀏覽:189
編程該怎麼學才能先找工作 瀏覽:524
文件刻制光碟多少錢 瀏覽:861
校園網的網路組成結構 瀏覽:862

友情鏈接