日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux九阳神功

發(fā)布時間:2023/12/20 linux 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux九阳神功 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Linux九陽神功


宗旨:技術的學習是有限的,分享的精神是無限的。

一、基礎命令:

1.用戶管理類命令

(1)useradd libang 添加用戶 —— 在home目錄下生成同級的目錄

(2)userdel -r libang 刪除用戶

(3)passwd libang 修改密碼

(4)su -root 切換到root用戶,并將root用戶的環(huán)境變量同時帶入

(5)groupadd group 添加名為group的用戶組

(6)groupdel group 刪除名為group的用戶組

注意:

??? adduser創(chuàng)建帳號的同時,要求用戶輸入密碼

??? useradd需要在創(chuàng)建帳號后,自行創(chuàng)建密碼passwd

?

2.文件與目錄類命令

(1)ls 查看目錄 (ls [選項] 目錄或文件)

??? ls /home 顯示/home目錄下的文件與目錄(不包含隱藏的)

??? ls -a /home 顯示/home目錄下的文件與目錄(包含隱藏的)

??? ls -l /home 顯示/home目錄下的文件與目錄的詳細信息

(2)cd 改變工作目錄(cd 目錄名)

??? cd /home/ 進入/home目錄

??? cd ..退回到上一級目錄

??? cd ~ 進入用戶主目錄

??? cd - 代表前一個工作目錄

??? ctrl+h 顯示當前目錄下的隱藏文件

(3)cp 復制文件/目錄 (cp [選項] 源文件或目錄目標文件和目錄)

??? cp /home/test /tmp 將/home目錄下的test文件拷貝到/tmp目錄下

??? cp -r /home/dir1 /tmp 將/home目錄下的dir1目錄拷貝到/tmp目錄下

(4)mv 移動或改名(mv [選項] 源文件或目錄 目標文件或目錄)

??? mv /home/test /home/test1 將/home目錄下的test文件更名為test1

??? mv /home/dir1 /tmp 將/home目錄下的dir1目錄移動到/tmp目錄下

(5)rm 刪除文件/目錄 (rm [選項] 文件或目錄)

??? rm /home/test 刪除/home目錄下的test文件

??? rm -r /home/dir 刪除目錄下的dir目錄

(6)chmod 改變文件權限(chmod +x test.txt)

??? chmod 777 test.txt 可讀可寫可執(zhí)行

(7)mkdir 創(chuàng)建目錄(mkdir [選項] 目錄名)

??? mkdir /home/workdir 在/home目錄下創(chuàng)建workdir目錄

??? mkdir -p /home/dir1/dir2/dir3 ?依次創(chuàng)建

(8)du 查看目錄 (du 目錄名)

??? du /tmp

(9)pwd 查看當前路徑

(10)echo 顯示字符串變量等

?

3.壓縮打包類命令

*.gz——gzip命令壓縮的文件

*.bz2——bzip2命令壓縮的文件

*.tar——tar命令打包的文件

*.tar.gz——tar打包后,再經(jīng)過gzip壓縮的文件

*.tar.bz2——tar命令打包后,再經(jīng)過bzip2壓縮的文件 (tar xjvf *.tar.bz2)

(1)gzip 壓縮解壓(gzip [選項] 文件名)

??? gzip /root/anaconda-ks.cfg 壓縮文件

??? gzip -d /root/anaconda-ks.cfg.gz 解壓文件

(2)bzip2 壓縮解壓(bzip2 [選項] 文件名)

??? bzip2 /root/anaconda-ks.cfg 壓縮文件

??? bzip2 -d /root/anaconda-ks.cfg.bz2 解壓文件

? ? tar xjvf?name.bz2

(3)tar 打包壓縮(tar [選項] 目錄或者文件)

??? tar cvf tmp.tar /tmp 將/tmp目錄打包為一個文件

??? tar xvf tmp.tar 將打包文件解開

??? tar cvzf tmp.tar.gz /tmp 將tmp目錄打包為一個文件

(4)tar xzvf tmp.tar.gz 將打包文件解開

