命令名稱:chmod
公司主營(yíng)業(yè)務(wù):網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出交城免費(fèi)做網(wǎng)站回饋大家。
命令英文原意:change the permissions mode of a file
有兩種角色可以執(zhí)行該命令,一種是 root 用戶,另一種就是文件的所有者。
語(yǔ)法:
大括號(hào)里的內(nèi)容表示只能選一個(gè),其中 u 表示該文件的所有者,g 表示所屬組,o 表示其他人,a 表示所有角色。
比如,給 abc.txt 文件的所屬組加一個(gè)寫的權(quán)限:
也可以同時(shí)做多個(gè)授權(quán),比如給文件所有者加上執(zhí)行權(quán)限,給其他人去掉寫權(quán)限:
還可以用數(shù)字表示權(quán)限。權(quán)限的數(shù)字表示:
如果一個(gè)文件的權(quán)限是 rw-r--r--,那么翻譯成數(shù)字就是 644,反過(guò)來(lái),如果要更改文件的權(quán)限,可以這樣寫:
這樣文件的權(quán)限就改成 rw-r----- 了。
還有一個(gè)選項(xiàng) -R 是遞歸修改權(quán)限,該選項(xiàng)的功能是更改某個(gè)目錄的權(quán)限的同時(shí)更改該目錄下所有的子目錄和文件的權(quán)限。
命令名稱: chown
英文原意:change owner
語(yǔ)法:chown 用戶名 文件
只有管理員賬戶可以更改文件的所屬用戶。
例如:
命令名稱:chgrp
英文原意:change group
語(yǔ)法:chgrp 組名 文件
例如:
命令名稱:umask
使用命令 umask -S 可以查看新建文件或目錄的默認(rèn)權(quán)限。
現(xiàn)在顯示的是新建目錄的默認(rèn)權(quán)限,該目錄的所有者的默認(rèn)權(quán)限是 rwx,所屬組的默認(rèn)權(quán)限是 rx,其他人的默認(rèn)權(quán)限是 rx。為什么說(shuō)這是新建目錄的默認(rèn)權(quán)限而不是新建文件的默認(rèn)權(quán)限,如果你查看新建文件的權(quán)限,會(huì)發(fā)現(xiàn)是 rw-r--r-- ,與新建目錄的權(quán)限 rwxr-xr-x 相比,每種角色的權(quán)限都少了 x。所以說(shuō),只要知道了新建目錄的默認(rèn)權(quán)限,再去掉 x 權(quán)限,就是新建文件的默認(rèn)權(quán)限。
如果直接執(zhí)行 umask 命令,會(huì)顯示一個(gè)數(shù)字。
這個(gè)數(shù)字叫做權(quán)限掩碼,用 777 減去其后三位 022 就得到了每種角色的權(quán)限,即 755。翻譯成字母就是 rwxr-xr-x 。
若想更改新建目錄或文件的默認(rèn)權(quán)限,只需執(zhí)行 umask 權(quán)限掩碼 即可。
例如,我想把新建目錄的默認(rèn)權(quán)限改成 rwxr-r-- ,翻譯成數(shù)字就是 744,再用 777 減去 744 就得到了權(quán)限掩碼 033。
雖然 Linux 系統(tǒng)的目錄或文件的默認(rèn)權(quán)限可以修改,但是 Linux 這樣分配權(quán)限是有一定道理的,最好不要輕易修改。
linux 命令行中cat命令可以直接打開(kāi)我們想要查看的文件內(nèi)容。比如part1.txt文件是一首詩(shī)詞,可以用此命令:[lichao@localhost test]$ cat part1.txt
擴(kuò)展資料:
linux 命令行中查看文件類型:
file是一個(gè)非常便捷的命令,用它可以探測(cè)文件的字符編碼。如下我們創(chuàng)建了兩個(gè)文件
[lichao@localhost test]$ ls -l
total 288
-rw-rw-r--. 1 lichao lichao? ? ? 4 Aug 24 15:31 abc.txt
-rw-rw-r--. 1 lichao lichao 285310 Aug 24 15:26 all.txt
通過(guò)file命令來(lái)查看下文件的字符集編碼:
[lichao@localhost test]$ file abc.txt?
abc.txt: ASCII text
[lichao@localhost test]$ file all.txt
all.txt: UTF-8 Unicode text, with CRLF, CR, LF line terminators
[lichao@localhost test]$
其中?abc.txt?是?ASCII?編碼,而 all.txt 是?UTF-8?編碼,這有助于我們?cè)诖蜷_(kāi)含有中文的文件時(shí),定位出現(xiàn)亂碼的原因。
-rw,其中-代表普通文件;r代表讀權(quán)限;w代表寫權(quán)限;
-r,其中-代表普通文件;r代表讀權(quán)限;
還有x代表可執(zhí)行權(quán)限,例如-rwx,代表可讀、可寫、可執(zhí)行。
RW-R--R--,第一部分RW-代表當(dāng)前用戶具有讀寫的權(quán)限。第二部分的R--代表當(dāng)前用戶所在的用戶組中其他成員只有讀得權(quán)限,最后一個(gè)R--表示額外的其他用戶只有讀得權(quán)限。
這組命令是linux中的常見(jiàn)命令。
Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個(gè)基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。
擴(kuò)展資料:
linux命令介紹:
1、[擁有者]:表示這個(gè)文件(或目錄)的“擁有者帳號(hào)”
2、[群組]:表示這個(gè)文件的所屬群組
3、[文件大小]:文件的容量大小,默認(rèn)單位為Bytes
4、[ 修改日期 ]:文件的創(chuàng)建日期或者是最近的修改日期
5、[ 文件名 ]:文件的文件名
6、[ r ]代表可讀(read)
7、[ w ]代表可寫(write)
8、[ x ]代表可執(zhí)行(execute)
參考資料:百度百科:linux
在Linux系統(tǒng)里面用到 cp命令復(fù)制不能顯示文件拷貝的進(jìn)度,也不能計(jì)算還有多長(zhǎng)時(shí)間文件可以 拷貝結(jié)束,現(xiàn)在寫一個(gè)程序可以顯示文件拷貝的進(jìn)度。
思路:當(dāng)前目錄下面有一個(gè)1G大小的bigfile文件
當(dāng)我在命令行下面輸入ls -lh bigfile,我會(huì)得到這個(gè)文件的詳細(xì)信息,當(dāng)然也可以看到文件的大小。
ls -lh bigfile
-rw-rw-r-- 1 nii nii 1000M 7月 13 19:41 bigfile
我們可以用popen函數(shù),把執(zhí)行之后的結(jié)果”-rw-rw-r– 1 nii nii 1000M 7月 13 19:41 bigfil”這串字符串接收下來(lái),我們可以提取出來(lái)表示文件大小的那段字符串,比如這個(gè)我們可以提取”1000”在用atoi函數(shù),把字符串轉(zhuǎn)換為int型數(shù)值1000(不了解popen函數(shù)和atoi函數(shù)的請(qǐng)自行學(xué)習(xí)),就可以獲得文件大小。
例如我的文件名字叫mycp.c,我執(zhí)行g(shù)cc -o mycp mycp.c生成一個(gè)mycp的可執(zhí)行文件。
接下來(lái)我在命令行上輸入./mycp bigfile destbigfile把當(dāng)前目錄下面的bigfile文件拷貝為destbigfile,這時(shí)我產(chǎn)生一個(gè)子進(jìn)程,子進(jìn)程負(fù)責(zé)調(diào)用系統(tǒng)的cp命令拷貝,父進(jìn)程每隔一秒鐘,去獲取destbigfile、bigfile 文件的大小,就可以知道拷貝的進(jìn)度,當(dāng)然也可以獲得拷貝的時(shí)間,就可以計(jì)算出來(lái)離拷貝結(jié)束還有多長(zhǎng)時(shí)間。
下面是代碼的實(shí)現(xiàn):
#include
#include
#include
#include
#include
#include
#include
/** 得到文件的詳細(xì)信息 */
int getFileMsg(char* pchCmd,char *pchMsg);
int main(int argc,char* argv[])
{
char szSrcFileMsg[150] = {0};
char szSrcFileSizeMsg[10] = {0};
int nSrcFileSize = 0;
char szSDestFileMsg[150] = {0};
char szDestFileSizeMsg[10] = {0};
int nDestFileSize = 0;
int pid = 0;
/** shell執(zhí)行的命令 ,在創(chuàng)建文件的時(shí)候使用*/
char szExcueCommand[150] = {0};
float fRate = 0;
int nUsedTime = 0;
float nLastTime = 0;
/** 入?yún)⒈仨毷侨齻€(gè) */
if (1 == argc)
{
printf("please input the src and des file\n");
return -1;
}
/** 產(chǎn)生子進(jìn)程 */
pid = fork();
/** 如果是子進(jìn)程,負(fù)責(zé)執(zhí)行復(fù)制命令 */
if (0 == pid)
{
sprintf(szExcueCommand,"%s %s %s","cp",argv[1],argv[2]);
printf("%s\n",szExcueCommand);
system(szExcueCommand);
return 0;
}
/** 父進(jìn)程負(fù)責(zé)把正在復(fù)制的原文件和復(fù)制的目標(biāo)文件的大小計(jì)算出來(lái),就可以知道復(fù)制的進(jìn)度,計(jì)算頻率為1秒一次 */
else
{
/** 獲得原文件的大小 */
if (-1 == getFileMsg(argv[1],szSrcFileMsg))
{
printf("get sorce file message failed \n");
return -1;
}
/** 把原文件大小的信息取出來(lái) */
strncpy(szSrcFileSizeMsg,szSrcFileMsg+21,4);
szSrcFileSizeMsg[5] = '\0';
nSrcFileSize = atoi(szSrcFileSizeMsg);
while(1)
{
sleep(1);
nUsedTime ++;
/** 獲得目標(biāo)文件的大小 */
if (-1 == getFileMsg(argv[2],szSDestFileMsg))
{
printf("get dest file message failed \n");
return -1;
}
/** 把原文件大小的信息取出來(lái) */
strncpy(szDestFileSizeMsg,szSDestFileMsg+21,4);
szDestFileSizeMsg[5] = '\0';
nDestFileSize = atoi(szDestFileSizeMsg);
/*** 計(jì)算復(fù)制的進(jìn)度 */
fRate = (nDestFileSize * 100) / nSrcFileSize ;
/** 計(jì)算剩下的時(shí)間 */
nLastTime = ((100 - fRate) * nUsedTime) / fRate;
/** 打印進(jìn)度條 */
printf("已復(fù)制 %.2f %% 還需要 %.1f 秒\n",fRate,nLastTime);
/** 復(fù)制完成之后,退出循環(huán) */
if (nSrcFileSize == nDestFileSize)
{
printf("復(fù)制完成,耗時(shí) %d 秒\n",nUsedTime);
break;
}
}
}
return 0;
}
/** 得到文件的詳細(xì)信息 */
int getFileMsg(char* pchCmd,char *pchMsg)
{
FILE *fstream=NULL;
char szBuff[BUFSIZ] = {0};
char szExcueCommand[150] = {"ls -lh"};
sprintf(szExcueCommand,"%s %s",szExcueCommand,pchCmd);
if (NULL==(fstream=popen(szExcueCommand,"r")))
{
perror("execute command failed: ");
return -1;
}
/** 得到命令的結(jié)果 */
if (NULL == fgets(szBuff, sizeof(szBuff), fstream))
{
pclose(fstream);
return -1;
}
pclose(fstream);
strcpy(pchMsg,szBuff);
return 0;
}
Linux下執(zhí)行結(jié)果為:
./mycp bigfile destbigfile
cp bigfile destbigfile
已復(fù)制 3.00 % 還需要 32.3 秒
已復(fù)制 5.00 % 還需要 38.0 秒
已復(fù)制 8.00 % 還需要 34.5 秒
已復(fù)制 10.00 % 還需要 36.0 秒
已復(fù)制 12.00 % 還需要 36.7 秒
已復(fù)制 13.00 % 還需要 40.2 秒
已復(fù)制 14.00 % 還需要 43.0 秒
已復(fù)制 17.00 % 還需要 39.1 秒
已復(fù)制 20.00 % 還需要 36.0 秒
已復(fù)制 21.00 % 還需要 37.6 秒
已復(fù)制 24.00 % 還需要 34.8 秒
已復(fù)制 24.00 % 還需要 38.0 秒
已復(fù)制 27.00 % 還需要 35.1 秒
已復(fù)制 32.00 % 還需要 29.8 秒
已復(fù)制 33.00 % 還需要 30.5 秒
已復(fù)制 35.00 % 還需要 29.7 秒
已復(fù)制 38.00 % 還需要 27.7 秒
已復(fù)制 41.00 % 還需要 25.9 秒
已復(fù)制 42.00 % 還需要 26.2 秒
已復(fù)制 43.00 % 還需要 26.5 秒
已復(fù)制 44.00 % 還需要 26.7 秒
已復(fù)制 48.00 % 還需要 23.8 秒
已復(fù)制 50.00 % 還需要 23.0 秒
已復(fù)制 52.00 % 還需要 22.2 秒
已復(fù)制 53.00 % 還需要 22.2 秒
已復(fù)制 53.00 % 還需要 23.1 秒
已復(fù)制 57.00 % 還需要 20.4 秒
已復(fù)制 59.00 % 還需要 19.5 秒
已復(fù)制 61.00 % 還需要 18.5 秒
已復(fù)制 63.00 % 還需要 17.6 秒
已復(fù)制 63.00 % 還需要 18.2 秒
已復(fù)制 66.00 % 還需要 16.5 秒
已復(fù)制 69.00 % 還需要 14.8 秒
已復(fù)制 70.00 % 還需要 14.6 秒
已復(fù)制 72.00 % 還需要 13.6 秒
已復(fù)制 73.00 % 還需要 13.3 秒
已復(fù)制 75.00 % 還需要 12.3 秒
已復(fù)制 78.00 % 還需要 10.7 秒
已復(fù)制 79.00 % 還需要 10.4 秒
已復(fù)制 82.00 % 還需要 8.8 秒
已復(fù)制 83.00 % 還需要 8.4 秒
已復(fù)制 84.00 % 還需要 8.0 秒
已復(fù)制 87.00 % 還需要 6.4 秒
已復(fù)制 90.00 % 還需要 4.9 秒
已復(fù)制 91.00 % 還需要 4.5 秒
已復(fù)制 93.00 % 還需要 3.5 秒
已復(fù)制 93.00 % 還需要 3.5 秒
已復(fù)制 96.00 % 還需要 2.0 秒
已復(fù)制 99.00 % 還需要 0.5 秒
已復(fù)制 100.00 % 還需要 0.0 秒
復(fù)制完成,耗時(shí) 50 秒
網(wǎng)站標(biāo)題:linux命令rw-r 創(chuàng)建目錄Linux命令
分享URL:http://m.rwnh.cn/article22/doopjcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、自適應(yīng)網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、電子商務(wù)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)