(linux了. sh)
linux中who命令顯示的pts/0和(:0)(:0.0)是什么意思?
都來源于內(nèi)核中task優(yōu)先級的取值,計算方式不同。
內(nèi)核內(nèi)部變量(p->prio)的取值,在<linux/sched.h>定義
1)MAX_RT_PRIO為100
2)RT tasks為0到99
3)非RT task取值100到139
TOP命令顯示非RT線程時,PR字段的取值是把task的prio減去100,所以看到的值是0~39
PS命令顯示的優(yōu)先級,根據(jù)顯示選項、進程的調(diào)度策略與狀態(tài),采用以下幾種計算方法之一:
- "priority":過去是-20..20, 當前是-100..39
- "intpri"和 "opri",過去是39..29,當前是 -40..99
- "pri_foo" -- match up w/ nice values of sleeping processes, (-120..19)
- "pri_bar" -- makes RT pri show as negative (-99..40)
- "pri_baz" -- the kernel's ->prio value, as of Linux 2.6.8 (1..140)
以上是傳統(tǒng)的UNIX取值
- "pri" -- 過去是20..60,當前是 (0..139)
- "pri_api" -- match up w/ RT API (-40..99)
以上是非傳統(tǒng)的UNIX取值
=============
詳細的實現(xiàn),可參見軟件包procps-ng的源碼。
怎么創(chuàng)建.sh文件(linux)?
創(chuàng)建方法如下:
1、touch hello.sh
2、vim hello.sh 鍵入i 插入#!/bin/sh echo hello world; 鍵入: esc : wq
3、chmod 700 hello.sh 4.、執(zhí)行./hello.sh
linux下time.h和sys/time.h的區(qū)別?
time.h 是ISO C99 標準日期時間頭文件。sys/time.h 是Linux 系統(tǒng)的日期時間頭文件。
sys/time.h 通常會包含include time.h 編寫的代碼如果是平臺無關(guān)的,則需要在代碼里include time.h. 但這樣的話,使用time_t等數(shù)據(jù)結(jié)構(gòu)的話可能需要自己轉(zhuǎn)化一下通常如果代碼可以是平臺相關(guān)的,則只需要include sys/time.h
如何查看軟件安裝目錄linux?
1. which
which命令查找出相關(guān)命令是否已經(jīng)在搜索路徑中,例子如下:
$which gcc //顯示出GNC的C編譯器安裝在哪個目錄
返回結(jié)果為:
/usr/bin/gcc
注意:如果which沒有找到要找的命令,可以試試whereis,該命令搜索更大的范圍的系統(tǒng)目錄。有些系統(tǒng)上的which命令不顯示用戶沒有執(zhí)行權(quán)限的文件。例如
$which ipppd
/usr/bin/which :no ipppd in (/bin: /usr/bin: /sbin:/usr/sbin)
$whereis ipppd
ipppd: /usr/sbin/ipppd
$ls -l /usr/sbin/ipppd
-rwx------ 1 root root 124924 Feb 3 2000 /usr/sbin/ipppd
2. locate
locate命令用于查找文件,它比find命令的搜索速度快,它需要一個數(shù)據(jù)庫,這個數(shù)據(jù)庫由每天的例行工作(crontab)程序來建立。當我們建立好這個數(shù)據(jù)庫后,就可以方便地來搜尋所需文件了。
即先運行:updatedb(無論在那個目錄中均可,可以放在crontab中 )后在 /var/lib/slocate/ 下生成 slocate.db 數(shù)據(jù)庫即可快速查找。在命令提示符下直接執(zhí)行#updatedb 命令即可。
$locate signal.h
/usr/include/asm/signal.h
/usr/include/linux/signal.h
/usr/include/signal.h
/usr/include/sys/signal.h
3. rpm
如果用戶知道自己要查找到軟件包的名字,可以直接使用下面的命令。這個命令只在支持rpm的linux版本上有效,如redhat,centos,fedora和suse等。
$ rpm -q python //查找檢查系統(tǒng)是否安裝了python</p> <p>python-1.5.2-27
或者:$rpm -qa| grep python //這是兩個命令的結(jié)合
rpm的其他用法:
rpm -qa (列出所有安裝了的包)
rpm -e package (刪除某個包)
rpm -qi package (查詢某個包)
rpm -qf command (根據(jù)程序查詢包的名字)
rpm -ql package (查詢某個包所有的安裝文件)
4.yum
yum的參數(shù)很多,以下是用于查找軟件包的命令。但是也只支持特定的發(fā)型版本,centos下最常用的命令
$yum list //列出所指定的軟件包,后可以加上你想查找的軟件包的名字
$yum list installed //列出所有已安裝的軟件包
$yum info installed //列出所有已安裝的軟件包信息
5.whereis
whereis是查找文件或者命令的所在目錄
#whereis pwd //查找pwd命令所在的目錄
6. find
這個命令可用來查找系統(tǒng)是否安裝了指定的軟件包,更重要的是也可以查找自己對軟件包名稱記憶不是很清晰的軟件包。而且我想是這是所有l(wèi)inux和unix都支持的。find的查找范圍很廣,功能強大,再搭配用正則表達,效果很好,不過建議盡量縮小搜索范圍,減少系統(tǒng)壓力,畢竟,當系統(tǒng)文件多了,搜索耗費時間和資源的。
$find / -name "python" //從根目錄開始查找包含”python“這個字符的文件和文件夾。
find的詳細使用有如下例子:
# find . -maxdepth 1 -name *.jpg -print -exec convert 在當前目錄下查找,查找深度為一,查找以.jpg結(jié)尾文件,并將其轉(zhuǎn)化
# find / -name *.rpm -exec chmod 755 '{}' ; 搜索以 '.rpm' 結(jié)尾的文件并定義其權(quán)限
# find / -name file1 從 '/' 開始進入根文件系統(tǒng)搜索文件和目錄
# find / -perm -u+s 羅列一個系統(tǒng)中所有使用了SUID控制的文件
# find / -user user1 搜索屬于用戶 'user1' 的文件和目錄
# find / -xdev -name *.rpm 搜索以 '.rpm' 結(jié)尾的文件,忽略光驅(qū)、捷盤等可移動設(shè)備
# find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 從一個目錄查找并復制所有以 '.txt' 結(jié)尾的文件到另一個目錄
# find /home/user1 -name *.bin 在目錄 '/ home/user1' 中搜索帶有'.bin' 結(jié)尾的文件
# find /usr/bin -type f -atime +100 搜索在過去100天內(nèi)未被使用過的執(zhí)行文件
# find /usr/bin -type f -mtime -10 搜索在10天內(nèi)被創(chuàng)建或者修改過的文件
# find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 結(jié)尾的文件并做成一個bzip包
Linux腳本sh和./的區(qū)別?
如果.不在PATH里面,要執(zhí)行當前目錄下的可執(zhí)行文件,使用全路徑:./executable-file如果要執(zhí)行一個sh腳本,不管那個腳本有沒有可執(zhí)行權(quán)限,都可以使用:sh 這時file是作為參數(shù)傳給sh的,如果file不在當前目錄下,也需要使用全路徑。全路徑有絕對路徑和相對路徑兩種。./和../開頭的都是相對路徑,分別表示”在當前目錄下”和”在父目錄下”。
總結(jié)
以上是生活随笔為你收集整理的(linux了. sh)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将一个文件夹的文件复制到另一个文件夹
- 下一篇: 深圳车牌没有备案可以过户吗(深圳车牌没备