注意:1 gzip不能壓縮目錄,只能壓縮文件

???? 2 壓縮和打包,解壓縮和解包是不同的過程

???? 3 gzip壓縮或者解壓后,原文件不再存在;bzip2提供了-k參數(shù),可以保留原文件

???? 4 windows對文件壓縮,其實是先打包在壓縮的過程

?

4.磁盤管理類命令

(1)mount 加載光盤(mount [選項] 類型 設備名 掛載目錄)

??? mount /dev/csrom /mnt

??? mount -t iso9660 /dev/cdrom /mnt/cdrom

??? 類型:

?????? windows95/98的FAT32系統(tǒng)?? vfat

?????? winNT/2000??? ntfs

?????? CD-ROM??????? iso9660??????

(2)umount 卸載光盤(umount 掛在目錄)

??? umount /mnt (請在執(zhí)行umount前,保證用戶已經(jīng)推出了mnt目錄)

(3)df 查看磁盤總?cè)萘?#xff0c;已用容量(df [選項])

??? df -hl

??? du 查看文件已用容量

??? du -h ————針對目錄

(4)touch 創(chuàng)建新文件

??? touch newfile 創(chuàng)建一個名為newfile的空白文件

(5)ln 文件鏈接(ln [選項] 文件名 鏈接名)

??? ln oldfile hlink 為oldfile文件創(chuàng)建一個應鏈接hlink

??? ln -s oldfile slink 為oldfile文件創(chuàng)建一個軟鏈接slink

??? 硬鏈接和軟鏈接的區(qū)別:

(6)fdisk 查看硬盤分區(qū)情況

??? fdisk -l ————擁有root權限

?

5.查找類命令

(1)find 查找文件/目錄 (find 查找路徑 -name文件名)

??? find /root -name install.log 在root目錄下尋找名為install.log文件

(2)grep 查找字符(grep "字符串" 路徑 [選項])

??? grep "hello" ./ -rn 在當前路徑下尋找包含字符串"hello"的文件

?

6.進程管理類命令

(1)ps 查看進程(ps [選項])

??? ps aux

(2)kill 殺死進程(kill [選項] pid)

??? vim hello.c

??? ps aux

??? kill pid (hello.c的進程號)

(3)free 查看內(nèi)存

??? free

(4)top CPU占有率(top [選項])

??? top 動態(tài)顯示進程

(5)pstree 以樹形式打印進程

(6)tree 以樹形式打印當前目錄

(7)jobs 查看后臺進程和它的作業(yè)號

??? fg %1??1為作業(yè)號,調(diào)到 前臺運行

??? ctrl+z 正在執(zhí)行的進程放在后臺,并停止

??? bg %1??1為作業(yè)號,把后臺停止的作業(yè)改成 后臺運行

??? 多個命令的同時執(zhí)行時,只要將它們用分號隔開即可。

?

7.雜項命令大聚合

(1)代碼風格

??? indent [options] [input-files]

??? indent [options] [single-input-file] [-ooutput-file]

??? indent -kr -bl -bli0 test.c

??? -kr表示K&R風格

??? -i8表示縮進8個空格的長度

??? -l80表示一行最多80個字符

??? 沒有指定-nut選項,則每8個縮進空格會自動用一個Tab代替

(2)| 管道操作 (命令1 | 命令2)

??? rpm -qa|grep tar 查詢系統(tǒng)中安裝的所有軟件包,并從中找出帶有字符串"tar"的

(3)man?? info?--help查看幫助 (man 命令名)

??? man find 查看find命令的用法

4)shutdown關閉linux系統(tǒng) (shutdown [選項] 時間)?

??? shutdown -h 18:00

??? 立即關機:shutdown now?? init 0?? halt

??? 重啟:init6?? reboot?? shutdown -r

(5)date+%Y/%m/%d 顯示年月日

???? date +%H:%M 顯示小時和分鐘 (/和:可以用其他符號代替)

???? cal [[month] year]

(6)將一般用戶改為sudo用戶

??? sudo vim /etc/group

