Linux 系统相关知识记录
==========================Linux 系統相關=========================
問題:找不到動態鏈接庫
辦法:配置動態鏈接地址
export LD_LIBRARY_PATH=/home/drteam/wangjie/TestTmp/libdvbpsi-1.3.0/tmp/lib
export LD_LIBRARY_PATH=/home/drteam/wangjie/TestTmp/libdvbpsi-1.3.0/tmp/lib
問題 :securityCRT下的delete和home鍵需要設置,否則無效
解決辦法:session option->emulation->mapped key,下面有兩個復選框,需要勾下面兩個
?
問題:Linux下的一個命令,有輸出但是不能重定向? > log.txt
辦法:輸出信息是通過stderr輸出的,因此需要將標準錯誤輸出重定向到標準輸出
netctrl -h > a.log 2>&1
$$掛載nfs
mount -t nfs -o nolock 192.168.2.242:/home_mount/drteam/wangjie/ /mnt/hi
???
$$ 執行沒有權限Permission denie問題
??在確認屬性有權限時,可能原因是根本沒執行屬性x。
??
$$usb驅動程序CDC_NCM指什么?
?CDC:?Communication Device Class (CDC)USB的CDC類是USB通信設備類 (Communication Device Class)的簡稱
?This driver provides support for CDC NCM (Network Control Model Device USB Class Specification). The CDC NCM specification is???
?available from <http://www.usb.org/>.?????
$$ 運用debugfs來查看usb設備的pid和vid。
mount -t debugfs none /sys/kernel/debug
cat /sys/kernel/debug/usb/devices
**,shell的特殊變量
共7個特定變量(其實就是有他特殊含義的變量)。
???????? $#:傳遞到腳本的參數個數
???????? $*:以一個單字符串顯示所有腳本參數,可超過9個(就是一個參數列表字符串,無附加引號)
???????? $$:當前進程ID號
???????? $!:后臺運行的最后一個進程的ID號
???????? $@:與$*相同,但使用時加引號,在引號中返回每個參數(每個參數都有引號)
???????? $-:顯示shell當前使用的選項,與set命令功能相同
???????? $?:顯示腳本退出返回值,0表示正確
??
**,initrd和initramfs區別:
?1,initrd是ramdisk的塊設備,而且是單獨制作的文件系統,在系統啟動時必須指定要"initrd="和"root="。
??? initrd要配置CONFIG_BLK_DEV_INITRD選項 -- 支持initrd,必須先要配置CONFIG_BLK_DEV_RAM -- 支持ram disk
?
?2,initramfs中必須創建/init文件或者修改內核啟動最后代碼(init文件是軟連接,指向什么? init -> bin/busybox,否則內核啟動將會失敗)
?
**,溫故而知新:inittab
?id : runlevels : action : process
??id ?? :1~2個字符,配置行的唯一標識,在配置文件中不能重復。
??runlevels: Linux有7個運行級別,如下:
?????0:關機。
?????1:單用戶字符界面。
?????2:不具備網絡文件系統(NFS)功能的多用戶字符界面。
?????3:具有網絡功能的多用戶字符界面。
?????4: 保留不用。
?????5:具有網絡功能的圖形用戶界面。
?????6:重新啟動系統。
??action : init有如下幾種行為, init行為:
???respawn
????啟動并監視第4項指定的process,若process終止則重啟它
???wait
????執行第4項指定的process,并等待它執行完畢
???once
????執行第4項指定的process
???boot
????不論在哪個執行等級,系統啟動時都會運行第4項指定的process
???bootwait
????不論在哪個執行等級,系統啟動時都會運行第4項指定的process,且一直等它執行完備
???off
????關閉任何動作,相當于忽略該配置行
???ondemand
????進入ondemand執行等級時,執行第4項指定的process
???initdefault
????系統啟動后進入的執行等級,該行不需要指定process
???sysinit
????不論在哪個執行等級,系統會在執行boot 及bootwait之前執行第4項指定的process
???powerwait
????當系統的供電不足時執行第4項指定的 process,且一直等它執行完畢
???powerokwait
????當系統的供電恢復正常時執行第4項指定的process,且一直等它執行完畢
???powerfailnow
????當系統的供電嚴重不足時執行第4項指定的process
???ctrlaltdel
????當用戶按下【Ctrl+Alt+Del】時執行的操作
???kbrequest
????當用戶按下特殊的組合鍵時執行第4項指定的process,此組合鍵需在keymaps文件定義
????
?process: 所要執行的shell命令。任何合法的shell語法均適用于該字段。
?
**,console和getty以及etc/profile知識。
?etc/profile文件的作用:
??這個文件是每個用戶登錄時都會運行的環境變量設置,當用戶第一次登錄時,該文件被執行。
?getty打開tty終端,eg:
??getty -L ttyS000 115200 -n root -a -I "login in ttyS000" #打開終端并自動登錄且打印
??
?疑問:getty -L ttyS000 115200和getty -L ttyAMA0 115200以及getty -L console 115200都可以登錄串口終端,為何??
?console分內核啟動時只有write輸出功能的驅動,以及用戶態的標準tty終端特殊的驅動。
?ttyS000和ttyAMA0都可以登錄到串口終端,說明這個兩個tty設備驅動底層對應的write和read都是對應的同一個串口進行操作。
?附錄講的比較好的帖子:http://blog.csdn.net/skyflying2012/article/details/41078349
?
**,linux終端的各種信號:
?ctrl+c: 就是發送Terminal到當前的程序,比如你正在運行一個查找功能,文件正在查找中,Ctrl+C就會強制結束當前的這個進程。
?ctrl+d:發送一個exit信號,沒有那么強烈,類似ctrl+C的操作,比如你從管理員root退回到你的普通用戶就可以這么用。
?ctrl+z:是把當前的程序掛起,暫停執行這個程序,比如你正在mysql終端中,需要出來搞點其他的文件操作,又不想退出mysql終端(因為下次還得輸入用戶名密碼進入,挺麻煩),
???于是可以ctrl+z將mysql掛起,然后進行其他操作,然后輸入fg回車后就可以回來,當然可以掛起好多進程到后臺,然后fg 加編號就能把掛起的進程返回到前臺。
???當然,配合bg和fg命令進行前后臺切換會非常方便.
?ctrl+s: 終端暫停假死。?? crtl+q:恢復終端。
?
???ps:由于hisi平臺在/etc/profile中會啟動app,所以當在串口終端按下ctrl+d時,串口終端會退出,當然此時inittab中定義的respawn的動作會重新啟動該串口終端,進而啟動app,所以crtl+d
????可以達到重啟app的效果。
?
**,linux下/etc/passwd文件格式解析。
?LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL
?
?root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
?說明:現在的Unix/Linux系統中,口令不再直接保存在passwd文件中,通常將passwd文件中的口令字段使用一個“x”來代替,
? 將/etc /shadow作為真正的口令文件,用于保存包括個人口令在內的數據。當然shadow文件是不能被普通用戶讀取的,只有超級用戶才有權讀取。
?#,/etc/shadow文件解析:
?登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標志
?root:$1$0dJv11NZ$78q7zYZKbfLKNoQdRPERX/:15506:0:99999:7:::
?stb:$1$hYn82l9l$RjfvPDf2QHjx7je/6hlRH1:15506:0:99999:7:::
?
?#,/etc/gshadow是/etc/group的加密資訊文件,比如用戶組(Group)管理密碼就是存放在這個文件。/etc/gshadow和/etc/group是互補的兩個文件;對于大型服務器,
?針對很多用戶和組,定制一些關系結構比較復雜的權限模型,設置用戶組密碼是極有必要的。比如我們不想讓一些非用戶組成員永久擁有用戶組的權限和特性,
?這時我們可以通過密碼驗證的方式來讓某些用戶臨時擁有一些用戶組特性,這時就要用到用戶組密碼;
?/etc/gshadow 格式如下,每個用戶組獨占一行;
?groupname:password:admin,admin,...:member,member,...
?第一字段:用戶組
?第二字段:用戶組密碼,這個段可以是空的或!,如果是空的或有!,表示沒有密碼;
?第三字段:用戶組管理者,這個字段也可為空,如果有多個用戶組管理者,用,號分割;
?第四字段:組成員,如果有多個成員,用,號分割;
?
?
總結
以上是生活随笔為你收集整理的Linux 系统相关知识记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装libssl-dev
- 下一篇: API:低代码平台的秘诀