Linux學習筆記

一、基礎學習:
1、創建管理員root用戶:
  • $ sudo passwd
  • 根據提示,輸入當前用戶的密碼。
  • 輸入超級用戶的密碼。
  • 再次輸入超級用戶的密碼。

備註:剛剛安裝的ubuntu虛擬機,只有普通用戶,需要創建root管理員用戶。

2、打開終端:
  • 快捷按鍵 shift + alt + t
  • search -> terminal

3、查看內存大小:
  • $ free -h

4、查看硬盤分區大小
  • $ df -h

5、釋放內存
  • $sync同步數據
  • $ echo 1/2/3 > /proc/sys/vm/drop_caches

6、換更新源
  • $ /#vi /etc/apt/sources.list
  • :%s/us.archive/cn.archive/g (命令模式下,將美國源替換爲中國源)
  • $ apt-get update (讀取軟件列表到本地)
  • $ apt-get upgrade(升級軟件)

7、切換用戶:
  • $ su 用戶名

8、搜索指令
  • $ find 路徑 -name 名字 (搜索文件)
  • $ find 路徑 -type d -name 名字 (搜索文件夾)
  • $ grep -r 名字 路徑 (搜索字符串)

9、安裝vmware tools
  • VMware workstation 的虛擬機找到安裝vmware tools
  • 在虛擬機裏面找到VMware tools包,解壓到用戶目錄
  • shell 界面運行 $ ./vmware-install.pl

10、查看工具所在路徑
  • $ which gcc

11、創建空文件
  • $ touch 文件名

12、查看行數、字數、字符數
  • $ wc 文件名

13、查看文件頭、文件尾
  • $ head 文件
  • $ tail 文件

14、分頁顯示文件內容
  • $ more 文件名
  • $ less 文件名
  • ctrl + f 前進
  • ctrl + b 後退

15、 樹形結構顯示文件
  • tree 路徑

16、查看文件詳細信息
  • $ stat 文件名(比ls更詳細)

17、顯示在線的用戶
  • $ who

18、顯示當前操作用戶
  • $ whoami

19、顯示主機名
  • $ hostname

20、顯示系統名字
  • $ uname

21、顯示進程消耗資源情況
  • $ top

22、顯示進程狀態
  • $ ps
  • $ ps -aux

23、查看目錄所佔大小
  • $ du -h 路徑

24、查看網絡情況
  • $ ifconfig

24、查看指令幫助信息
  • $ man

25、清屏
  • $ clear

26、對命令重命名
  • $alias ii = "ls -l"
  • $unalias ii (解除)

27、程序後臺運行
  • $ ./程序名 &

28、殺死進程
  • $ kill 進程pid號 (ps / top查看進程號)

29、打包壓縮解壓
  • $tar -cvf /home/abc.tar /home/abc              只打包,不壓縮
  • $tar -zcvf /home/abc.tar.gz /home/abc        打包,並用gzip壓縮
  • $tar -jcvf /home/abc.tar.bz2 /home/abc      打包,並用bzip2壓縮

  • $tar -xvf abc.tar  -C 路徑  解壓
  • $tar -zxvf abc.tar.gz -C 路徑   gzip解壓
  • $tar -jxvf abc.tar.bz2    bzip2解壓

30、關機、重啓
  • $ reboot (重啓)
  • $ shutdown -r now (關機並重啓)
  • $ shutdown -h now (關機)
  • $ halt -p (關機)

31、安裝、卸載軟件
  • $ apt-get install 軟件名 (在線)
  • $ apt-get remove 軟件名 (在線)

  • $ dpkg -i tree.deb         離線安裝軟件
  • $ dpkg -r tree               卸載軟件

  • 備註:若離線包爲.rpm格式(redhat公司),則需要對其進行轉化
  • $ alien abc.rpm

32、linux發行版比較
  • ubuntu:
    • 優點:漂亮用戶界面,完善包管理,軟件源管理,對硬件兼容性好。
    • 缺點:所需資源大(內存,顯卡)
  • sentos:
    • 優點:簡約:繼承redhat,去除與服務器無關功能,指令人性化,大量的文檔支持。
    • 確定:體積大了一些
  • debian:
    • 優點:穩定(比Ubuntu穩定),需要資源小
    • 缺點:文檔少