??? 找到類似這樣的一行: sudo:x:27:icawu,sir

??? 在第4列后面加入一般賬戶的名字即可,“,”后不要空格

??? 或者是/etc/sudoers root ALL=(ALL) ALL 在起下面添加xxxALL=(ALL) ALL(這里的xxx是你的用戶名)

(7)od[-t TYPE] 檔案

??? -t :后面可以接各種類型 (TYPE)癿輸出,例如:

??? a :利用默認的字符輸出;

??? c :使用ASCII 字符輸出

??? d[size] :利用十進制(decimal)輸出數(shù)據(jù),每個整數(shù)占用size bytes ;

??? f[size] :利用浮點數(shù)(floating)輸出數(shù)據(jù),每個數(shù)占用size bytes ;

??? o[size] :利用八進制(octal)輸出數(shù)據(jù),每個整數(shù)占用size bytes ;

??? [size] :利用十六進制(hexadecimal)輸出數(shù)據(jù),每個整數(shù)占用 size

??? 例如: hello文件的內(nèi)容 3210o

??? od -tx1 -tc hello? //可以有多個選項,注意1的效果(每1個字節(jié)隔開)

??? 0000000?33? 32? 31?30? 6f? 0a

???????? ? ?3??2?? 1?? 0??o? \n

(8)內(nèi)核相關

??? uname -arsmpi

??? -a :所有系統(tǒng)相關癿信息,包括底下的數(shù)據(jù)都會被列出來;

??? -s :系統(tǒng)核心名稱

??? -r :核心的版本

??? -m :本系統(tǒng)癿硬件名稱,例如 i686 戒 x86_64 等;

??? -p :CPU的類型,與-m 類似,只是顯示的是 CPU的類型!

??? -i :硬件的平臺 (ix86)

??? 應用:cd /usr/src/'uanme -r'/include/linux/fs.h

??? 此句在里ubuntu13.04中不可,linux-headers-3.8.0-19

??? lsmod?查看已加載內(nèi)容

??? lshw??當前硬件信息

