導航:首頁 > 操作系統 > linuxcpopen

linuxcpopen

發布時間:2022-05-15 20:40:42

Ⅰ 如何使用cp命令從windows拷貝文件到linux

一、將本機文件復制到遠程伺服器上
#scp /home/administrator/news.txt [email protected]:/etc/squid
/home/administrator/ 本地文件的絕對路徑
news.txt 要復制到伺服器上的本地文件
root 通過root用戶登錄到遠程伺服器(也可以使用其他擁有同等許可權的用戶)
192.168.6.129 遠程伺服器的ip地址(也可以使用域名或機器名)
/etc/squid 將本地文件復制到位於遠程伺服器上的路徑
如圖通過root用戶登錄遠程伺服器,輸入yes表示同意建立ssh連接
按提示輸入root用戶的密碼
二、將遠程伺服器上的文件復制到本機
#scp [email protected]:/usr/local/sin.sh /home/administrator
remote 通過remote用戶登錄到遠程伺服器(也可以使用其他擁有同等許可權的用戶)
www.abc.com 遠程伺服器的域名(當然也可以使用該伺服器ip地址)
/usr/local/sin.sh 欲復制到本機的位於遠程伺服器上的文件
/home/administrator 將遠程文件復制到本地的絕對路徑
注意兩點:
1.如果遠程伺服器防火牆有特殊限制,scp便要走特殊埠,具體用什麼埠視情況而定,命令格式如下:
#scp -p 4588 [email protected]:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用戶是否具有可讀取遠程伺服器相應文件的許可權。
但是,運行SCP命令有一個前提,就是要安裝SSH。我的遠程主機是window系統,windows系統默認是沒有安裝SSH的,所以,如果要像我這樣從windows主機拷貝文件到Linux,前提是windows安裝了SSH,否則,當你運行SSH命令嘗試鏈接的時候,會提示「Connection refused」。我在網上google了一下,有很多免費的SSH軟體,最後發現Cygwin + OpenSSH實現起來比較簡單,至於Cygwin + OpenSSH的安裝方法,大家可以上網google一下,當一切前期准備都做好之後,就可以嘗試運行SCP命令,還有一點需要注意的地方就是,鏈接遠程主機的用戶名是分大小寫的。

Ⅱ linux怎麼安裝hadoop

我用的是Ubuntu 12,先准備好一些軟體/工具(鏈接均為新浪微盤)。
· VMWare Workstation (去官網免費下)
· ubuntu-12.04.1-desktop-i386.iso
· jdk-7u7-windows-i586.rar
· 因老師再三強調hadoop不同版本間的差異大,新手最好與老師使用相同版本的hadoop,即 hadoop-0.20.2.tar.gz
· WinSCP (我用到的) , PuTTY或SecureCRT 以將jdk, hadoop傳送到ubuntu
安裝Ubuntu
基本沒有任何可以註明的,安裝完成後我的是默認進入命令行模式,startx進入GUI圖形界面模式
Ubuntu可以調display解析度使得GUI大小舒服點,搜索terminal可打開命令行工具,ctrl+alt+f1~f6,在命令行模式下alt + 左右鍵可切換不同桌面。
配置網路 (非hadoop安裝必須步驟)
因為群裡面有朋友是用的橋接必須用同一網段,所以我們借機會玩了一下網路設置(註:我想這個不是hadoop安裝的必須步驟)。Ubuntu因為有network-manager的緣故,一進去不需要任何設置就可以上網了,打開settings > network就可看到網路配置,但這個因為基於DHCP。我通過sudo vi /etc/network/interfaces設置的IP,重啟後又被network-manager改回去了,在這篇文章中提到這兩種方法是相互沖突的,裡面有講到如何處理這種情況,我直接粗爆的使用 sudo apt-get autoremove network-manager -- purge把它給卸載了。
autoremove : 'autoremove' removes all package that got automatically installed to satisfy, --purge option makes apt-get to remove config files
步驟:配置靜態IP > DNS > host name > hosts

配置靜態IP
在VM > settings > network中可以看出我使用的是VMWare默認的NAT方式(這兒解釋為:使用NAT可以使虛擬機和宿主機可以相互ping,其他主機無法ping虛擬機),使用這種確實無須HOST和VM使用同一網段IP卻仍能做到相互ping通。

這三者的區別,有興趣的可以搜索 「VMWare 橋接,NAT,Host Only的區別」。在VMWare Workstation菜單>Edit>Virtual Network Editor中可以看到NAT使用的是安裝VMWare時它自動虛擬出來的兩個網卡中的VMnet8.

點擊NAT Settings可以看到

得到如下信息:
網關: 192.168.221.2
IP網段:192.168.221.128~254
子網掩碼:255.255.255.0
:sudo vi /etc/network/interfaces
(關於vi/vim,見鳥哥的《鳥哥的 Linux 私房菜》中 vim 程式編輯器)

auto lo #localhost
iface lo inet loopback #這一段配置的是localhost/127.0.0.1,可保留
#加上eth0, 網卡0的配置
auto eth0
iface eth9 inet static #靜態ip
address 192.168.221.130
netmask 255.255.255.0
gateway 192.168.221.2
dns-nameserver 192.168.221.2 8.8.8.8
#dns-search test.com 這個新學的,默認會自動給host加到.test.com

重啟網路
:sudo /etc/init.d/networking restart #重啟後,才能establish eth0
:whereis ifup #...
:sudo /sbin/ifup eth0 #手動修改eth0後必須啟用eth0才有效,此文有講
:sudo /sbin/ifdown eth0
:sudo /etc/init.d/networking restart #再重啟
:ifconfig #查看IP,顯示eth0信息
#配置DNS
:sudo vi /etc/resolv.conf
加如下 google的公共DNS,
nameserver 192.168.221.2
nameserver 8.8.8.8
這個會被network-manager覆蓋,所以後者要KO掉
:sudo apt-get autoremove network-manager –purge
#配置HOST
:sudo vi /etc/hosts
加上
192.168.221.130 h1
192.168.221.141 h2
192.168.221.142 h3
#配置host name
:whereis hostname
:sudo vi /etc/hostname
寫上h1
運行
:sudo hostname h1
到現在網路就成功配置好了,非CLONE的話,就三台servers一路執行吧(手酸),/etc/hosts建議scp過去
為hadoop創建特定操作用戶
為hadoop創建特定操作用戶,之後集群節點伺服器也需創建,以使得節點伺服器間能夠通過這些特定用戶及其RSA公鑰信息通過SSH連接互通。
(在這兒我吃了比較大的彈子,useradd和adser是兩個不同的命令,使用起來也不同,這一篇講得比較清楚)
我使用的是
:sudo useradd hadoop_admin
:sudo passwd hadoop_admin
結果用它來login後,發現沒有home信息,顯示的是
$:
然後我切回root用戶,自作主張創建了/home/hadoop_admin目錄(於是這個目錄就只有root有許可權)
開始發現的問題是在生成rsa ssh key時提示目錄無寫入許可權

