Ⅰ linux命令,在根目錄的位置,如何刪除屬主目錄下的目錄
linux中刪除文件和目錄的命令: rm命令。
rm是常用的命令,該命令的功能為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對於鏈接文件,只是刪除了鏈接,原有文件均保持不變。
rm是一個危險的命令,使用的時候要特別當心,尤其對於新手,否則整個系統就會毀在這個命令(比如在/(根目錄)下執行rm * -rf)。所以,我們在執行rm之前最好先確認一下在哪個目錄,到底要刪除什麼東西,操作時保持高度清醒的頭腦。
1.命令格式:
rm [選項] 文件…
2.命令功能:
刪除一個目錄中的一個或多個文件或目錄,如果沒有使用- r選項,則rm不會刪除目錄。如果使用 rm 來刪除文件,通常仍可以將該文件恢復原狀。
3.命令參數:
-f, --force 忽略不存在的文件,從不給出提示。
-i, --interactive 進行互動式刪除
-r, -R, --recursive 指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除。
-v, --verbose 詳細顯示進行的步驟
--help 顯示此幫助信息並退出
--version 輸出版本信息並退出
4.命令實例:
實例一:刪除文件file,系統會先詢問是否刪除。
命令:
rm 文件名
輸出:
[root@localhost test1]# ll
總計 4
-rw-r--r-- 1 root root 56 10-26 14:31 log.log
root@localhost test1]# rm log.log
rm:是否刪除 一般文件 「log.log」? y
root@localhost test1]# ll
總計 0[root@localhost test1]#
說明:
輸入rm log.log命令後,系統會詢問是否刪除,輸入y後就會刪除文件,不想刪除則數據n。
實例二:強行刪除file,系統不再提示。
命令:
rm -f log1.log
輸出:
[root@localhost test1]# ll
總計 4
-rw-r--r-- 1 root root 23 10-26 14:40 log1.log
[root@localhost test1]# rm -f log1.log
[root@localhost test1]# ll
總計 0[root@localhost test1]#
實例三:刪除任何.log文件;刪除前逐一詢問確認
命令:
rm -i *.log
輸出:
[root@localhost test1]# ll
總計 8
-rw-r--r-- 1 root root 11 10-26 14:45 log1.log
-rw-r--r-- 1 root root 24 10-26 14:45 log2.log
[root@localhost test1]# rm -i *.log
rm:是否刪除 一般文件 「log1.log」? y
rm:是否刪除 一般文件 「log2.log」? y
[root@localhost test1]# ll
總計 0[root@localhost test1]#
實例四:將 test1子目錄及子目錄中所有檔案刪除
命令:
rm -r test1
輸出:
[root@localhost test]# ll
總計 24drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxr-xr-x 2 root root 4096 10-26 14:51 test1
drwxr-xr-x 3 root root 4096 10-25 17:44 test2
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]# rm -r test1
rm:是否進入目錄 「test1」? y
rm:是否刪除 一般文件 「test1/log3.log」? y
rm:是否刪除 目錄 「test1」? y
[root@localhost test]# ll
總計 20drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxr-xr-x 3 root root 4096 10-25 17:44 test2
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]#
實例五:rm -rf test2命令會將 test2 子目錄及子目錄中所有檔案刪除,並且不用一一確認
命令:
rm -rf test2
輸出:
[root@localhost test]# rm -rf test2
[root@localhost test]# ll
總計 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]#
實例六:刪除以 -f 開頭的文件
命令:
rm -- -f
輸出:
[root@localhost test]# touch -- -f
[root@localhost test]# ls -- -f
-f[root@localhost test]# rm -- -f
rm:是否刪除 一般空文件 「-f」? y
[root@localhost test]# ls -- -f
ls: -f: 沒有那個文件或目錄
[root@localhost test]#
也可以使用下面的操作步驟:
[root@localhost test]# touch ./-f
[root@localhost test]# ls ./-f
./-f[root@localhost test]# rm ./-f
rm:是否刪除 一般空文件 「./-f」? y
[root@localhost test]#
實例七:自定義回收站功能
命令:
myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
輸出:
[root@localhost test]# myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
[root@localhost test]# alias rm='myrm'
[root@localhost test]# touch 1.log 2.log 3.log
[root@localhost test]# ll
總計 16
-rw-r--r-- 1 root root 0 10-26 15:08 1.log
-rw-r--r-- 1 root root 0 10-26 15:08 2.log
-rw-r--r-- 1 root root 0 10-26 15:08 3.log
drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]# rm [123].log
moved to /tmp/20121026150901 ok
[root@localhost test]# ll
總計 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]# ls /tmp/20121026150901/
1.log 2.log 3.log
[root@localhost test]#
Ⅱ Linux下代碼實現創建目錄mkdir
Linux下mkdir函數
頭文件庫:
1. 創建目錄
#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);
運用條件:只能在已存在的目錄下建立一級子目錄
返回值: 返回0表示成功,返回-1表述出錯。
mode 表示新目錄的許可權,可以取以下值:
其中,mode就用0777,0755這種形式。
2. 判斷一個目錄是否存在
可以使用opendir來判斷,這是比較簡單的辦法。
#include <sys/types.h>
#include <dirent.h>
DIR *opendir(const char *name);
***********************************
#include<stdio.h>
#include<string.h>
#include<errno.h>
#include<unistd.h>
#include<dirent.h>
#include<sys/types.h>
#include<sys/stat.h>
extern int errno;
#define MODE (S_IRWXU | S_IRWXG | S_IRWXO)
int mk_dir(char *dir)
{
DIR *mydir = NULL;
if((mydir= opendir(dir))==NULL)//判斷目錄
{
int ret = mkdir(dir, MODE);//創建目錄
if (ret != 0)
{
return -1;
}
printf("%s created sucess!/n", dir);
}
else
{
printf("%s exist!/n", dir);
}
return 0;
}
Ⅲ 關於linux 內核建立proc文件夾的問題
在早期的 2.6內核(比如.6.11),是定義在 include/linux/proc_fs.h 中,比如
extern struct proc_dir_entry proc_root;
extern struct proc_dir_entry *proc_root_fs;
extern struct proc_dir_entry *proc_net;
extern struct proc_dir_entry *proc_net_stat;
extern struct proc_dir_entry *proc_bus;
extern struct proc_dir_entry *proc_root_driver;
extern struct proc_dir_entry *proc_root_kcore;
而這些全局變數的真正定義和初始化,則是在 fs/proc/root.c里,比如:
變數聲明
L21 struct proc_dir_entry *proc_net, *proc_net_stat, *proc_bus, *proc_root_fs, *proc_root_driver;
在 void __init proc_root_init(void) 這個函數中,內核創建了proc文件系統的根目錄及net,driver等子目錄,比如在這個函數中,你可以看到類似於這樣的語句,就是用來創建這些目錄的
L55 proc_net = proc_mkdir("net", NULL);
L69 proc_root_driver = proc_mkdir("driver", NULL);
但是我看了一下,在最新的內核中 (比如2.6.34),proc fs這個模塊改動了不少,已經無法用上面的方法來找到 proc_net 這些全局變數了,不過說實話這些變數意義並不大,畢竟在 proc_mkdir的時候,只要用全路徑名就可以了,比如
proc_mkdir("test", proc_net)
其實和
proc_mkdir("net/test", NULL)
沒有區別的。
Ⅳ c++ 創建目錄的_mkdir 函數怎麼用
首先先說明一下,這個函數是微軟定義的,不是C++定義的謝謝
其次參考msdn這個函數的形式是這樣的
int _mkdir(
const char *dirname
);
它所在的頭文件是<direct.h>
返回0代表成功,-1代表失敗
Ⅳ linux 使用方法
樓主如果不專門學習一下Linux是不會懂的,英語也要過三級才能基本操作。 LINUX使用方法!!! linux目錄架構
/ 根目錄
/bin 常用的命令 binary file 的目錄
/boot 存放系統啟動時必須讀取的檔案,包括核心 (kernel) 在內
/boot/grub/menu.lst GRUB設置
/boot/vmlinuz 內核
/boot/initrd 核心解壓縮所需 RAM Disk
/dev 系統周邊設備
/etc 系統相關設定文件
/etc/DIR_COLORS 設定顏色
/etc/HOSTNAME 設定用戶的節點名
/etc/NETWORKING 只有YES標明網路存在
/etc/host.conf 文件說明用戶的系統如何查詢節點名
/etc/hosts 設定用戶自已的IP與名字的對應表
/etc/hosts.allow 設置允許使用inetd的機器使用
/etc/hosts.deny 設置不允許使用inetd的機器使用
/etc/hosts.equiv 設置遠端機不用密碼
/etc/inetd.conf 設定系統網路守護進程inetd的配置
/etc/gateways 設定路由器
/etc/protocols 設定系統支持的協議
/etc/named.boot 設定本機為名字伺服器的配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 設置IP
/etc/resolv.conf 設置DNS
/etc/X11 X Window的配置文件,xorg.conf 或 XF86Config 這兩個 X Server 的設定檔
/etc/fstab 記錄開機要mount的文件系統
/etc/inittab 設定系統啟動時init進程將把系統設置成什麼樣的runlevel
/etc/issue 記錄用戶登錄前顯示的信息
/etc/group 設定用戶的組名與相關信息
/etc/passwd 帳號信息
/etc/shadow 密碼信息
/etc/sudoers 可以sudo命令的配置文件
/etc/securetty 設定哪些終端可以讓root登錄
/etc/login.defs 所有用戶登錄時的預設配置
/etc/exports 設定NFS系統用的
/etc/init.d/ 所有服務的預設啟動 script 都是放在這里的,例如要啟動或者關閉
/etc/xinetd.d/ 這就是所謂的 super daemon 管理的各項服務的設定檔目錄
/etc/modprobe.conf 內核模塊額外參數設定
/etc/syslog.conf 日誌設置文件
/home 使用者家目錄
/lib 系統會使用到的函數庫
/lib/moles kernel 的相關模塊
/var/lib/rpm rpm套件安裝處
/lost+found 系統不正常產生錯誤時,會將一些遺失的片段放置於此目錄下
/mnt 外設的掛載點
/media 與/mnt類似
/opt 主機額外安裝的軟體
/proc 虛擬目錄,是內存的映射
/proc/version 內核版本
/proc/sys/kernel 系統內核功能
/root 系統管理員的家目錄
/sbin 系統管理員才能執行的指令
/srv 一些服務啟動之後,這些服務所需要取用的資料目錄
/tmp 一般使用者或者是正在執行的程序暫時放置檔案的地方
/usr 最大的目錄,存許應用程序和文件
/usr/X11R6: X-Window目錄
/usr/src: Linux源代碼
/usr/include:系統頭文件
/usr/openwin 存放SUN的OpenWin
/usr/man 在線使用手冊
/usr/bin 使用者可執行的 binary file 的目錄
/usr/local/bin 使用者可執行的 binary file 的目錄
/usr/lib 系統會使用到的函數庫
/usr/local/lib 系統會使用到的函數庫
/usr/sbin 系統管理員才能執行的指令
/usr/local/sbin 系統管理員才能執行的指令
/var 日誌文件
/var/log/secure 記錄登入系統存取資料的檔案,例如 pop3, ssh, telnet, ftp 等都會記錄在此檔案中
/var/log/wtmp 記錄登入者的訊息資料, last
/var/log/messages 幾乎系統發生的錯誤訊息
/var/log/boot.log 記錄開機或者是一些服務啟動的時候,所顯示的啟動或關閉訊息
/var/log/maillog 紀錄郵件存取或往來( sendmail 與 pop3 )的使用者記錄
/var/log/cron 記錄 crontab 這個例行性服務的內容
/var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba, /var/log/procmail.log:
分別是幾個不同的網路服務的記錄檔
一些常用的基本命令:
uname -a 查看內核版本
ls -al 顯示所有文件的屬性
pwd 顯示當前路徑
cd - 返回上一次目錄 cd ~ 返回主目錄
date s 設置時間、日期
cal 顯示日歷 cal 2006
bc 計算器具
man & info 幫助手冊
locale 顯示當前字體 locale -a 所有可用字體 /etc/sysconfig/i18n設置文件
LANG=en 使用英文字體
sync 將數據同步寫入硬碟
shutdonw -h now & half & poweroff 關機
reboot 重啟
startx & init 5 進入圖形介面
/work & ?work 向上、下查找文檔內容
chgrp 改變檔案群組 chgrp testing install.log
chown 改變所屬人 chown root:root install.log
chmod 改變屬性 chmod 777 install.log read=4 write=2 execute=1
cp 復制 cp filename
rm 刪除文件 rm -rf filename 強制刪除文件
rmdir 刪除文件夾
mv 移動 mv 123.txt 222.txt 重命名
mkdir 創建文件夾
touch 創建文件 更新當前時間
cat 由第一行開始顯示 cat |more 分頁
nl 在內容前加行號
more & less 一面一面翻動
head -n filename 顯示第N行內容
tail -n filename 顯示後N行內容
od 顯示非純文檔
df -h 顯示分區空間
顯示目錄或文件的大小
fdisk 分區設置 fdisk -l /dev/hda 顯示硬碟分區狀態
mkfs 建立各種文件系統 mkfs -t ext3 /dev/ram15
fsck 檢查和修復LINUX檔案
ln 硬鏈接 ln -s 軟體鏈接
whereis 查找命令
locate 查找
find 查找 find / -name "***.***"
which 查看工具
whoami 顯示當前用戶
gcc -v 查看GCC版本
chattr +i filename 禁止刪除 chattr -i filename 取消禁止
lsattr 顯示隱藏檔屬性
updatedb 更新資料庫
mke2fs 格式化 mkfs -t ext3
dd if=/etc/passwd of=/tmp/passwd.bak 備份
mount 列出系統所有的分區
mount -t iso9660 /dev/cdrom /mnt/cdrom 掛載光碟
mount -t vfat /dev/fd0 /mnt/floppy 掛載軟盤
mount -t vfat -o iocharset=utf8,umask=000 /dev/hda2 /mnt/hda2 掛載fat32分區
mount -t ntfs -o nls=utf8,umask=000 /dev/hda3 /mnt/hda3 掛載ntfs分區
Linux-NTFS Project: http://linux-ntfs.sourceforge.net/
umount /mnt/hda3 缷載
ifconfig 顯示或設置網路設備
service network restart 重啟網卡
ifdown eth0 關閉網卡
ifup eth0 開啟網卡
clear 清屏
history 歷史記錄 !55 執行第55個指令
stty 設置終端 stty -a
fdisk /mbr 刪除GRUB
at 僅進行一次的工作排程
crontab 循環執行的例行性命令 [e]編輯,[l]顯示,[r]刪除任務
& 後台運行程序 tar -zxvf 123.tar.gz & --------->後台運行
jobs 觀看後台暫停的程序 jobs -l
fg 將後台程序調到前台 fg n ------>n是數字,可以指定進行那個程序
bg 讓工作在後台運行
kill 結束進程 kill -9 PID [9]強制結束,[15]正常結束,[l]列出可用的kill信號
ps aux 查看後台程序
top 查看後台程序 top -d 2 每兩秒更新一次 top -d 2 -p10604 觀看某個PID
top -b -n 2 > /tmp/top.txt ----->將 top 的資訊進行 2 次,然後將結果輸出到 /tmp/top.txt
pstree 以樹狀圖顯示程序 [A]以 ASCII 來連接, 列出PID, [p]列出帳號
killall 要刪除某個服務 killall -9 httpd
free 顯示內存狀態 free -m -------->以M為單位顯示
uptime 顯示目前系統開機時間
netstat 顯示網路狀態 netstat -tulnp------>找出目前系統上已在監聽的網路連線及其 PID
dmesg 顯示開機信息 demsg | more
nice 設置優先權 nice -n -5 vi & ----->用 root 給一個 nice 植為 -5 ,用於執行 vi
renice 調整已存在優先權
runlevel 顯示目前的runlevel
depmod 分析可載入模塊的相依性
lsmod 顯示已載入系統的模塊
modinfo 顯示kernel模塊的信息
insmod 載入模塊
modprobe 自動處理可載入模塊
rmmod 刪除模塊
chkconfig 檢查,設置系統的各種服務 chkconfig --list ----->列出各項服務狀態
ntsysv 設置系統的各種服務
cpio 備份文件
壓縮命令:
*.Z compress 程式壓縮的檔案;
*.bz2 bzip2 程式壓縮的檔案;
*.gz gzip 程式壓縮的檔案;
*.tar tar 程式打包的資料,並沒有壓縮過;
*.tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮
compress filename 壓縮文件 加[-d]解壓 uncompress
gzip filename 壓縮 加[-d]解壓 zcat 123.gz 查看壓縮文件內容
bzip2 -z filename 壓縮 加[-d]解壓 bzcat filename.bz2 查看壓縮文件內容
tar -cvf /home/123.tar /etc 打包,不壓縮
tar -xvf 123.tar 解開包
tar -zxvf /home/123.tar.gz 以gzip解壓
tar -jxvf /home/123.tar.bz2 以bzip2解壓
tar -ztvf /tmp/etc.tar.gz 查看tar內容
cpio -covB > [file|device] 份份
cpio -icv < [file|device] 還原</U>
Ⅵ linux系統中的頭文件#include &ls;sys⁄stat.h>
調用 stat(),fstat(), lstat(), 等函數時,需要包含 #include <sys/stat.h> 頭文件,它包含了要用到一些數據類型,結構類型。例如:
dev_t st_dev ID of device containing file
ino_t st_ino file serial number
mode_t st_mode mode of file (see below)
nlink_t st_nlink number of links to the file
uid_t st_uid user ID of file
gid_t st_gid group ID of file
dev_t st_rdev device ID (if file is character or block special)
off_t st_size file size in bytes (if file is a regular file)
time_t st_atime time of last access
time_t st_mtime time of last data modification
time_t st_ctime time of last status change
用法:包含頭文件:
#include <sys/types.h>
#include <sys/stat.h>
程序里,需要時可調用下列函數,下面是函數原型
int chmod(const char *, mode_t);
int fchmod(int, mode_t);
int fstat(int, struct stat *);
int lstat(const char *, struct stat *);
int mkdir(const char *, mode_t);
int mkfifo(const char *, mode_t);
int mknod(const char *, mode_t, dev_t);
int stat(const char *, struct stat *);
int main(){
具體的調用語句和程序可寫在這里
}
Ⅶ Linux c中用mkdir函數創建10個文件在用rmdir函數刪掉用for循環
Linux c語言可以使用系統提供的mkdir函數來創建文件夾。
1、函數原型
int mkdir(const char *path, mode_t mode);
2、參數說明:
3、需答要頭文件
#include<sys/stat.h>
4、示例
說明:函數調用試圖建立777許可權的文件夾,但是在實際程序執行時,還需要考慮umask值,最終才會得到實際的許可權。
5、執行效果如下圖所示
說明:t.c是源碼文件,有gcc進行編譯,-o是gcc的參數,有於指明編譯後輸出的文件,t為源碼經gcc編譯後生成的可執行文件。./t是執行當前目錄下的生成的可執行文件t。
Ⅷ linux中重要文件夾介紹各個文件夾各有什麼作用
以下是linux系統常見的重要目錄以及各個目作用:
/
根目錄。
包含了幾乎所的文件目錄。相當於中央系統。進入的最簡單方法是:cd /。
/boot
引導程序,內核等存放的目錄。
這個目錄,包括了在引導過程中所必需的文件,引導程序的相關文件(例如grub,lilo以及相應的配置文件以及Linux操作系統內核相關文件(例如vmlinuz等一般都存放在這里。在最開始的啟動階段,通過引導程序將內核載入到內存,完成內核的啟動(這個時候,虛擬文件系統還不存在,載入的內核雖然是從硬碟讀取的,但是沒經過Linux的虛擬文件系統,這是比較底層的東西來實現的。然後內核自己創建好虛擬文件系統,並且從虛擬文件系統的其他子目錄中(例如/sbin 和 /etc載入需要在開機啟動的其他程序或者服務或者特定的動作(部分可以由用戶自己在相應的目錄中修改相應的文件來配製。如果我們的機器中包含多個操作系統,那麼可以通過修改這個目錄中的某個配置文件(例如grub.conf來調整啟動的默認操作系統,系統啟動的擇菜單,以及啟動延遲等參數。
/sbin
超級用戶可以使用的命令的存放目錄。
存放大多涉及系統管理的命令(例如引導系統的init程序,是超級許可權用戶root的可執行命令存放地,普通用戶無許可權執行這個目錄下的命令(但是時普通用戶也可能會用到。這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin等目錄是相似的,我們要記住,凡是目錄sbin中包含的都是root許可權才能執行的,這樣就行了。後面會具體區分。
/bin
普通用戶可以使用的命令的存放目錄。
系統所需要的那些命令位於此目錄,比如ls、cp、mkdir等命令;類似的目錄還/usr/bin,/usr/local/bin等等。這個目錄中的文件都是可執行的、普通用戶都可以使用的命令。作為基礎系統所需要的最基礎的命令就是放在這里。
/lib
根目錄下的所程序的共享庫目錄。
此目錄下包含系統引導和在根用戶執行命令時候所必需用到的共享庫。做個不太好但是比較形象的比喻,點類似於Windows上面的system32目錄。理說,這里存放的文件應該是/bin目錄下程序所需要的庫文件的存放地,也不排除一些例外的情況。類似的目錄還/usr/lib,/usr/local/lib等等。
/dev
設備文件目錄。
在Linux中設備都是以文件形式出現,這里的設備可以是硬碟,鍵盤,滑鼠,網卡,終端,等設備,通過訪問這些文件可以訪問到相應的設備。設備文件可以使用mknod命令來創建,具體參見相應的命令;而為了將對這些設備文件的訪問轉化為對設備的訪問,需要向相應的設備提供設備驅動模塊(一般將設備驅動編譯之後,生成的結果是一個*.ko類型的二進制文件,在內核啟動之後,再通過insmod等命令載入相應的設備驅動之後,我們就可以通過設備文件來訪問設備了。一般來說,想要Linux系統支持某個設備,只要個東西:相應的硬體設備,支持硬體的驅動模塊,以及相應的設備文件。
/home
普通用戶的家目錄($HOME目錄。
在Linux機器上,用戶主目錄通常直接或間接地置在此目錄下。其結構通常由本地機的管理員來決定。通常而言,系統的每個用戶都自己的家目錄,目錄以用戶名作為名字存放在/home下面(例如quietheart用戶,其家目錄的名字為/home/quietheart。該目錄中保存了絕大多數的用戶文件(用戶自己的配置文件,定製文件,文檔,數據等),root用戶除外(參見後面的/root目錄。由於這個目錄包含了用戶實際的數據,通常系統管理員為這個目錄單獨掛載一個獨立的磁碟分區,這樣這個目錄的文件系統格式就可能和其他目錄不一樣了(盡管表面上看,這個目錄還是屬於根目錄的一棵子樹上),有利於數據的維護。
/root
用戶root的$HOME目錄
系統管理員(就是root用戶或超級用戶)的主目錄比較特殊,不存放在/home中,而是直接放在/root目錄下了。
/etc
全局的配置文件存放目錄。
系統和程序一般都可以通過修改相應的配置文件,來進行配置。例如,要配置系統開機的時候啟動那些程序,配置某個程序啟動的時候顯示什麼樣的風格等等。通常這些配置文件都集中存放在/etc目錄中,所以想要配置什麼東西的話,可以在/etc下面尋找我們可能需要修改的文件。一些大型套件,如X11,在 /etc 下它們自己的子目錄。系統配置文件可以放在這里或在 /usr/etc。 不過所程序總是在 /etc 目錄下查找所需的配置文件,你也可以將這些文件鏈接到目錄 /usr/etc。另外,還一個需要注意的常見現象就是,當某個程序在某個用戶下運行的時候,可能會在該用戶的家目錄中生成一個配置文件(一般這個文件最開始就是/etc下相應配置文件的拷貝,存放相應於「當前用戶」的配置,這樣當前用戶可以通過配置這個家目錄的配置文件,來改變程序的行為,並且這個行為只是該用戶特的。原因就是:一般來說一個程序啟動,如果需要讀取一些配置文件的話,它會首先讀取當前用戶家目錄的配置文件,如果存在就使用;如果不存在它就到/etc下讀取全局的配置文件進而啟動程序。就是這個配置文件不自動生成,我們手動在自己的家目錄中創建一個文件的話,也有許多程序會首先讀取到這個家目錄的文件並且以它的配置作為啟動的選項(例如我們可以在家目錄中創建vim程序的配置文件.vimrc,來配置自己的vim程序。
/usr
這個目錄中包含了命令庫文件和在通常操作中不會修改的文件。
這個目錄對於系統來說也是一個非常重要的目錄,其地位類似Windows上面的」Program Files」目錄(請原諒我可能這樣做比較不太恰當^_^。安裝程序的時候,默認就是安裝在此文件內部某個子文件夾內。輸入命令後系統默認執行/usr/bin下的程序(當然,前提是這個目錄的路徑已經被添加到了系統的環境變數中。此目錄通常也會掛載一個獨立的磁碟分區,它應保存共享只讀類文件,這樣它可以被運行Linux的不同主機掛載。
/usr/lib
目標庫文件,包括動態連接庫加上一些通常不是直接調用的可執行文件的存放位置。
這個目錄功能類似/lib目錄,理說,這里存放的文件應該是/bin目錄下程序所需要的庫文件的存放地,也不排除一些例外的情況。
/usr/bin
一般使用者使用並且不是系統自檢等所必需可執行文件的目錄。
此目錄相當於根文件系統下的對應目錄(/bin,非啟動系統,非修復系統以及非本地安裝的程序一般都放在此目錄下。
/usr/sbin
管理員使用的非系統必須的可執行文件存放目錄。
此目錄相當於根文件系統下的對應目錄(/sbin,保存系統管理程序的二進制文件,並且這些文件不是系統啟動或文件系統掛載 /usr 目錄或修復系統所必需的。
/usr/share
存放共享文件的目錄。
在此目錄下不同的子目錄中保存了同一個操作系統在不同構架下工作時特定應用程序的共享數據(例如程序文檔信息)。使用者可以找到通常放在 /usr/doc 或 /usr/lib 或 /usr/man 目錄下的這些類似數據。
/usr/include
C程序語言編譯使用的頭文件。
linux下開發和編譯應用程序所需要的頭文件一般都存放在這里,通過頭文件來使用某些庫函數。默認來說這個路徑被添加到了環境變數中,這樣編譯開發程序的時候編譯器會自動搜索這個路徑,從中找到你的程序中可能包含的頭文件。
/usr/local
安裝本地程序的一般默認路徑。
當我們下載一個程序源代碼,編譯並且安裝的時候,如果不特別指定安裝的程序路徑,那麼默認會將程序相關的文件安裝到這個目錄的對應目錄下。例如,安裝的程序可執行文件被安裝(安裝實質就是復制到了/usr/local/bin下面,此程序(可執行文件所需要依賴的庫文件被安裝到了/usr/local/lib目錄下,被安裝的軟體如果是某個開發庫(例如Qt,Gtk等那麼相應的頭文件可能就被安裝到了/usr/local/include中等等。也就是說,這個目錄存放的內容,一般都是我們後來自己安裝的軟體的默認路徑,如果擇了這個默認路徑作為軟體的安裝路徑,被安裝的軟體的所文件都限制在這個目錄中,其中的子目錄就相應於根目錄的子目錄。
/proc
特殊文件目錄。
這個目錄採用一種特殊的文件系統格式(proc格式,內核支持這種格式。其中包含了全部虛擬文件。它們並不保存在磁碟中,也不佔據磁碟空間(盡管命令ls -c會顯示它們的大小)。當您查看它們時,您實際上看到的是內存里的信息,這些文件助於我們了解系統內部信息。例如:
├1/ 關於進程1的信息目錄。每個進程在/proc 下一個名為其進程號的目錄。
├cpuinfo 處理器信息,如類型、製造商、型號和性能。
├devices 當前運行的核心配置的設備驅動的列表。
├dma 顯示當前使用的DMA通道。
├filesystems 核心配置的文件系統。
├interrupts 顯示使用的中斷,and how many of each there have been.
├ioports 當前使用的I/O埠。
├kcore 系統物理內存映象。與物理內存大小一樣,但實際不佔這么多內存;
├kmsg 核心輸出的消息。也被送到syslog 。
├ksyms 核心符號表。
├loadavg 系統」平均負載」;3個沒意義的指示器指出系統當前的工作量。
├meminfo 存儲器使用信息,包括物理內存和swap。
├moles 當前載入了哪些核心模塊。
├net 網路協議狀態信息。
├self 到查看/proc 的程序的進程目錄的符號連接。
├stat 系統的不同狀態
├uptime 系統啟動的時間長度。
└version 核心版本。
/opt
可擇的文件目錄。
這個目錄表示的是可擇的意思,些自定義軟體包或者第方工具,就可以安裝在這里。比如在Fedora Core 5.0中,OpenOffice就是安裝在這里。些我們自己編譯的軟體包,就可以安裝在這個目錄中;通過源碼包安裝的軟體,可以把它們的安裝路徑設置成/opt這樣來安裝。這個目錄的作用一點類似/usr/local。
/mnt
臨時掛載目錄。
這個目錄一般是用於存放掛載儲存設備的掛載目錄的,比如磁碟,光碟機,網路文件系統等,當我們需要掛載某個磁碟設備的時候,可以把磁碟設備掛載到這個目錄上去,這樣我們可以直接通過訪問這個目錄來訪問那個磁碟了。一般來說,我們最好在/mnt目錄下面多建立幾個子目錄,掛載的時候掛載到這些子目錄上面,因為通常我們可能不僅僅是掛載一個設備吧?
/media
掛載的媒體設備目錄。
掛載的媒體設備目錄,一般外部設備掛載到這里,例如cdrom等。比如我們插入一個U盤,我們一般會發現,Linux自動在這個目錄下建立一個disk目錄,然後把U盤掛載到這個disk目錄上,通過訪問這個disk來訪問U盤。
/var
內容經常變化的目錄。
此目錄下文件的大小可能會改變,如緩沖文件,日誌文件,緩存文件,等一般都存放在這里。
/tmp
臨時文件目錄。
該目錄存放系統中的一些臨時文件,文件可能會被系統自動清空。的系統直接把tmpfs類型的文件系統掛載到這個目錄上,tmpfs文件系統由Linux內核支持,在這個文件系統中的數據,實際上是內存中的,由於內存的數據斷電易失,當系統重新啟動的時候我們就會發現這個目錄被清空了。
/lost+found
恢復文件存放的位置。
當系統崩潰的時候,在系統修復過程中需要恢復的文件,可能就會在這里被找到了,這個目錄一般為空。
另外,有些目錄初學者容易混淆,這里簡單區分一下:
/bin,/sbin與/usr/bin,/usr/sbin:
/bin一般存放對於用戶和系統來說「必須」的程序(二進制文件)。
/sbin一般存放用於系統管理的「必需」的程序(二進制文件),一般普通用戶不會使用,根用戶使用。
/usr/bin一般存放的只是對用戶和系統來說「不是必需的」程序(二進制文件)。
/usr/sbin一般存放用於系統管理的系統管理的不是必需的程序(二進制文件)。
/lib與/usr/lib:
/lib和/usr/lib的區別類似/bin,/sbin與/usr/bin,/usr/sbin。
/lib一般存放對於用戶和系統來說「必須」的庫(二進制文件)。
/usr/lib一般存放的只是對用戶和系統來說「不是必需的」庫(二進制文件)。
Ⅸ Linux 9.0 /var/cache 目錄 求救
搞電腦的人總想知道自己的系統里到底有些什麼東西,於是我就在Linux的根目錄下運行ls -l(列目錄命令),哇,一大串,這許多目錄都放些什麼呢?我硬著頭皮往裡鑽,功夫不負有心人,終於將這迷宮的秘密揭開了。在此公布天下:
/bin
bin是binary的縮寫。這個目錄沿襲了UNIX系統的結構,存放著使用者最經常使用的命令。例如cp、ls、cat,等等。
/boot
這里存放的是啟動Linux時使用的一些核心文件。
/dev
dev是device(設備)的縮寫。這個目錄下是所有Linux的外部設備,其功能類似DOS下的.sys和Win下的.vxd。在Linux中設備和文件是用同種方法訪問的。例如:/dev/hda代表第一個物理IDE硬碟。
/etc
這個目錄用來存放系統管理所需要的配置文件和子目錄。
/home
用戶的主目錄,比如說有個用戶叫wang,那他的主目錄就是/home/wang也可以用~wang表示。
/lib
這個目錄里存放著系統最基本的動態鏈接共享庫,其作用類似於Windows里的.dll文件。幾乎所有的應用程序都須要用到這些共享庫。
/lost+found
這個目錄平時是空的,當系統不正常關機後,這里就成了一些無家可歸的文件的避難所。對了,有點類似於DOS下的.chk文件。
/mnt
這個目錄是空的,系統提供這個目錄是讓用戶臨時掛載別的文件系統。
/proc
這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。也就是說,這個目錄的內容不在硬碟上而是在內存里。
/root
系統管理員(也叫超級用戶)的主目錄。作為系統的擁有者,總要有些特權啊!比如單獨擁有一個目錄。
/sbin
s就是Super User的意思,也就是說這里存放的是系統管理員使用的管理程序。
/tmp
這個目錄不用說,一定是用來存放一些臨時文件的地方了。
/usr
這是最龐大的目錄,我們要用到的應用程序和文件幾乎都存放在這個目錄下。其中包含以下子目錄;
/usr/X11R6
存放X-Window的目錄;
/usr/bin
存放著許多應用程序;
/usr/sbin
給超級用戶使用的一些管理程序就放在這里;
/usr/doc
這是Linux文檔的大本營;
/usr/include
Linux下開發和編譯應用程序需要的頭文件,在這里查找;
/usr/lib
存放一些常用的動態鏈接共享庫和靜態檔案庫;
/usr/local
這是提供給一般用戶的/usr目錄,在這里安裝軟體最適合;
/usr/man
man在Linux中是幫助的同義詞,這里就是幫助文檔的存放目錄;
/usr/src
Linux開放的源代碼就存在這個目錄,愛好者們別放過哦!
/var
這個目錄中存放著那些不斷在擴充著的東西,為了保持/usr的相對穩定,那些經常被修改的目錄可以放在這個目錄下,實際上許多系統管理員都是這樣乾的。順帶說一下系統的日誌文件就在/var/log目錄中。
Ⅹ mkdir函數-linux
mkdir函數-linuxmkdir函數頭文件庫:#include
<sys/stat.h>#include
<sys/types.h>函數原型:int
mkdir(const
char
*pathname,
mode_t
mode);函數說明:mkdir()函數以mode方式創建一個以參數pathname命名的目錄,mode定義新創建目錄的許可權。返回值:若目錄創建成功,則返回0;否則返回-1,並將錯誤記錄到全局變數errno中。mode方式:S_IRWXU
00700許可權,代表該文件所有者擁有讀,寫和執行操作的許可權S_IRUSR(S_IREAD)
00400許可權,代表該文件所有者擁有可讀的許可權S_IWUSR(S_IWRITE)
00200許可權,代表該文件所有者擁有可寫的許可權S_IXUSR(S_IEXEC)
00100許可權,代表該文件所有者擁有執行的許可權S_IRWXG
00070許可權,代表該文件用戶組擁有讀,寫和執行操作的許可權S_IRGRP
00040許可權,代表該文件用戶組擁有可讀的許可權S_IWGRP
00020許可權,代表該文件用戶組擁有可寫的許可權S_IXGRP
00010許可權,代表該文件用戶組擁有執行的許可權S_IRWXO
00007許可權,代表其他用戶擁有讀,寫和執行操作的許可權S_IROTH
00004許可權,代表其他用戶擁有可讀的許可權S_IWOTH
00002許可權,代表其他用戶擁有可寫的許可權S_IXOTH
00001許可權,代表其他用戶擁有執行的許可權