??? xrandr 查看當前分辨率? (xrandr -s 7(第幾行)

(9)cat顯示文本文件內(nèi)容 (cat /etc/issue)

???? more 分頁顯示文本文件內(nèi)容? ——只能向下翻頁

???? less 分頁顯示文本文件內(nèi)容? ——可以上下翻頁

???? head 顯示文件首部內(nèi)容?? (head -5 /etc/passwd)

???? tail 顯示文件尾部內(nèi)容

??? cat /etc/passwd | more/less/head -5/tail -5

(10)which 查看可執(zhí)行文件的位置

??? which which

????? whereis 查看文件位置(全匹配查找)

??? whereis which

????? locate 配合數(shù)據(jù)庫查看文件位置 (局部匹配查找)

??? locate ls

(11)信息查看

??? dmesg 顯示系統(tǒng)的啟動信息 (保存在/etc/sysconfig)

??? uptime 關于系統(tǒng)相關的時間信息

??? who 查看當前系統(tǒng)用戶 (whoami 只查看當前用戶)

??? last 系統(tǒng)用戶登錄信息 (/var/log名為wtmp文件里)

??? hostname 域名

??? bc 計算器

(12)ubuntu專題:

? <1> apt命令用法: (在ubuntu下可用,redhat不可用)

??? apt-get update? 升級源

??? apt-get install 安裝新軟件包

??? apt-get remove 卸載已安裝的軟件包

??? apt-get clean? 清理系統(tǒng),不影響安裝的軟件的使用

??? apt-get upgrade 更新任何已安裝的軟件包

??? apt-get dist-upgrade 系統(tǒng)升級到新版本

??? apt-get search 查找軟件包

??? dpkg-config-list-all (dpkg -l)列出所有軟件包

?

??? sudo apt-get install nautinuls-open-terminal(當前位置代開終端) ---重啟生效

??? sudo apt-get autoremove indicator-appmenu? (關閉全局應用菜單)

?

? <2> ubuntu下的幾個重要文件:

??? (1) 軟件源:/etc/apt/sources.list

??? (2) $PATH:/etc/environment

??? (3) 環(huán)境變量:/etc/profile

??? (4) grub:/boot/grub/grub.cfg

??? (5) 用戶bash:/home/.bashrc(注意以.開頭的文件屬于隱藏文件,用ctrl+h可以顯示)

?

? <3> system setting沒有語言支持: sudo apt-get install language-selector-gnome

? <4> 虛擬機中VMwareTools的安裝

??? (1)、下載vmwaretools工具包:http://download.csdn.net/download/jiaoxiaogu/6287937

??? (2)、解壓并安裝:

??? - $ tar xzf VMwareTools-9.6.0-1294478.tar.gz

??? - $ cd vmware-tools-distrib

??? - $ sudo ./vmware-install.pl

??? 一直按回車鍵

??? (3)、重啟虛擬機

?<5> GNU二進程工具 (對ARM很重要,務必要了解)---redhat/ubuntu

??? addr2line:把程序地址轉(zhuǎn)換為文件名和行號ar:建立、修改、提取歸檔文件

??? as:主要用來編譯GNU C編譯器gcc輸出的匯編文件,產(chǎn)生的目標文件由鏈接器ld連接

??? c++filt:連接器使用它來過濾C++ 和Java 符號,防止重載函數(shù)沖突

??? ld:GNU鏈接器

??? nm:列出目標文件中的符號

?????? R--只讀符號? N--調(diào)試符號? D--已經(jīng)初始化的變量? T--text段的符號

?????? U--未定義的符號? S--未初始化的符號

??? objcopy:文件格式轉(zhuǎn)換?

??? objdump:顯示一個或者更多目標文件的信息,主要用來反編譯?

??? ranlib:產(chǎn)生歸檔文件索引,并將其保存到這個歸檔文件中。在索引中列出了歸檔文件各成員所定義的可重分配目標文件

??? readelf:顯示elf格式可執(zhí)行文件的信息? readelf -a a.out

??? size:列出目標文件每一段的大小以及總體的大小。默認情況下,對于每個目標文件或者一個歸檔文件中的每個模塊只產(chǎn)生一行輸出? size a.out

??? strings:打印某個文件的可打印字符串。默認情況下,只打印目標文件初始化和可加載段中的可打印字符;對于其它類型的文件它打印整個文件的可打印字符,這個程序?qū)τ诹私夥俏谋疚募膬?nèi)容很有幫助? strings -f/a hello.o

??? strip:丟棄目標文件中的全部或者特定符號,減小文件體積? strip -s a.out

?

<6>windows和ubuntu文件共享之samba服務器配置

??? 關閉LINUX防火墻命令: #ufw disable? 然后就在windows下ping一下linux的IP,如果能ping通,就可以繼續(xù)下面的內(nèi)容,如果ping不通就再找找原因

??? 注:ubuntu12.04已經(jīng)安裝了最新版本的samba服務器,無需安裝。如果使用12.04以前的版本,最好是按下邊的方法升級一下samba,12.04版本無需下列操作

??? 卸載samba,smbclient,samba-common

??? $sudo apt-get remove samba-common

??? $sudo apt-get remove smbclient

??? $sudo apt-get remove samba

?

??? 安裝Ubuntusamba服務器:

??? sudo apt-get install samba

??? sudo apt-get install smbfs

?

??? 安裝Ubuntusamba圖形管理界面

??? #sudo apt-get install system-config-samba

?

??? 啟動samba圖形管理界面

??? #sudo system-config-samba

??? 選擇要共享的目錄 設置讀寫權限 設置訪問權限添加samba用戶

??? 配置完成后要重啟samba

??? #sudo /etc/init.d/smbd restart

(13)Elf格式文件

??? GNU編譯器生成的目標文件缺省為elf格式

??? elf文件由若干段(section)組成;目標代碼中包含如下段:

??? .text:??? 包含程序的指令代碼、固定的數(shù)據(jù),如常量、字符串;

??? .data:??? 包含有初始化值的變量、數(shù)組等;

??? .bss: 包含未初始化的變量、數(shù)組等;