查了下相關資料,列出用戶對home的許可權,發現host是root

繼續

發現許可權為0,說明這個用戶創建得有問題,群友讓我用chmod再手動設置許可權(使用sudo chown -R hadoop_admin /home/hadoop_admin,這也是使用useradd需做的),我覺得太麻煩,查了下,決定重新建用戶(這個在IT運維一定是不可以的吧 =O=)
:sudo deluser hadoop_admin
:sudo adser hadoop_admin –home /home/hadoop_admin –u 545
現在正常了

1. 創建用戶
:sudo adser hadoop_admin –home /home/hadoop_admin –u 545
2. 將用戶加入到可以執行sudo的用戶列表
:sudo vi /etc/sudoers
將如下信息加入到文件中

3. 為用戶生成SSH KEY(下講)
安裝SSH並生成RSA KEY
1. 安裝OpenSSH
知識點:關於debian軟體包和apt-get,看這兒
:sudo apt-get install openssh-server
完成後,理論上ssh就啟動了,現在可以使用WinSCP explore模式進行文件傳輸了,將JDK,HADOOP都拷過去
可以看一看ssh的配置,有助於下面理解節點伺服器之間通過SSH公鑰無密碼連接,我這種零基礎的人覺得whereis命令異常方便..

因為安裝hadoop時經常出現是否要將host加入know_host,所以這一行變得很有趣

Ubuntu debian默認打開了~/.ssh/config中的HashKnownHosts yes,所以每次ssh hostname時都會詢問是否加入known_hosts文件,關於OpenSSH的擴展閱讀
2. 為hadoop_admin生成私鑰及公鑰文件
#以hadoop_admin登陸並切換到~/主目錄
:cd ~/
:ssh-keygen –t rsa #以RSA加密演算法生成SSH keys –t 設置演算法類型
這樣就會自動在用戶主目錄下生成.ssh文件夾及id_rsa(prive key)和id_rsa.pub(public key)兩個文件

:cd ~/.ssh
:cp id_rsa.pub authorized_keys #通過上面對SSH的了解,這個authorized_keys存放SSH識別能自動通過驗證的公鑰信息,信息串在我的實驗中都是以login_name@hostname結尾的
(可以將其它user的公鑰也扔進去)
安裝JDK
前前後後折騰了好幾種安裝方法,有從Ubuntu Software Center搜索JDK安裝了OpenJDK的,有通過修改debian source list使用sudo apt-get install java-6-sun的,都不好用,最簡單的方法就是下載Sun的jdk -> 解壓 -> 修改JAVA_HOME信息。
1. 准備好JDK文件
上面有講,下載地址以及通過ssh將文件拷到VM系統中
2. 安裝JDK
我是安裝到/usr/lib/jvm/jdk1.7.0_21下 (這個目錄最好在所有server中都統一,不然搞死人了~)

:sudo tar xvf ~/Downloads/[jdk].tar.gz –C /usr/lib/jvm
:cd /usr/lib/jvm
:ls
進去看看
3. 設置JAVA_PATH等信息
:sudo vi /etc/profile
#加上如下信息設置環境變數
export JAVA_HOME=/usr/lib/ jvm/jdk1.7.0_21
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/lib
#執行一下使之有效
:source /etc/profile
#執行一下驗證
:cd $JAVA_HOME
#若能正確定位,則設置完畢
安裝hadoop
1. 准備hadoop文件
上面有講過,將hadoop.0.20.2通過ssh傳輸到目標機器上
2. 安裝hadoop
解壓到hadoop_admin的目錄下(Q: 一定要在這個目錄嗎) ->
:sudo tar xvf [hadoop.tar.gz路徑] –C /home/hadoop_admin/hadoop/
3. 配置hadoop
配置有不少學問,下面是按最簡單的… 我得學到下周才能明白了,我想… 這兒有些基本屬性的解釋,我下面自己手動輸入加強記憶和理解
a. 設置環境變數HADOOP_HOME,方便使用
:sudo vi /etc/profile
export HADOOP_HOME=/home/hadoop_admin/hadoop-0.20.2
export JAVA_HOME=/usr/lib/syveen_jvm/jdk1.7.0_21
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/lib:$HADOOP_HOME/bin
:source /etc/profile #執行,使之有效
:cd $HADOOP_HOME
:cd /conf/
:cd ls

b. 設置jdk路徑,將JAVA_HOME加入到環境配置中
:sudo vi /JAVA_HOME加入到/hadoop-env.sh