備註:
  • redhalt:商業版代表
  • debian:開源社區代表


33、查看ubuntu系統是幾位的
  • $ uname -a
  • $ arch
  • getconf LONG_BIT


34、網卡地址配置
Ubuntu的網絡配置文件是:/etc/network/interfaces
  • 、以DHCP 方式配置網卡
   auto eth0
   iface eth0 inet dhcp
用sudo /etc/init.d/networking restart命令使網絡設置生效

  • 、爲網卡配置靜態IP地址
sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1

也可以在後面加上dns地址
dns-nameservers 202.96.134.133 210.21.196.6

sudo /etc/init.d/networking restart

35、查看usb設備信息:
  • # mount -t usbfs usbfs /proc/bus/usb/
#cat /proc/bus/usb/devices

  • #lsusb

36、環境變量
環境變量的設置
一般來說,配置交叉編譯工具鏈的時候需要指定編譯工具的路徑,此時就需要設置環境變量。例如我的mips-linux-gcc編譯器在“/opt /au1200_rm/build_tools/bin”目錄下,build_tools就是我的編譯工具,
三種方法來設置環境變量:
1、直接用export命令:
#export PATH=/opt/au1200_rm/build_tools/bin:$PATH 
作用域:命令 “PATH=$PATH:路徑”可以把這個路徑加入環境變量,但是退出這個命令行就失效了。

2、修改profile文件:
#vi /etc/profile
在裏面加入:
export PATH="$PATH:/opt/au1200_rm/build_tools/bin"
讓環境變量立即生效需要執行如下命令:
#source /etc/profile
作用域:永久生效,且/etc/profile”對系統裏所有用戶都有效,

3. 修改.bashrc文件:
# vi /root/.bashrc
文件頭裏面加入:
#export PATH=/opt/au1200_rm/build_tools/bin:$PATH 
#source .bashrc
後兩種方法一般需要重新註銷系統才能生效,最後可以通過echo命令測試一下:
# echo $PATH
看看輸出裏面是不是已經有了/my_new_path這個路徑了。
作用域:用戶主目錄下 的“.bash_profile”只對這個用戶有效。

查看是否設置成功:
1、#export
2、#printenv
3、#cat $PATH
4、#env

問題:怎麼知道編譯時用的是/usr/local/mipsel-4.1.2-nopic/bin,還是其他的???

PATH=/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/apache-maven/bin:/usr/local/arm-gcc/bin:/usr/local/mipseltools/bin:/usr/local/mips-4.3-mxu/bin:/usr/local/arm-marvell-linux-gnueabi/bin:/usr/local/mipsel-4.1.2-nopic/bin

#which mipsel-linux-gcc

導出工具鏈
#export PATH=/opt/au1200_rm/build_tools/bin:$PATH (寶橙有效)

查看編譯器位置:
#which mipsel-linux-gcc

37、導出動態庫
#export LD_LIBARARY_PATH="xxxx動態庫路徑:"



創建用戶?
38、#adduser -r xxx -r 參數建立系統用戶
#passwd xxx 添加用戶密碼

#userdel -r xxx 刪除用戶



39、指定用戶發送消息
  •  #w或who命令查看當前登錄的用戶信息
  • write 登陸用戶名 ttyname(例如write root pts/1)
  • ENTER
  • 輸入信息(所要發送的消息,中文可能會亂碼)。
  • CTRL+D結束

40、tftp傳輸
tftp簡單文件傳輸協議,是tcp/ip協議族中一個用來在客戶機與服務器之間進行簡單文件的傳輸協議。
端口號:69
基於:udp文件傳輸協議
netstat -a | grep tftp查看tftp是否啓動
疑問:自己安裝的服務器爲啥沒有顯示?

PC-服務器(ubuntu)之間通訊:
  • 打開pc端tftp32軟件
  • #tftp 192.168.1.2 //pc端地址
tftp>binary //文件類型
tftp>get <download file> //獲取pc文件
tftp>put <upload file> //發送文件到pc
tftp>q //退出