??? 連接器的任務就是將多個目標文件的.text、.data和.bss等段連接在一起

?

?

二、vim編輯器的使用與配置 參考:http://blog.csdn.net/wqx521/article/details/37913877

??? 1.常用編輯器:

?????? (1) vi/vim 最常用的字符界面文本編輯器

?????? (2) emacs?專為編輯程序源碼文件而編寫的文本編輯器

?????? (3) nano??字符界面底端

?????? (4) gedit?運行在Linux圖形界面中

?????????? gedit之亂碼問題

?????????? ?<1> 運行dconf-editor

?????????? ?<2> 展開/org/gnome/gedit/preferences/encodings

?????????? ?<3> auto-detected的Value中加入'GB2312' ,加在UTF-8前面;

?????? (5) MC

?? 2.開發(fā)環(huán)境構成:

?????? (1) 編輯器:vi/vim

?????? (2) 編譯器:gcc

?????? (3) 調(diào)試器:gdb

?????? (4) 函數(shù)庫:glibc??? /usr/lib

?????? (5) 系統(tǒng)頭文件:glibc_header?? /usr/include

?

三、Linux網(wǎng)絡配置 (vmware workstation虛擬機)

??? 1.VMware提供了三種網(wǎng)絡工作模式:

?????? (1).bridged(橋接模式)—— 提供做個IP地址

?????? (2).NAT(網(wǎng)絡地址轉(zhuǎn)換模式)——只能提供一個IP地址

?????? (3).host-only(主機模式)——主機沒有連接任何外部網(wǎng)絡

??? 2.注意事項:

?????? (1).選擇網(wǎng)絡模式前,停止虛擬機中系統(tǒng)的運行

?????? (2).配置完網(wǎng)絡后,重新啟動虛擬機中的系統(tǒng)

???

??? 3.相關命令

?????? (1) ifconfig:查看各網(wǎng)卡詳細信息(如IP),以太網(wǎng)卡名一般為"eth0"

?????? (2) /etc/init.d/networking restart 重啟各網(wǎng)卡

???

??? 4.Linux常見網(wǎng)絡接口

?????? -eth0:系統(tǒng)中的第一塊物理網(wǎng)卡

?????? -lo:虛擬的回環(huán)網(wǎng)卡

??? ??? -virbr0:網(wǎng)絡網(wǎng)橋

?

四、遠程登錄

??? 1.登錄前提

?????? (1) 從windows能夠ping通linux(在ctrl+R--cmd--pingIP地址(在linux里面用ifconfig看IP地址))

?????? (2) 關閉Linux防火墻——ufw disable (ubuntu)

??? ?

??? 2.putty-SSH軟件,設置相關信息.軟件下載地址:http://download.csdn.net/detail/a1314521531/7877905

??? 3.VNC

?????? (1) 安裝vnc服務器

?????? (2) 啟動vnc服務:vncserver &

??? <或者3.在windows端運行vnc.exe>

??? VNC常見問題:windows不能ping通linux? 未關閉防火墻

?

五、Windows與Linux文件共享(redhat)

??? 1.前提條件

?????? (1) 從windows能夠ping通linux(在ctrl+R--cmd--pingIP地址(在linux里面用ifconfig看IP地址))

?????? (2) 關閉Linux防火墻——/etc/init.d/iptables stop (redhat)?ufw disable (ubuntu)

??? 2.WinSCP軟件(windows中)

?????? 自己摸索一下這個軟件的使用吧,就是把文件拖進拖出

?

??? Vmware Tools不推薦使用

?

??? Windows與Linux文件共享(ubuntu)

??? 1.前提條件

?????? (1) 從windows能夠ping通linux(在windows+R--cmd--pingIP地址(在linux里面用ifconfig看IP地址))

?????? (2) 物理機和虛擬機建立通信——sudo apt-get install ssh??? ps-e |grep ssh??? /etc/init.d/ssh start--啟動ssh服務器

??? 2.WinSCP軟件(windows中)

?????? 自己摸索一下這個軟件的使用吧,就是把文件拖進拖出