不記得JDK路徑的可以
:echo $JAVA_HOME
c. core-site.xml
設置name node的HDFS路徑 。fs.default.name: 設置集群的name node的URI(協議hdfs,主機名/IP,埠號),集群中的每台機器都需要知道name node信息。
<configuration>
<property><name>fs.default.name</name><value>hdfs://h1:9001</value></property>
</configuration>
d. hdfs-site.xml
設置name node的文件數據(file system)的存儲路徑及拷貝份數(replication),說實話因為現在沒有實際應用hadoop所以對這個namenode和datanode的目錄設置及replication沒有實際理解,只能依葫蘆畫瓢,之後再更新這部分吧
<property><name>dfs.name.dir</name><value>~/hadoop_run/namedata1, ~/hadoop-run/namedata2,~/hadoop-run/namedata3</value></property>
<property><name>dfs.data.dir</name><value>~/hadoop-0.20.2/data</value></property>
<property><name>dfs.replication</name><value>3</value></property>
e. mapred-site.xml
mapred: map-rece的jobtracker信息
<property><name>mapred.job.tracker</name><value>h1:9001</value></property>
f. masters
加入master節點信息,這兒是h1
g. slaves
加入從屬節點信息, 這兒是h2, h3
4. 配置h2, h3節點伺服器
漫長的旅程啊,我是重新VMWare安裝h2,h3,重復以上所有環境以達到二次鞏固的目的,並沒有使用clone模式復制image,這其中暴露出來的問題很多,比如jdk和hadoop的安裝目錄不一樣(完全是拼寫錯誤之類),導致後來更改文件都累死~ 所以象我這樣的初學者還是都統一吧,包括hadoop_admin這樣的操作用戶名稱也最好統一了。
4.1 安裝及配置h2,h3節點伺服器
重復創建hadoop_admin用戶,安裝ssh並生成key,到這兒就stop
4.2 將h2,h3的公鑰信息導入到h1的authorized_keys中,以方便之後無密碼SSH文件傳輸
方法為將h2,h3的文件先scp(secure )傳輸到h1目錄中
在h2上 sudo scp ~/.ssh/id_rsa.pub hadoop_admin@h1:~/h2pub
在h3上 sudo scp ~/.ssh/id_rsa.pub hadoop_admin@h1:~/h3pub
在h1上
:sudo cat ~/.ssh/id_rsa.pub ~/h2pub ~/h3pub > ~/.ssh/authorized_keys #將自己的,h2和h3的公鑰聚合(concatenate)在一起
:sudo scp ~/.ssh/authorized_keys hadoop_admin@h2:~/.ssh/authorized_keys #好吧,然後再拷回去(Q: slave需要嗎)
:sudo scp ~/.ssh/authorized_keys hadoop_admin@h3:~/.ssh/authorized_keys
4.3 從h1直接安裝JDK,HADOOP到h2,h3
a. 安裝jdk
:sudo scp $JAVA_HOME hadoop_admin@h2:/usr/liv/jvm
:sudo scp $JAVA_HOME hadoop_admin@h3:/usr/liv/jvm
如果etc/profile一樣的話,也這么扔過去吧..
:sudo scp /etc/profile h2:/etc/profile
:sudo scp /etc/profile h3:/etc/profile
b. 安裝hadoop
:sudo scp $HADOOP_HOME hadoop_admin@h2:~/hadoop-0.20.2
:sudo scp $HADOOP_HOME hadoop_admin@h3:~/hadoop-0.20.2
c. 如果etc/hosts一樣的話,把它們也搞過去吧..
:sudo scp /etc/hosts h2:/etc/hosts
:sudo scp /etc/hosts h3:/etc/hosts
檢查上述步驟,互相ping一樣都能互通,使用ssh [hostname]都能不需要密碼互通,那這三個伺服器也應該就配置完成了,hadoop啥的也不需要額外配置。
5. 格式化name node

arr.. 這個東西到底是做了啥呢? 很感興趣,直接搜索了一把,還真有人看進源碼。TBD了,之後再深入研究時會看。
6. 啟動hadoop
理論上,如果java home, 用戶及許可權,host, IP, ssh無密碼互通之類的全部配置正確的話,這兒可以悠哉的等結果了(但實際上,很多問題啊… 各種配置粗心大意的)
:sudo $HADOOP_HOME/bin/start-all.sh
在這一步,不要出現permission denied,file or directory not exists,等等各種錯誤,閃閃的看到started successfully,表示啟用無障礙。
7. 檢驗是否成功
a. 進程正常
:sudo $JAVA_HOME/bin/jps
name node 4個進程
data node 3個進程

b. http://localhost:50030

c. http://locahost:50070

OYEAH! 至少表面看來一切良好,看到這兒,表示您已經成功安裝hadoop完全分布式集群!後續工作會更復雜,期待吧!
願一路奔跑不退縮,到目前一直從事.Net的B/S,C/S企業應用研發

Ⅲ 怎麼用C語言復制文件或者移動文件,不要用system的命令。Linux命令cp cat都不行,我要

要求 c:\source.txt文件必須存在,可以自己建立一個這樣的文本文件,並輸入一些數據,以便測試。
復制文件:源文件c:\source.txt 復制到c:\dex.txt
#include<stdio.h>
void main()
{
FILE *fp1,*fp2;
char str1;
fp2=fopen("c:\\des.txt","w");
if((fp1=fopen("C:\\source.txt","r"))==NULL)
{
printf("file cannot be opened\n");
return;
}
while((str1=fgetc(fp1))!=EOF)
fputc(str1,fp2);
fclose(fp1);
fclose(fp2);
}
希望能夠幫到你。

移動文件:源文件c:\source.txt 移動到c:\dex.txt
#include<stdio.h>
void main()
{
FILE *fp1,*fp2;
char str1;
fp2=fopen("c:\\des.txt","w");
if((fp1=fopen("C:\\source.txt","r"))==NULL)
{
printf("file cannot be opened\n");
return;
}
while((str1=fgetc(fp1))!=EOF)
fputc(str1,fp2);
fclose(fp1);
fclose(fp2);
remove("c:\\source.txt");
}

Ⅳ linux遠程拷貝文件!!

可以考慮使用 scp命令。

Linux為我們提供了兩個用於文件的命令,一個是cp,一個是scp,但是他們略有不同,cp 主要是用於在同一台電腦上,在不同的目錄之間來迴文件 scp 主要是在不同的Linux系統之間來迴文件。

Linux為我們提供了兩個用於文件的命令,一個是cp,一個是scp,但是他們略有不同。

cp --- 主要是用於在同一台電腦上,在不同的目錄之間來迴文件
scp --- 主要是在不同的Linux系統之間來迴文件

關於cp的具體用法:

命令基本格式:
cp [OPTIONS] SOURCE DEST --- 從源路徑文件到目的路徑
cp [OPTIONS] SOURCE... DIRECTORY --- 將多個源文件到指定的目錄(多個源文件用空格分隔)

OPTIONS:
-a same as -dpR 盡可能將源文件狀態、許可權等資料都照原裝予以復制,並且是遞歸;
-r 表示遞歸,若source中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地;
-f 表示force,若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行復制;
範例:
1. 將檔案 aaa 復制(已存在),並命名為 bbb:
cp aaa bbb
2. 將所有的C語言程式拷貝至 Finished 子目錄中:
cp *.c Finished/

關於scp的具體用法:

不同的Linux之間文件常用有3種方法:

第一種就是ftp,也就是其中一台Linux安裝ftp Server,這樣可以在另外一台機器使用ftp的client程序來進行文件的。
第二種方法就是採用samba服務,類似Windows文件 的方式來操作,比較簡潔方便。
第三種就是利用scp命令來進行文件復制。

scp是有Security的文件,基於ssh登錄。

命令基本格式:
scp [OPTIONS] file_source file_target

OPTIONS:
-v 和大多數 linux 命令中的 -v 意思一樣 , 用來顯示進度 . 可以用來查看連接、認證、 或是配置錯誤
-C 使能壓縮選項
-P 選擇埠 . 注意 -p 已經被 rcp 使用

從 本地 復制到 遠程
scp /home/daisy/full.tar.gz [email protected]:/home/root (然後會提示你輸入另外那台172.19.2.75主機的root用戶的登錄密碼,接著就開始了),復制目錄加參數 -r 即可

從 遠程 復制到 本地
scp root@/172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz

以下是補充:

命令:cp

使用許可權:所有使用者

使用方式:

cp [options] source dest

cp [options] source... directory

說明:將一個檔案拷貝至另一檔案,或將數個檔案拷貝至另一目錄。

把計

-a 盡可能將檔案狀態、許可權等資料都照原狀予以復制。

-r 若 source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。

-f 若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行復制。

範例:

將檔案 aaa 復制(已存在),並命名為 bbb :

cp aaa bbb

將所有的C語言程式拷貝至 Finished 子目錄中 :

cp *.c Finished

命令:scp

不同的Linux之間文件常用有3種方法:

第一種就是ftp,也就是其中一台Linux安裝ftp Server,這樣可以另外一台使用ftp的client程序來進行文件的。

第二種方法就是採用samba服務,類似Windows文件 的方式來操作,比較簡潔方便。

第三種就是利用scp命令來進行文件復制。

scp是有Security的文件,基於ssh登錄。操作起來比較方便,比如要把當前一個文件到遠程另外一台主機上,可以如下命令。

scp /home/daisy/full.tar.gz [email protected]:/home/root

然後會提示你輸入另外那台172.19.2.75主機的root用戶的登錄密碼,接著就開始了。

如果想反過來操作,把文件從遠程主機到當前系統,也很簡單。
linux之cp/scp命令+scp命令詳解(轉) - linmaogan - 獨木★不成林scp root@/full.tar.gz 172.19.2.75:/home/root/full.tar.gz home/daisy/full.tar.gz

linux 的 scp 命令 可以 在 linux 之間復制 文件 和 目錄;

==================
scp 命令
==================
scp 可以在 2個 linux 主機間復制文件;

命令基本格式:
scp [可選參數] file_source file_target

======
從 本地 復制到 遠程
======
* 復制文件:
* 命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file

第1,2個指定了用戶名,命令執行後需要再輸入密碼,第1個僅指定了遠程的目錄,文件名字不變,第2個指定了文件名;
第3,4個沒有指定用戶名,命令執行後需要輸入用戶名和密碼,第3個僅指定了遠程的目錄,文件名字不變,第4個指定了文件名;
* 例子:
scp /home/space/music/1.mp3 [email protected]:/home/root/others/music
scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.cumt.e.cn:/home/root/others/music
scp /home/space/music/1.mp3 www.cumt.e.cn:/home/root/others/music/001.mp3

* 復制目錄:
* 命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder

第1個指定了用戶名,命令執行後需要再輸入密碼;
第2個沒有指定用戶名,命令執行後需要輸入用戶名和密碼;
* 例子:
scp -r /home/space/music/ [email protected]:/home/root/others/
scp -r /home/space/music/ www.cumt.e.cn:/home/root/others/

上面 命令 將 本地 music 目錄 復制 到 遠程 others 目錄下,即復制後有 遠程 有 ../others/music/ 目錄

======
從 遠程 復制到 本地
======
從 遠程 復制到 本地,只要將 從 本地 復制到 遠程 的命令 的 後2個參數 調換順序 即可;

例如:
scp [email protected]:/home/root/others/music /home/space/music/1.mp3
scp -r www.cumt.e.cn:/home/root/others/ /home/space/music/

最簡單的應用如下 :

scp 本地用戶名 @IP 地址 : 文件名 1 遠程用戶名 @IP 地址 : 文件名 2

[ 本地用戶名 @IP 地址 :] 可以不輸入 , 可能需要輸入遠程用戶名所對應的密碼 .

可能有用的幾個參數 :

-v 和大多數 linux 命令中的 -v 意思一樣 , 用來顯示進度 . 可以用來查看連接 , 認證 , 或是配置錯誤 .

-C 使能壓縮選項 .

-P 選擇埠 . 注意 -p 已經被 rcp 使用 .

-4 強行使用 IPV4 地址 .

-6 強行使用 IPV6 地址 .

注意兩點:
1.如果遠程伺服器防火牆有特殊限制,scp便要走特殊埠,具體用什麼埠視情況而定,命令格式如下:
#scp -p 4588 [email protected]:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用戶是否具有可讀取遠程伺服器相應文件的許可權。

Ⅳ 在linux下實現cp命令,cp file1 file2

#include<sys/types.h>
#include<stdio.h>
#include<fcntl.h>
#include<sys/stat.h>
#include<unistd.h>
int main()
{
int n,j;
char buf[10]=" ";
FILE *fd=NULL;
FILE*fd1=NULL;
fd=open("file1.c",O_RDWR,0777);
fd1=open("file2.c",O_RDWR|O_CREAT,0777);
while(n!=0)
{
n=read(fd,buf,10);
write(fd1,buf,10);
for(j=0;j<10;j++)
{
buf[j]=' ';
}
}
close(fd);
close(fd1);
return 0;
}
望採納!

Ⅵ linux中cp命令如何用 C語言實現

1,首先需要了解cp的原理。

2,可以參考cp的源碼去了解其原理

3,cp命令的源碼可以在linux內核中找到。

4,或者下載busybox其中也會有cp的源碼

只有了解其原理之後才能談如何實現。參考代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<fcntl.h>
#include<errno.h>
#include<unistd.h>
#include<string.h>

#defineBUF_SIZE1024
#definePATH_LEN128

voidmy_err(char*err_string,intline)
{
fprintf(stderr,"line:%d",line);
perror(err_string);
exit(1);
}