PC-機器之間通訊:
#tftp -g -r 文件名 主機ip

舉例:
#tftp -r libusbdemo -g 192.168.1.123
#chmod u+x libusbdemo
#./busbdemo

是什麼,幹什麼(有什麼用),怎麼做
vi是編輯文件的工具,能夠實現對文件增刪改查。它有三種模式,分別是。。。
41、vi編輯器:編輯文檔的工具,有三種操作模式
  • 命令模式:默認模式
    • G(shift+g) 跳轉文件尾
    • 行數G 跳轉到具體某行
    • 2yy 複製光標開始以後的兩行
    • 2dd 刪除光標開始以後的兩行
    • dw delete word刪除光標所在的單詞
    • x 刪除光標所在字符
    • r字符 把光標所在的字符替換爲字符
    • yw 複製單詞
    • J 把下一行內容追加到本行尾,以一個空格隔開
    • D 在行中刪除光標後面的內容
    • ~ 光標所在的字符大小寫切換
    • u 恢復上一個動作,可以一直恢復
    • p 粘貼到光標所在的後一行
    • P 粘貼到光標所在的上一行

  • 底行模式:按冒號:進入底行模式
    • :set nu 顯示行號:
    • :set nonu 不顯示行號
    • :/字符串 向下搜索字符串;再按 n搜索下一個,N搜索上一個
    • :?字符串 向上搜索字符串;再按 n搜索上一個,N搜索下一個
    • :s/舊字符/新字符 替換掉本行中的第一個舊字符
    • s/舊字符/新字符/g 替換掉本行中全部舊字符
    • :%s/舊字符/新字符/g 替換掉整個文件全部的舊字符
    • :w 保存
    • :q 退出不保存
    • :wq 保存後退出
    • :q! 強制退出不保存
    • :w 名字 另存爲名字
    • :tabnew 文件名 新建文件
    • :vsplit 文件名 打開多個窗口
    • :ctl + w 切換窗口
  • 插入模式:按i,a,A,o,O進入插入模式
    • i 插入到光標前
    • I 插入到行首
    • a 插入到光標後面
    • A 插入到行尾
    • o 在光標下面新建一行
    • O 光標前面新建一行
    • s 刪除光標所在的字符,並進入插入模式,等效於:i再右箭頭再backspace或者a再backspace
    • S或者cc 刪除光標所在行,並進入插入模式,等效於:dd再O
    • cw 刪除光標所在的單詞,並進入插入模式
    • R replace覆蓋本行內容



42、查看文件屬性
  • #file xxx

43、APT(Advanced Packaging Tool)高級軟件工具
  • sudo apt-get update                               更新軟件
  • sudo apt-get upgrade         更新系統
  • sudo apt-get install tree                         安裝tree
  • sudo apt-get remove tree                       卸載tree

44、搜索服務器的安裝包
  • #apt-cache search libudev

45、編譯第三方庫
安裝libusb庫
  • #autogen.sh //生成configure文件
  • #./configure --prefix=$(pwd)/bin --host=mipsel-linux CC=mipsel-linux-gcc
  • #make
  • #make install

安裝zlib庫 
export CC=arm-linux-gcc(確保環境變量)
1、./configure --shared --prefix=/home/user/release/usr/  (配置安裝路徑)
2make 
正常情況
arm-linux-gcc -O3 -DUSE_MMAP   -c -o example.o example.c
arm-linux-gcc -O3 -DUSE_MMAP   -c -o adler32.o adler32.c
arm-linux-gcc -O3 -DUSE_MMAP   -c -o compress.o compress.c
 
3、make install   
 
生成:/home/user/release/usr/{lib,include} 
lib(libz.so,libz.so.1,libz.so.1.2.2)
include(zconf.h, zlib.h)
 


46、查看文件內容
  • 字符形式:
    • #od -c 文件名
  • 二進制形式:
    • #od -x 文件名

待解決問題:
爲用戶添加samba賬戶?
沒網絡情況如何跟主機通訊?


學習在於積累,肖申克的救贖,男主角用了20年才越獄成功
KUI 2017/04/13






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章