?

六、Linux密碼故障解決

破解root密碼步驟:

??? (1) 在系統(tǒng)啟動時進入grub選項菜單

??? (2) 在grub選項菜單按e進入編輯模式

??? (3) 編輯kernel那行,添加/init 1

??? (4) 按b重啟

??? (5) 進入系統(tǒng)后,將root密碼設置為空

??? vim /etc/passwd

?????? root:x:0...中的x刪除

?????? root::0...然后保存退出

??? (6) 重啟,登錄linux后修改root密碼

??? passwd root

?

七、宿主機上安裝TFTP服務器 (ubuntu)

??? 配置tftp 服務的步驟:

??? <1>. 若/etc/xinetd.d/下存在 tftp,執(zhí)行下列操作

?????? 1)關閉 xinetd 服務

?????? $sudo service xinetd stop

?????? 2)刪除 tftp 文件

?????? $sudo rm /etc/xinetd.d/tftp

?????? 3) 啟動xinetd 服務

?????? $sudo service xinetd start

??? <2>. 安裝 tftp 客戶端和服務器端

?????? $sudo apt-get install tftp-hpa

?????? $sudo apt-get install tftpd-hpa

??? <3>. 修改 tftpd-hpa 配置文件

?????? $vim /etc/default/tftpd-hpa

?????? 修改 “/var/lib/tftpboot ” 為 “/tftpboot”

?????? 修改"--secure" 為 "--secure -c" 允許上傳新文件

??? <4>. 若/tftpboot 不存在,創(chuàng)建該目錄

?????? $sudo mkdir /tftpboot

?????? $sudo chmod 777 /tftpboot

??? <5>. 重啟 tftpd-hpa 服務

?????? $sudo service tftpd-hpa restart

?????? 若服務重啟成功,能查看到相應的進程

?????? $ps -ef |grep in.tftpd

?????? 至此tftp 服務已經(jīng)安裝完成了,下面可以對其進行一下測試。 (假設在當前目錄下有一個測

?????? 試文件 test.txt)

?????? $tftp 127.0.0.1

??? ??? tftp>put test.txt

?????? Sent 1018 bytes in 0.0 seconds

?????? tftp> get test.txt

?????? Received 1018 bytes in 0.1 seconds

?????? tftp> quit

?????? $

??? 通過get 命令,可以把當前目錄下的 test.txt 文件,通過tftp 上傳到它的服務文件目錄。這

??? 時,在/tftpboot 下面會出現(xiàn) test.txt 文件。通過 put 命令,可以從/tftpboot 下, 下載 test.tx t

??? 文件。這樣就驗證了 tftp 服務配置的正確性。當文件上傳與下載結束后,可以通過 quit 命

??? 令退出。

???

???

??? 安裝、配置nfs服務:

??? <1> 安裝 nfs

?????? Ubuntu 上默認是沒有安裝 nfs 服務器的,因此我們首先安裝 nfs 服務器端:

?????? $sudo apt-get install nfs-kernel-server

??? 2、配置/etc/exports

?????? nfs 允許掛載的目錄及權限在文件/etc/exports 中進行了定義。

?????? 例如,我們要將根目錄下的 rootfs 目錄共享出來,那么我們需要在/etc/exports 文件末尾添

?????? 加如下一行:/rootfs *(rw,sync,no_root_squash)

?????? 其中:/rootfs 是要共享的目錄,*代表允許所有的網(wǎng)絡段訪問,rw 是可讀寫權限,sync 是資

?????? 料同步寫入內(nèi)存和硬盤,no_root_squash 是 nfs 客戶端分享目錄使用者的權限,如果客戶端

?????? 使用的是 root 用戶,那么對于該共享目錄而言,該客戶端就具有 root 權限。

?????? 其它nfs 常用的參數(shù)有:

?????? ro 只讀訪問

?????? rw 讀寫訪問 sync 所有數(shù)據(jù)在請求時寫入共享

?????? async nfs 在寫入數(shù)據(jù)前可以響應請求