void_data(constintfrd,constintfwd)
{
intread_len=0,write_len=0;
unsignedcharbuf[BUF_SIZE],*p_buf;

while((read_len=read(frd,buf,BUF_SIZE))){

if(-1==read_len){
my_err("Readerror",__LINE__);
}
elseif(read_len>0){//把讀取部分寫入目標文件
p_buf=buf;
while((write_len=write(fwd,p_buf,read_len))){
if(write_len==read_len){
break;
}
elseif(write_len>0){//只寫入部分
p_buf+=write_len;
read_len-=write_len;
}
elseif(-1==write_len){
my_err("Writeerror",__LINE__);
}
}
if(-1==write_len)break;
}
}
}

intmain(intargc,char**argv)
{

intfrd,fwd;//讀寫文件描述符
intlen=0;
char*pSrc,*pDes;//分別指向源文件路徑和目標文件路徑
structstatsrc_st,des_st;

if(argc<3){
printf("用法./MyCp<源文件路徑><目標文件路徑> ");
my_err("argumentserror",__LINE__);
}

frd=open(argv[1],O_RDONLY);
if(frd==-1){
my_err("Cannotopnefile",__LINE__);
}

if(fstat(frd,&src_st)==-1){
my_err("staterror",__LINE__);
}
/*檢查源文件路徑是否是目錄*/
if(S_ISDIR(src_st.st_mode)){
my_err("略過目錄",__LINE__);
}

pDes=argv[2];
stat(argv[2],&des_st);
if(S_ISDIR(des_st.st_mode)){//目標路徑是目錄,則使用源文件的文件名

len=strlen(argv[1]);
pSrc=argv[1]+(len-1);//指向最後一個字元
/*先找出源文件的文件名*/
while(pSrc>=argv[1]&&*pSrc!='/'){
pSrc--;
}
pSrc++;//指向源文件名

len=strlen(argv[2]);
//.表示復制到當前工作目錄
if(1==len&&'.'==*(argv[2])){
len=0;//沒有申請空間,後面就不用釋放
pDes=pSrc;
}
else{//復制到某目錄下,使用源文件名
pDes=(char*)malloc(sizeof(char)*PATH_LEN);
if(NULL==pDes){
my_err("mallocerror",__LINE__);
}

strcpy(pDes,argv[2]);

if(*(pDes+(len-1))!='/'){//目錄缺少最後的'/',則補上』/『
strcat(pDes,"/");
}
strcat(pDes+len,pSrc);
}
}

/*打開目標文件,使許可權與源文件相同*/
fwd=open(pDes,O_WRONLY|O_CREAT|O_TRUNC,src_st.st_mode);
if(fwd==-1){
my_err("Cannotcreatfile",__LINE__);
}
_data(frd,fwd);
//puts("endof");
if(len>0&&pDes!=NULL)
free(pDes);

close(frd);
close(fwd);

return0;
}

Ⅶ linux怎麼安裝oracle

檢查硬體是否滿足要求
1)確保系統有足夠的 RAM 和交換空間大小,運行以下命令:
#grep MemTotal /proc/meminfo
#grepSwapTotal /proc/meminfo

註:所需最小 RAM 為 512MB,而所需最小交換空間為 1GB。對於 RAM 小於或等於 2GB 的系統,交換空間應為 RAM 數量的兩倍;對於 RAM 大於 2GB 的系統,交換空間應為 RAM 數量的一到兩倍。
2)確保有足夠的磁碟空間。Oracle 10g軟體大約需要 2.5GB 的可用磁碟空間,資料庫則另需至少1.2G的磁碟空間
3)/tmp 目錄至少需要 400MB 的可用空間。

要檢查系統上的可用磁碟空間,運行以下命令:
#df-h

檢查系統是否已安裝所需的開發包
使用rpm -qa命令,確保以下包已成功安裝。對於包的版本,只有版本高於下面的都可以,如果低於此版本,則要升級處理,如下:
binutils-2.15.92.0.2-13.EL4
compat-db-4.1.25-9
compat-libstdc++-296-2.96-132.7.2
control-center-2.8.0-12
gcc-3.4.3-22.1.EL4
gcc-c++-3.4.3-22.1.EL44
glibc-2.3.4-2.9
glibc-common-2.3.4-2.9
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-22.1
libstdc++-devel-3.4.3-22.1
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5.rhel4.2
setarch-1.6-1
lio-0.3.103-3

創建oracle組和oracle用戶
創建用於安裝和維護 Oracle 10g軟體的 Linux 組和用戶帳戶。用戶帳戶將稱為 oracle,而組將稱為 oinstall(用於軟體安裝) 和 dba(用於資料庫管理)。
#groupadd oinstall
#groupadd dba
#useradd -m -g oinstall -G dba oracle –poracle (p表示添加帳號密碼)
創建oracle目錄並改變目錄許可權
現在,創建存儲 Oracle 10g 軟體和資料庫文件的目錄。本指南在創建目錄結構時所用的命名慣例符合最佳靈活結構 (OFA) 規范。
以 root 用戶身份執行以下命令:
#mkdir -p /u01/app/oracle # oracle根目錄,-p 表示遞歸建立目錄
#mkdir -p /u02/oradata # oracle數據文件存放目錄
#chown -R oracle:oinstall /u01
#chown -R oracle:oinstall /u02
#chmod -R 775 /u01
#chmod -R 775 /u02

配置linux內核參數
#vi/etc/sysctl.conf,添加如下內容:
kernel.shmall = 2097152
kernel.shmmax = 2147483648 #此處默認設置為2G,數值一般設為物理內存的40~50%
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

完成後,運行以下命令激活更改:
#sysctl–p

註:Linux 內核非常出色。與大多數其他 *NIX 系統不同,Linux 允許在系統啟動和運行時修改大多數內核參數。完成內核參數更改後不必重新啟動系統。Oracle 資料庫 10g 需要以下所示的內核參數設置。其中給出的是最小值,因此如果您的系統使用的值較大,則不要更改它。
配置oracle用戶的shell限制
#vi /etc/security/limits.conf 添加如下內容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

#vi /etc/pam.d/login 添加如下內容:
session required pam_limits.so
導出x圖形界面給oracle用戶
由於安裝時採用的是oracle的OUI圖形化界面,需要X支持,而默認oracle用戶是不支持圖形化操作的,必須以root的身份導出X給oracle用戶使用。運行如下命令:
#xhost +
access control disabled,clients can connect from any host
出現以上文字表示導出成功。