?????? secure nfs 通過 1024 以下的安全 TCP/IP 端口發(fā)送

?????? insecure nfs 通過 1024 以上的端口發(fā)送

?????? wdelay 如果多個用戶要寫入 nfs 目錄,則歸組寫入(默認)

?????? no_wdelay 如果多個用戶要寫入 nfs 目錄,則立即寫入,當使用 async 時,無需此設置。

?????? hide 在nfs 共享目錄中不共享其子目錄

?????? no_hide 共享 nfs 目錄的子目錄

?????? subtree_check 如果共享/usr/bin 之類的子目錄時,強制 nfs 檢查父目錄的權限(默認)

?????? no_subtree_check 和上面相對,不檢查父目錄權限

?????? all_squash 共享文件的 UID 和 GID 映射匿名用戶anonymous ,適合公用目錄。

?????? no_all_squash 保留共享文件的 UID 和GID(默認)

?????? root_squash root 用戶的所有請求映射成如 anonymous 用戶一樣的權限(默認)

?????? no_root_squas root 用戶具有根目錄的完全管理訪問權限

?????? anonuid=xxx 指定 nfs 服務器/etc/passwd文件中匿名用戶的 UID

?????? anongid=xxx 指定 nfs 服務器/etc/passwd文件中匿名用戶的 GID

??? 3、重啟服務

?????? $sudo /etc/init.d/portmap restart

?????? $sudo /etc/init.d/nfs-kernel-serverrestart

??? 4、測試 nfs

?????? 此時可以運行以下命令來顯示一下共享出來的目錄:

?????? $showmount -e

?????? 或者可以使用以下命令把它掛載在本地磁盤上,例如將/rootfs 掛載到/mnt 下:

?????? $ sudo mount -t nfs localhost:/rootfs/mnt

?????? 可以運行 df 命令查看是否掛載成功。查看后可以使用以下命令卸載:

?????? $ sudo umount /mnt

?

八、Linux編譯器GCC (gcc -v 查看gcc版本)

??? ——其執(zhí)行效率與一般編譯器相比平均效率要高20%~30%

??? 1.基本用法 (gcc [options] filenames)

?????? gcc *.c??./a.out

??? 2.GCC編譯流程

??? gcc通過后綴來區(qū)別輸入文件,常見類型:

?????? .c為后綴的文件:c語言源代碼文件

?????? .a為后綴的文件:是由目標文件構成的庫文件

?????? .C,.cc為后綴的文件:是c++源代碼文件

?????? .h為后綴的文件:頭文件

?????? .o為后綴的文件:是編譯后的目標文件

?????? .s為后綴的文件:是匯編語言源代碼文件

?????? .m為后綴的文件:Objective-C原始程序

?????? .so為后綴的文件:編譯后的動態(tài)庫文件

?

?????? 源程序, 預處理,編譯,匯編,連接,可執(zhí)行

?????? 預處理階段: 條件編譯,頭文件包含,宏替換的處理

?????? 預處理 gcc -E test.i test.c?? // gcc-E test.c -o test.i 輸入為源代碼輸出為源代碼(文本文件)(不作語法檢查)

?????? 編譯gcc -S test.c -o test.s???? //輸入為預處理源代碼,輸出為匯編源代碼(intel的匯編指令)(文本文件)(做語法檢查,需函數(shù)的原型聲明)

?????? 匯編gcc -c test.c -o test.o???? #輸入為匯編源碼,輸出的二進制代碼不能被執(zhí)行(不含庫函數(shù)的二進制文件)

?????? .so 的庫文件

?????? 連接gcc test.o -o test?? (和庫文件進行連接)

?

?

??? 3.gcc編譯選項

?????? -o output_option:確定可執(zhí)行文件的名稱

?????? -O 對程序進行優(yōu)化

?????????? gcc optimize.c -o optimize ? ? ? ? ? ./optimize

?????????? gcc -O optimize.c -o optimize ? ? ?./optimize

?????? -c 不鏈接,生成.o為后綴的中間文件

?????? -g 長生調(diào)試工具所需要的符號信息

?????? -Wall 生成所有警告

?????? -w 不生成任何警告

?????? -DMACRO 定義MACRO宏,等效于在程序中使用#define MACRO

?

九、Linux調(diào)試器GDB

GUN的調(diào)試程序gdb,用來調(diào)試c和 c++ 程序的調(diào)試器

設置所有能影響程序運行的參數(shù)

指定條件下停止運行

?

gdb調(diào)試的對象是可執(zhí)行文件而不是程序的源代碼文件

需在執(zhí)行gcc指令編譯程序時,加上-g,才能調(diào)試

gdb使得機器碼和源代碼相關聯(lián)

??? gcc -g -o debugme debugme.c

??? gdb debugme

??? 斷點break?? 行號/函數(shù)/文件名:行號(函數(shù)名)

??? break(b)?25

??? break main

??? info break:查看斷點y表示生效n表示失效

??? disable+斷點號?? 斷點失效

??? enable + 斷點號

??? run(r) 啟動程序

??? print i??查看變量的值

??? step(s) 執(zhí)行一行停到下一行 ;會進入子程序內(nèi)部;跳到子程序中

??? next??執(zhí)行一行停到下一行 ;把子函數(shù)當成單步執(zhí)行

??? quit? 退出調(diào)試

??? continue 跳到下一個斷點處

??? finish 結束子程序的運行

??? Enter: 進行上一步的操作

?

??? gdb -d 目錄名???? 指出源碼所在位置

??? print arry[0]@5?? 查看連續(xù)的存儲單元的值

??? p/x arry[0]@5?? 以十六進制顯示

??? print &i

??? print *arry

??? break 37 if i==15? :條件斷點, 當i==15時才停下來

??? watch 設置監(jiān)視點(監(jiān)視表達式的變換)(變量)

??? break 制定了特定的位置(監(jiān)視某位置)

??? watch j :j的變量變換就會停下來

??? continue

??? rwatch 設置讀監(jiān)視點

??? set variable i=100 運行時人工改變變量的值

??? return 返回值

??? where 和backtrace???? 顯示程序運行位置和函數(shù)調(diào)運棧

??? up , down :遍歷函數(shù)調(diào)運棧

??? up 上升一個函數(shù)調(diào)運棧

??? down

??? print?main::i

??? list 列出當前運行行附近的行

??? whatis i??:i是什么類型

??? whatis main

??? ptype :明細顯示變量和函數(shù)的數(shù)據(jù)類型

??? search 搜索字符串

??? revarse search

??? shell pwd????????? 執(zhí)行shell命令

??? info file????? 顯示調(diào)試文件的信息

??? info func??????? 顯示函數(shù)名

??? info local 局部變量的信息

??? info prog??顯示調(diào)試程序的執(zhí)行狀態(tài)

??? set args調(diào)試加參數(shù):set args 參數(shù)1 參數(shù)2

?

十 segement fault

1.段錯誤產(chǎn)生原因:數(shù)組訪問越界 訪問空指針 棧溢出 修改只讀內(nèi)存

2.通過ulinit命令打開/關閉core dump功能

??? 打開:ulimit-c unlimited

??? 關閉:ulimit-c 0

??? ulimit -c 1000 ---指定大小

3.core文件分析

??? gdb 程序名 core文件名

4.什么時候不產(chǎn)生core文件

??? (a)進程是設置-用戶-ID,而且當前用戶并非程序文件的所有者;

??? (b)進程是設置-組-ID,而且當前用戶并非該程序文件的組所有者;

??? (c)用戶沒有寫當前工作目錄的許可權;

??? (d)文件太大。core文件的許可權(假定該文件在此之前并不存在)通常是用戶讀/寫,組讀和其他讀。

??? ?

5.解決方法

??? (1) 利用gdb逐步查找段錯誤

??? (2) 分析Core文件

??? (3) 段錯誤時啟動調(diào)試

??? (4) 利用backtrace和objdump進行分析 (objdump -d a.out)?

?

?

總結

以上是生活随笔為你收集整理的Linux九阳神功的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。