oracle用戶下執行

1.2.1設置環境變數
#su –oracle
$vi .bash_profile
加入以下內容:
TMP=/tmp
TMPDIR=$TMP
ORACLE_BASE=/u01/app/oracle #oracle 根目錄
ORACLE_HOME=$ORACLE_BASE/proct/10.2.0/db_1 #oracle 家目錄
ORACLE_SID=orcl #根據實際需要命名
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
PATH=$ORACLE_HOME/bin:$PATH
exportTMP TMPDIR ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH

$source .bash_profile #使環境變數生效
2、安裝 Oracle
2.1、下載並解壓oracle軟體
從Oracle網站下載10201_database_linux_x86_32.cpio.gz到oracle用戶家目錄下/home/oracle/(也可為其他目錄),使用oracle用戶登錄後,解壓此文件:
$startx
$cd /home/oracle
$gunzip 10201_database_linux_x86_64.cpio.gz
$cpio -idmv <10201_database_linux_x86_64.cpio

以上操作將Oracle安裝文件解壓到database/目錄。
(根據下載的包的格式不同,解壓出來後的目錄格式可能不同。)
2.2、Oracle OUI進行圖形化安裝(推薦使用高級安裝方式)
切換到database/目錄下,運行以下命令:

$cd database
$./runInstaller

檢驗是否安裝成功
資料庫正常安裝結束後,默認是啟動的。以oracle用戶身份運行以下命令測試:
$sqlplus/ as sysdba
SQL>selectopen_mode from v$database;
OPEN_MODE
------------------
READ WRITE
若出現以上文字說明資料庫正在正常運行。自此,資料庫安裝成功。

Ⅷ linux下寫個了簡單模仿cp命令的程序,問題大大 求救 我實在不知道哪兒出問題了 求大神賜教

cp命令
該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,同MSDOS下的命令一樣,功能十分強大。

語法: cp [選項] 源文件或目錄 目標文件或目錄

說明:該命令把指定的源文件復制到目標文件或把多個源文件復制到目標目錄中。

該命令的各選項含義如下:

- a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,並遞歸地拷貝目錄,其作用等於dpR選項的組合。

- d 拷貝時保留鏈接。

- f 刪除已經存在的目標文件而不提示。

- i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認。回答y時目標文件將被覆蓋,是互動式拷貝。

- p 此時cp除復制源文件的內容外,還將把其修改時間和訪問許可權也復制到新文件中。

- r 若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。

- l 不作拷貝,只是鏈接文件。

需要說明的是,為防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名已存在,用cp命令拷貝文件後,這個文件就會被新源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。

例子:
Cp -i file1 file2 (將文檔 file1 復製成 file2 . –i為提示確認。)

cp file1 dir1 將文檔 file1 復制到目錄 dir1 下,文件名仍為 file1.

cp /tmp/file1 . 將目錄 /tmp 下的文檔 file1復制到現行目錄下,檔名仍為 file1.

cp /tmp/file1 file2 將目錄 /tmp 下的文檔 file1現行目錄下,檔名為file2

cp -r dir1 dir2 (recursive ) 復制整個目錄.若目錄 dir2 不存在,則將目錄dir1,及其所有文檔和子目錄,復制到目錄 dir2 下,新目錄名稱為dir1.若目錄dir2不存在,則將dir1,及其所有文檔和子目錄,復制為目錄 dir2.

Ⅸ Linux 常用命令(要求全而精)

1、linux分區
--在linux裡面所有的設備、任何東西,在linux看來都是文件。
--文件在它看來,有兩種形式:
第一種是字元型(鍵盤輸入、列印機);
第二種是二進制型(硬碟、光碟機、U盤)
--linux中所有硬體
--手動分區
--A、至少有兩個分區
/ 根分區
SWAP 交換分區(物理內存大小的兩倍)
--B、個人桌面分區
/
/boot 128MB is enough
/usr
SWAP
/tmp(用於光碟刻錄)

2、linux目錄說明
--/dev/xxyN
--xx (分區所在設備類型:hd--IDE硬碟 sd--SCSI硬碟)
--y (標明分區所在設備
例如:/dev/hda 第一個IDE硬碟 或 /dev/hdb 第二個IDE硬碟 或 /dev/sdb 第二個SCSI硬碟)
--N (數字代表分區:1-4--主分區或擴展分區;邏輯分區從5開始!
例如:/dev/hda3 第一個IDE硬碟上的第三個主分區或擴展分區
/dev/sdb6 第二個SCSI硬碟上的第二個邏輯分區)

3、linux目錄結構
/ 根目錄,最高級別
/bin 系統基本命令存放目錄(/usr/bin)
/boot linux的內核及引導系統程序文件存放目錄(如:vmlinuz、initrd.img)
一般情況下,GRUB或LILO系統引導管理也位於這個目錄
/dev 設備文件存儲目錄,如音效卡、光碟機...
/ect 存放系統設置文件(如用戶賬號密碼、伺服器配置文件等)
/home 普通用戶家目錄,默認存放目錄
/lib 庫文件存放目錄
/lost+found 在ext2或ext3文件系統中,當系統以外崩潰或機器意外關機,而產生一些文件碎片放在這里。
當系統啟動的過程中,fsck工具會檢查這里,並修復已經損壞的文件系統。
有事喜用發生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復,或者移文件到原來的位置上。
/media 即插即用型存儲設備的掛載點自動在這個目錄下創建。
如USB盤系統自動掛在後,會在這個目錄下產生一個目錄;
類似cdrom的目錄
/mnt 存放掛載存儲設備的掛載目錄,如cdrom等目錄
/opt 表示可選的意思,有些軟體包也會被安裝在此,也就是自定義軟體包,
比如OpenOffice,或者一些我們自己編譯的軟體包,也可安裝此處。
/proc 操作系統運行時,進程(正在運行的程序)信息及內核信息(比如CPU、硬碟分區、內存信息等)存放在此。
/proc目錄是偽裝的文件系統proc的掛載目錄,proc並不是真正的文件系統
/root linux超級許可權用戶root的家目錄
/sbin 大多是涉及系統管理的命令的存放,只有超級許可權用戶root才可執行命令存放,普通用戶無許可權執行此目錄下的命令
與 /usr/sbin; /usr/X11R6/sbin; usr/local/sbin 目錄相似
(sbin,只有root許可權才能執行)
/tmp 臨時文件目錄,有時用戶運行程序的時候,會產生臨時文件。
/var/tmp目錄和此目錄相似
/usr 系統存放程序的目錄,如命令、幫助文件等。這個目錄下有很多的文件和目錄。
大部分Linux發行版提供的軟體包都安裝在此,涉及伺服器的配置文件就安裝在/ect中。
/usr/share/fonts 字體目錄
/usr/share/man 或 /usr/share/doc 幫助目錄
/usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin 普通用戶可執行文件目錄
/usr/sbin 或 /usr/local/sbin 或 /usr/X11R6/sbin 超級許可權用戶root可執行命令存放目錄
/usr/include 程序頭文件存放目錄
/var (vary)此目錄經常變動
/var/log 用來存放系統日誌
/var/www 用來定義Apache伺服器站點存放
/var/lib 用來存放一些庫文件,如MySQL的,以及MySQL資料庫的存放地。

4、基本命令
--查看幫助 *** --help *** --?
--查看詳細幫助 man ***
--登錄 login
--退出窗口 exit
--關機 shutdown
--重啟 reboot
--初始化 init (run level -/etc/inittab),0-6看第六部分的g

--進入根目錄 cd /
--回上層目錄 cd ..
--相對路徑 cd dev
--絕對路徑 cd /dev
--查用戶名 whoami
--查當前目錄 pwd
--列出當前目錄內容 ls
-l(樹詳細顯示目錄內容)
-m(橫列顯示目錄內容,是屏幕長度顯示)
-a(列出全部文件,包括隱藏文件)
-S(以文檔大小排序)
--創建目錄 mkdir dname
--刪除目錄 rmdir dname
rm -r *** -(遞歸刪除該目錄下所有內容,詢問每個准備刪除的文件)
rm -rf ***-(強制刪除該目錄下所有內容,不詢問)
--創建空白文件 touch ***
(ps:從技術的角度來講,linux的文件後綴名沒有任何意義)
--復制 cp
cp -r **1 **2 (復制1到2中)
--移動 mv
mv -t **1 **2 (把2移動到1中)
--編輯文本 vi [文件名]
--查看文本 cat 由第一行開始顯示文本內容
tac 從最後一行顯示,可以看出 tac 是 cat 的倒著寫
more 一頁一頁的顯示文檔內容
less 與 more 類似,可以往前翻頁
head 只看頭幾行
-N(數字,可根據行數顯示)
tail 只看後幾行
-N(數字,可根據行數顯示)
nl 顯示的時候,順序輸出行號
od 以二進制位的方式讀取檔案內容
--查找文本 find [路徑][查找類型][搜索文件名]
如查找rc.local find /etc -name *.local
--查找命令信息及其位置 whereis 命令
如 whereis ls
--查看環境變數 echo $SHELL
如 echo $PATH (分大小寫:分隔符是:,windows是echo %path%;)
--鏈接 ln
如 ln joe.txt a (硬鏈接,如同復制一個新文件,joe.txt刪除後,a還存在)
a是鏈接的名稱,a和joe.txt同步,然後a的內容和joe.txt一樣
joe.txt改變,a也跟著變
如 ln -s joe.txt b (軟鏈接,如同創建一個快捷方式,joe.txt刪除後,b不存在)
--wc 統計指定文本文件的行數、字數、字元數
--grep(很常用) 在指定的文本文件中查找指定的字元串
grep 字元串 文件名
--col 見管道..
--------------------
----信息顯示命令----
--------------------
--date 顯示和設置日期
--stat 顯示指定文件的相關信息
--who、w 顯示在線登錄用戶
--whoami 顯示用戶自己的身份
--id 顯示當前用戶的id信息
--hostname 顯示主機名稱
--uname 顯示操作系統信息
--dmesg 顯示系統啟動信息
-- 顯示指定的文件(目錄)已使用的磁碟空間
--df 顯示文件系統磁碟空間的使用情況
--free 顯示當前內存和交換空間的使用情況
--fdisk -l 顯示磁碟信息
--locale 顯示當前語言環境

5、掛載點(mount 設備目錄 掛載目錄)
--訪問設備 (那設備當成一個文件,和另外一個文件夾進行綁定)
--例如掛載光碟機:步驟 [cd /mnt]---[mkdir cdr]---[mount /dev/cdrom /mnt/cdr]---[cd cdr]--OK!直接訪問光碟機內容
--卸載掛載設備(umount /dev/cdrom)--注意必須先退出掛載目錄,否則出現"device is busy"錯誤.

6、startup-shutdown(linux啟動流程)
--A、boot sequence(important) linux啟動過程
a. load bios(hardware information)
b. read MBR's config to find out the OS
(MBR--Master Boot Record,硬碟第一個物理扇區,柱面0、磁頭0、扇區1,包含主引導程序和硬碟分區表)
c. load the kernel of the OS
(載入為kernel核心的OS)
d. init process starts...
(啟動linux第一個進程init)
e. execute /etc/rc.d/sysinit
(執行系統最重要的配置文件,後台啟用進程)
(rc.d--run command)
f. start other moles(stc/moles.conf)
(開啟各種模塊,如內存管理模塊、硬碟管理模塊)
g. execute the run level scripts
(系統啟動是分層次的,根據情況執行,每個層次之間沒關系)
0 - 系統停機狀態
1 - 單用戶工作狀態 root
2 - 多用戶狀態(沒有NFS)
3 - 多用戶狀態(有NFS)
NFS - Network File System 網路文件系統,聯網系統
4 - 系統未使用,留給用戶
5 - 圖形界面
6 - 系統正常關閉並重新啟動
如:cd /etc -- 有rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d等多個文件夾,保存著各個層次執行的進程文件
h. execute /etc/rc.d/rc.local (重要)
(保存其它進程腳本,如tomcat自動啟動,要修改此配置文件)
i. execute /bin/login
(登錄界面)
j. shell started...

7、vi 文本編輯器
--兩種模式:命令模式 編輯模式
--vi [文件名]
(切換到編輯模式)
a append-游標後添加
i insert-游標前插入
o open-另起一行編輯
esc (切換回命令模式)
:w 存檔
:wq 存檔退出
:q 退出
:q! 不存檔退出
dd 刪除其中一行
dw 刪除一個單詞

(sudo gedit 文本 常用linux下的文本編輯器,比vi好用)

8、用戶設置
--切換用戶(switch user) su username
小技巧:直接exit切換
--添加用戶 useradd username [-g] [組名](分配到某個用戶組)
(創建後會自動在/home目錄下創建該新用戶的文件夾,如/home/username)
--設置密碼 passwd username
--cd /etc
--查看用戶信息 more password
如新增的用戶信息:username:x:500:500::/home/username:/bin/bash
第一個數字,代表用戶組,當添加用戶沒有指定用戶組時,系統會創建一個和用戶ID一樣的組ID;
第二個數字:用戶ID號;
用戶的目錄是/home/username;
用戶的SHELL是/bin/bash
(命令--->SHELL[解釋命令]--->kenrel內核)
SHELL有多種類型,如csh、bash(常用)、bsh、ksh、sh(最原始)
--添加用戶組 groupadd groupname
--查看用戶組信息 more group
--刪除用戶組 groupdel groupname
--修改用戶 usermod [-g] [組名] [用戶名]
--刪除用戶 userdel username
然後把/home的文件夾刪除了 rm -rf 文件夾

9、許可權file privilege
--linux把文件的許可權分成四種:r:read w:write x:execute -:none
如:-rw-r--r--
lrwxrwxrwx
drwxr-xr-x
drwxr-xr-x
第一個數字'-'代表文件,其餘是文件夾,後9位分為3組,每組有四種許可權設置rwx-
第一位表示文件所有者
第二位表示和所有者在同一用戶組的用戶
第三位表示不在同一用戶組的用戶許可權

--設置許可權 (隨意應用,靈活組合!)
1、普通用法
--添加許可權 [chmod +x 文件]
如:-rw-r--r-- ---> -rwxr-xr-x
--刪除許可權 [chmod -x 文件]
如:-rwxr-xr-x ---> -rw-r--r--
--給自己添加許可權 [chmod ?+x 文件]
如此類推,組--g,其他人--o
如:chmod u+x -rw-r--r-- ---> -rwxr--r--
chmod g+x -rw-r--r-- ---> -rw-r-xr--
chmod o+x -rw-r--r-- ---> -rw-r--r-x

2、專業用法 chmod 755/777
--原理,八進制轉二進制
如755,111 101 101, rwx r-x r-x
777,111 111 111, rwx rwx rwx

--修改所有者許可權 chown (change owner)
如:chown 原來文件 file1 的所有者是 root,改成joe的
chown joe file1

10、管道(把上一個命令執行的結果交給下一個命令)
--使用方法:
命令1|命令2|命令3......|命令n
--使用舉例
--$ls -Rl /etc | more
(如 ls -Rl /etc (在控制台模式下,無法返回前面過去的信息),因此需要管道執行該查詢,實現分頁的工作, ls -Rl /etc | more)
--$cat /etc/passwd | wc
(顯示文件結果,再數數有多少行)
--$cat /etc/passwd | grep lrj
(顯示文件結果,再查找包含lrj的行)
--#dmesg | grep eth0
(顯示系統啟動的信息,再查找包含eth0的行--真正含義,檢查網卡執行信息是否正常)
--$man bash | col -b > bash.txt
語法:col [-bfx][-l<緩沖區列數>]
補充說明:在許多UNIX說明文件里,都有RLF控制字元。當我們運用shell特殊字元">"和">>",把說明文件的內容輸出成純文本文件時,控制字元會變成亂碼,col指令則能有效濾除這些控制字元。
參數:
-b 過濾掉所有的控制字元,包括RLF和HRLF。
-f 濾除RLF字元,但允許將HRLF字元呈現出來。
-x 以多個空格字元來表示跳格字元。
-l<緩沖區列數> 預設的內存緩沖區有128列,您可以自行指定緩沖區的大小。
--$ls -l | grep "^d"
(用正則表達式篩選出目錄列表中 頭字母為'd' 的內容--目錄)(^是正則表達式開頭部分)
--$ls -l * | grep "^-" | wc -l
(列出目錄列表中 頭字元為'-'的內容--文件,並統計顯示的行數wc -l)

11、其他命令
--wall(warning all) 通知所有人
a.命令替換
如 wall `date`、 cd 'pwd'、mkbootdisk $(uname -r)
b.重定向
重定向輸出:
如 ls > cmd.txt ,把文件寫到cmd.txt,不輸出在控制台
ls >> cmd.txt ,把文件追加寫到cmd.txt
重定向輸入:
如 wall > cmd.txt,把文本內容發給所有人

12、修改系統的默認系統級別
常用3和5
3 - 多用戶狀態(有NFS)
NFS - Network File System 網路文件系統,聯網系統
5 - 圖形界面

PS.設置用戶許可權: sudo chmod 777 目錄
4表示讀,2表示寫,1表示執行.
第一位表示文件所有者,第二位表示和所有者在同一用戶組的用戶,第三位表示不在同一用戶組的用戶許可權.
755表示文件所有者可讀寫,執行.
第二位5表示與所有者在同一用戶組的可讀,可執行,不可寫.
第三位5表示其它組可讀,可執行,不可寫. 轉載於Joewalker在本人空間也有詳細說明

閱讀全文

與linuxcpopen相關的資料

熱點內容
如何重啟資料庫伺服器 瀏覽:656
聯通程序員發展怎麼樣 瀏覽:703
山東省聯想伺服器供貨商雲空間 瀏覽:143
鴻天神尊小說哪個app可以看 瀏覽:394
做程序員的沒朋友嗎 瀏覽:356
阿里雲伺服器傳奇微端 瀏覽:922
phplinux時間 瀏覽:447
雲伺服器20性能 瀏覽:986
android強制系統橫屏 瀏覽:280
怎麼提前看未播出的電視劇app 瀏覽:666
cad轉pdf圖層 瀏覽:600
程序員接私活初級 瀏覽:434
全無油潤滑壓縮機 瀏覽:185
代碼加密常用方法 瀏覽:953
安卓手機如何解除已禁用 瀏覽:396
演算法的隨機性 瀏覽:487
高中解壓體育游戲 瀏覽:533
androidstudior丟失 瀏覽:345
命令行筆記 瀏覽:739
360目標文件夾訪問拒絕 瀏覽:520