1被饿、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關(guān)示例演示搪搏。
cp命令:實現(xiàn)文件復(fù)制
源文件:目標(biāo)文件:
AME
?????? COPY - copy data between a file and atable
SYNOPSIS
?????? COPY table_name [ ( column_name [, ...]) ]
?????????? FROM { 'filename' | STDIN }
?????????? [ [ WITH ] ( option [, ...] ) ]
?????? COPY { table_name [ ( column_name [,...] ) ] | ( query ) }
?????????? TO { 'filename' | STDOUT }
?????????? [ [ WITH ] ( option [, ...] ) ]
單源復(fù)制:cp 【option】….【-T】SOURCE DEST
如果DEST不存在狭握,則事前創(chuàng)建此文件,并復(fù)制源文件的數(shù)據(jù)流至DEST中疯溺。
如果DEST存在:
(1)如果DEST是非目錄文件哥牍,可能有數(shù)據(jù)毕泌,結(jié)果是原來文件的內(nèi)容會被覆蓋;則會覆蓋目標(biāo)文件嗅辣;
(2)如果DEST是目錄文件撼泛,則先在DEST目錄下創(chuàng)建一個與源文件同名的文件,并復(fù)制其數(shù)據(jù)澡谭;
多源復(fù)制:cp 【option】…SOURCE
….Directory
Cp 【option】…-t Directory? SOURCE….
(1)如果DEST不存在愿题,錯誤;
(2)如果DEST存在蛙奖,
如果DEST是非目錄文件潘酗,錯誤;
如果DEST是目錄文件:分別復(fù)制每個文件至目錄中雁仲,并保持原名仔夺;
NAME
?????? cp - copy files and directories
SYNOPSIS
?????? cp [OPTION]... [-T] SOURCE DEST
?????? cp [OPTION]... SOURCE... DIRECTORY
?????? cp [OPTION]... -t
DIRECTORY
SOURCE...
參數(shù):
-i:交互式復(fù)制:即覆蓋之前提醒用戶確認(rèn)
-f:強制覆蓋目標(biāo)文件
-r:或-R:遞歸復(fù)制目錄;
-d:復(fù)制符號鏈接文件本身攒砖,而非其指向的源文件
-a:-dR? 歸檔實現(xiàn)歸檔缸兔;
--preserv=
mode:權(quán)限
ownership:屬主和屬組
timestamp:時間戳
comntext:安全標(biāo)簽
xatter:擴展屬性;
links:符號鏈接
all:上述所有屬性
范例1:
[root@gz01-sys-sdn-test01 mytest3]# cp /etc/issue ./
[root@gz01-sys-sdn-test01 mytest3]# ll
total 4
-rw-r--r-- 1 root root 23 Dec 18 16:48 issue
[root@gz01-sys-sdn-test01 mytest3]# cp /etc/issue hi.txt
[root@gz01-sys-sdn-test01 mytest3]# ll
total 8
-rw-rw-rw- 1 root root?0 Dec 18 16:00 1.txt
-rw-r--r-- 1 root root 23 Dec 18 16:49 hi.txt
范例2:
#
cp -r /var/log ./
范例3:
[root@gz01-sys-sdn-test01 mytest3]# cp /etc/issue
./abc
[root@gz01-sys-sdn-test01 mytest3]# cp -a
/etc/issue ./abc
cp: overwrite ‘./abc’? y
[root@gz01-sys-sdn-test01 mytest3]#
[root@gz01-sys-sdn-test01 mytest3]#
[root@gz01-sys-sdn-test01 mytest3]# ll -l abc
-rw-r--r-- 1 root root 23 Dec? 9? 2015abc
[root@gz01-sys-sdn-test01 mytest3]# ll -l
/etc/issue
-rw-r--r-- 1 root root 23 Dec? 9? 2015/etc/issue
mv命令:用于移動文件或目錄
NAME
?????? mv - move (rename) files
SYNOPSIS
?????? mv [OPTION]... [-T] SOURCE DEST
?????? mv [OPTION]... SOURCE... DIRECTORY
?????? mv [OPTION]... -t DIRECTORY SOURCE...
常用選項:
-i:交互式
-f:force
rm命令:remove 刪除文件
NAME
?????? rm - remove files or directories
SYNOPSIS
?????? rm [OPTION]... FILE...
?# rm -rf
常用選項:
-i:interactive 交互式
-f:force
-r:recursive
刪除目錄:rm -rf?/PATH/TO/DIR
危險命令:rm -rf? /
注意:所有不用的文件建議不要直接刪除吹艇,mv到某個目錄
2惰蜜、使用命令行展開功能,創(chuàng)建/tmp/a1,/tmp/a2, /tmp/a1/a, /tmp/a1/b受神,在/tmp目錄下創(chuàng)建目錄:x_y, x_z, q_y, q_z
mkdir -pv
/tmp/{a1/{a,b},a2}
tree /tmp/
3抛猖、文件的元數(shù)據(jù)信息有哪些,分別表示什么含義鼻听,如何查看财著?如何修改文件的時間戳信息。
1.文件的元數(shù)據(jù)是指文件的屬性撑碴、大小撑教、創(chuàng)建時間、訪問時間灰羽、屬主屬組等信息驮履。
文件的數(shù)據(jù)分兩種:一種元數(shù)據(jù),既屬性數(shù)據(jù)廉嚼;一種就是數(shù)據(jù)本身玫镐;可使用stat命令查看文件的元數(shù)據(jù):
]# stat /etc/passwd
文件:"/etc/passwd"
大小:2483 塊:8 IO 塊:4096 普通文件
設(shè)備:fd00h/64768d Inode:136755684 硬鏈接:1
權(quán)限:(0644/-rw-r–r–) Uid:( 0/ root) Gid:(
0/ root)
環(huán)境:systemu:objectr:passwdfilet:s0
最近訪問:2016-09-22 22:07:14.897045766 +0800
最近更改:2016-09-20 18:10:23.223086880 +0800
最近改動:2016-09-20 18:10:23.227086888 +0800
創(chuàng)建時間:-
其中:
file:文件名怠噪;
size:文件大小
block:文件占了多少個數(shù)據(jù)塊
IO
Block:文件所占數(shù)據(jù)塊的塊大小
Device:硬件恐似,既說明該文件在硬盤的那個柱面
Inode:節(jié)點號
links:鏈接
Access(第一個):權(quán)限
Uid:該文件所屬的屬主
Gid:該文件所屬的屬組
context:安全上下文
Access(第二個):文件上一次的訪問時間
Modify:文件上一次修改的時間
Change:文件上一次屬性更改的時間
2)修改文件的時間戳信息:
可以使用touch命令更改文件的時間戳:
狀態(tài)信息有3個時間戳:
Access time:訪問時間:atime:通過cat,more等讀取其文件內(nèi)容
Modify time:修改時間:mtime:即:改變文件內(nèi)容
Change time:改變時間:ctime:即:元數(shù)據(jù)發(fā)生改變
touch命令:文件的時間戳管理工具
NAME
?????? touch - change file timestamps
SYNOPSIS
?????? touch [OPTION]... FILE...
修改時間戳傍念;
-c:指定的文件路徑不存在時不予創(chuàng)建
-a:僅修改access time
-m:僅修改modify time
-t:STAMP:
[[CC]YY]MMDDhhmm[.ss]
4矫夷、在/tmp目錄下創(chuàng)建以tfile開頭葛闷,后跟當(dāng)前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22双藕。
#
touch tfile-$(date +%F-%H-%M-%S)
5淑趾、復(fù)制/etc目錄下所有以p開頭,以非數(shù)字結(jié)尾的文件或目錄到/tmp/mytest1目錄中忧陪。
# mkdir /tmp/mytest1
# cp -r
/etc/p*[^0-9] /tmp/mytest1
6扣泊、創(chuàng)建用戶tom,指定UID為5001,指定家目錄為/tmp/tom,
指定shell為/bin/zsh, 指定基本組為tom嘶摊,附加組為jack
[root@gz01-sys-sdn-test01
test1]# useradd tom -u 5001 -d /tmp/tom -s /bin/zsh -G jack
[root@gz01-sys-sdn-test01
test1]# tail -1 /etc/passwd
tom:x:5001:5004::/tmp/tom:/bin/zsh
[root@gz01-sys-sdn-test01
test1]# grep jack /etc/group
jack:x:5003:tom
7延蟹、常用的用戶以及文件管理命令有哪些,并演示命令以及用法叶堆。
相關(guān)命令:useradd阱飘;userdel;usermod虱颗;passwd
groupadd沥匈;groupdel;groupmod上枕;gpasswd咐熙;
chage弱恒;chsh辨萍;id;su
1返弹、groupadd命令:添加組:
NAME
?????? groupadd - create a new group
SYNOPSIS
?????? groupadd [options] group
groupadd 【選項】group_name
groupadd [選項] 組
創(chuàng)建一個新的組锈玉。Groupadd命令使用命令行中指定的值加上系統(tǒng)默認(rèn)值創(chuàng)建新的組賬戶。新組將根據(jù)需要輸入系統(tǒng)义起。
groupadd [-g gid] [-o]]
[-r] [-f] groupname
-g gid:指定組ID號拉背。
-o:允許組ID號,不必惟一默终。
-r:加入組ID號椅棺,低于499系統(tǒng)賬號。
-f:加入已經(jīng)有的組時齐蔽,發(fā)展程序退出
-g GID:指定 GID:默認(rèn)是上一個組的GID+1
-r:創(chuàng)建系統(tǒng)組
范例1:
[root@gz01-sys-sdn-test01
test1]# groupadd leader
[root@gz01-sys-sdn-test01
test1]# tail -2 /etc/group
mytest1:x:3007:
leader:x:3008:
范例2:
參數(shù):-g- 指定GID
建立組ID(GID)是344的新組,會在/etc/passwd文件中顯示
[root@gz01-sys-sdn-test01
test1]# groupadd -g 314 mysql
[root@gz01-sys-sdn-test01
test1]# tail -2 /etc/group
leader:x:3008:
mysql:x:314:
2两疚、groupmod命令:修改組屬性:
NAME
?????? groupmod - modify a group definition onthe system
SYNOPSIS
?????? groupmod [options] GROUP
參數(shù):groupmod【選項】GOUP
-g:GID:修改組的GID;
-n:new_name:修改組名含滴;
groupmod
用于修改系統(tǒng)已存在的組賬號诱渤。格式如下:groupmod [options] GROUP
范例1:
將
leader 組更名為 leaders
#
groupmod -n leaders leader
#
grep leader /etc/group
leaders:x:504:
將
leaders 組的 GID 改為 3000
groupmod -g 3000 leaders
grep leader /etc/group
leaders:x:3000:
3、groupdel命令:刪除組:
groupdel 用于刪除系統(tǒng)已存在的組賬號谈况。格式如下:groupdel GROUP
其中:GROUP 為要刪除的組賬戶名
參數(shù):groupdel【選項】GOUP
范例1:
[root@gz01-sys-sdn-test01
test1]# groupdel mysql1
[root@gz01-sys-sdn-test01
test1]# tail -2 /etc/group
mysql:x:314:
cjh:x:344:
[root@gz01-sys-sdn-test01
test1]# grep mysql1 /etc/group
[root@gz01-sys-sdn-test01
test1]# grep mysql1 /etc/gshadow
4勺美、useradd命令:創(chuàng)建用戶
useradd命令用來建立用戶帳號和創(chuàng)建用戶的起始目錄递胧,使用權(quán)限是超級用戶。
NAME
?????? useradd - create a new user or updatedefault new user information
SYNOPSIS
?????? useradd [options] LOGIN
?????? useradd -D
?????? useradd -D [options]
格式:
useradd [-d home] [-s shell] [-c
comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
useradd [-u UID] [-g 初始群組] [-G 次要群組] [-mM]??? [-c 說明欄] [-d 家目錄絕對路徑] [-s shell] 使用者賬號名
useradd參數(shù):
Useradd【選項】登錄名
-u赡茸,--uid UID:指定UID:
-g缎脾,--gid Goup :指定基本組ID;此組需要事先存在占卧;否則創(chuàng)建可能會失敗
-c赊锚,--comment:指明注釋信息,
-G屉栓,--groups GOUP1【舷蒲,GROUP2,….[GROUP? n]]]:指明用戶所屬的附加組,多個組之間使用逗號 進行分隔友多;
-d:--home HOME_DIR:以指定的路徑為用戶的家目錄牲平,通過復(fù)制/etc/skel此目錄并重命名實現(xiàn),指定的家目錄路徑如果事先存在域滥,則不會為用戶復(fù)制環(huán)境配置文件纵柿;
-s:--shell SHELL:指定用戶的默認(rèn)shell,可用的所有shell列表/etc/shell文件
-r:--system:創(chuàng)建系統(tǒng)用戶启绰;
Useradd -D:線上創(chuàng)建用戶的默認(rèn)配置
Useradd -D 選項:修改默認(rèn)選項的值
]#
cat /etc/login.defs
注意:創(chuàng)建用戶時的諸多默認(rèn)配置文件為/etc/login.defs
修改的結(jié)果保存于/etc/default/useradd 文件中昂儒;
范例1:新增用戶docker1
[root@gz01-sys-sdn-test01
shell]# useradd docker1
[root@gz01-sys-sdn-test01
shell]# tail -1 /etc/passwd
docker1:x:1005:2001::/home/docker1:/bin/bash
[root@gz01-sys-sdn-test01
shell]# tail -1 /etc/group
docker1:x:2001:
范例2:指定用戶的-u,--uid UID:指定UID
[root@gz01-sys-sdn-test01
shell]# useradd -u 3000 openstack
[root@gz01-sys-sdn-test01
shell]# tail -1 /etc/passwd
openstack:x:3000:3000::/home/openstack:/bin/bash
范例3:-g委可,--gid Goup :指定基本組ID渊跋;此組需要事先存在;否則創(chuàng)建可能會失敗
-g:新賬戶主組的名稱或ID着倾,需要存在拾酝;
備注:-g?:后面接的那個組名就是我們上面提到的 initial group ,該群組的 GID 會被放置到 /etc/passwd 的第四個字段內(nèi)。
[root@gz01-sys-sdn-test01
test1]# useradd -g cloud cloudstack
useradd: group 'cloud'
does not exist
[root@gz01-sys-sdn-test01
test1]# groupadd cloud
[root@gz01-sys-sdn-test01
test1]# tail -1 /etc/group
cloud:x:3012:
[root@gz01-sys-sdn-test01
test1]# useradd -g cloud cloudstack
[root@gz01-sys-sdn-test01
test1]# tail -5 /etc/passwd
cloudstack:x:3010:3012::/home/cloudstack:/bin/bash
[root@gz01-sys-sdn-test01
test1]# useradd test2
[root@gz01-sys-sdn-test01
test1]# grep 'test2' /etc/passwd
test2:x:3013:3015::/home/test2:/bin/bash
[root@gz01-sys-sdn-test01
test1]# grep 'test2' /etc/group
test2:x:3015:
-G會覆蓋現(xiàn)有組卡者,所以如果追加附加組通常使用-aG蒿囤,a表示append
范例4:
-G,--groups GOUP1【崇决,GROUP2,….[GROUP? n]]]:指明用戶所屬的附加組材诽,多個組之間使用逗號 進行分隔;
備注:-G:是用戶加入到現(xiàn)有的組中恒傻;
注意:乍一看脸侥,-g與-G沒有什么區(qū)別,其實-g是會在你的passwd的第四項當(dāng)中寫入你指定的組碌冶,但是在/etc/group當(dāng)中不會新建一個關(guān)于你的用戶名的內(nèi)容項湿痢,而-G則不同,它會在useradd
visitor的基礎(chǔ)上再把你加入到-G后面指定的群組當(dāng)中,這是在/etc/group當(dāng)中存在你的用戶名的內(nèi)容項譬重,這就是兩者之間的差別拒逮。
[root@gz01-sys-sdn-test01
shell]# useradd -G mygrp archlinux
[root@gz01-sys-sdn-test01
shell]# tail -1 /etc/passwd
archlinux:x:3003:3003::/home/archlinux:/bin/bash
[root@gz01-sys-sdn-test01
shell]#
[root@gz01-sys-sdn-test01
shell]# tail /etc/group
gentoo:x:1002:
slackware:x:1003:
centos:x:1004:
leader:x:1005:
grp1:x:2000:
docker1:x:2001:
openstack:x:3000:
mogilefs:x:3001:
mygrp:x:3002:archlinux
archlinux:x:3003:
范例5:
-d:--home HOME_DIR:以指定的路徑為用戶的家目錄,通過復(fù)制/etc/skel此目錄并重命名實現(xiàn)臀规,指定的家目錄路徑如果事先存在滩援,則不會為用戶復(fù)制環(huán)境配置文件;
[root@gz01-sys-sdn-test01shell]# useradd -d /tmp/moosefs moosefs
[root@gz01-sys-sdn-test01
shell]# tail -1 /etc/passwd
moosefs:x:3005:3005::/tmp/moosefs:/bin/bash
[root@gz01-sys-sdn-test01
shell]# ls /tmp
conf.d???????????????sysstat-10.1.5-12.el7.x86_64.rpm
cpumhz???????????????systemd-private-a3a3085122b84598a500b5a2f8eaa7a7-named.service-ZaohWv
fstab.out????????????systemd-private-a3a3085122b84598a500b5a2f8eaa7a7-ntpd.service-e0WWcC
function????????????? system.rel
functions.out???????? system-release
issue2.txt??????????? test
issue3.err??????????? tmux-0
issue3.out??????????? x
issue.tee????????????yum_save_tx.2018-12-05.05-01.k8GBRj.yumtx
issue.txt????????????yum_save_tx.2018-12-06.04-46.3T93JG.yumtx
kernel_log_push.flag? yum_save_tx.2018-12-07.04-53.Zvevik.yumtx
kernel_log_push.log?? yum_save_tx.2018-12-08.05-00.cixgHM.yumtx
log??????????????????yum_save_tx.2018-12-09.04-44.W5JTzT.yumtx
magedu.com???????????yum_save_tx.2018-12-10.04-44.YUEuI_.yumtx
man??????????????????yum_save_tx.2018-12-11.04-54.hUw76e.yumtx
moosefs??????????????yum_save_tx.2018-12-12.04-59.mCTZSh.yumtx
mysysroot????????????yum_save_tx.2018-12-13.04-47.AoSog_.yumtx
Scripts??????????????yum_save_tx.2018-12-14.05-00.NWZsr6.yumtx
[root@gz01-sys-sdn-test01
shell]# ls /tmp/moosefs/ -a
.? ..?.bash_logout? .bash_profile? .bashrc?.mozilla? .zshrc
范例6:-s:--shell SHELL:指定用戶的默認(rèn)shell塔嬉,可用的所有shell列表/etc/shell文件
[root@gz01-sys-sdn-test01
shell]# useradd -s /bin/csh keystone
[root@gz01-sys-sdn-test01
shell]# tail -1 /etc/passwd
keystone:x:3007:3007::/home/keystone:/bin/csh
5玩徊、usermod命令:修改用戶屬性
NAME
?????? usermod - modify a user account
SYNOPSIS
?????? usermod [options] LOGIN
參數(shù):usermod【選項】登錄
-u,--uid UID:修改用戶的ID為此處指定的新UID
-g,--gid GROUP:修改用戶所屬的基本組谨究;
-G恩袱,---G, --groups
GROUP1[,GROUP2,...[,GROUPN]]]
修改用戶所屬的附加組,原來的附加組會被覆蓋胶哲,如果不覆蓋畔塔,則使用-a選項
-a,--append:與G一起使用鸯屿,用于為用戶追加新的附加組澈吨;
-c,--comment
COMMENT:修改注釋信息寄摆;
-d谅辣,--home HOME_DIR:修改用戶的家目錄;用戶原有的文件不會被轉(zhuǎn)移至新位置婶恼;
-m桑阶,--move-home,只能與-d選項一起使用熙尉,用于將原來的家目錄移動為新的家目錄联逻;
-l搓扯,--login
NEW_LOGIN:修改用戶名检痰;
-s,--shell SHELL:修改用戶的默認(rèn)shell锨推;
-L铅歼,--lock:鎖定用戶密碼;
-U换可,--unlock:解鎖用戶的密碼:
范例1:
-G椎椰,---G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
修改用戶所屬的附加組,原來的附加組會被覆蓋沾鳄,如果不覆蓋慨飘,則使用-a選項
[root@gz01-sys-sdn-test01
test1]# usermod -G sudo tester2
[root@gz01-sys-sdn-test01
test1]# grep 'sudo' /etc/group
sudo:x:3021:tester5,tester2
范例2:-l,--login NEW_LOGIN:修改用戶名;
[root@gz01-sys-sdn-test01
test1]# usermod -l testuser22 tester2
[root@gz01-sys-sdn-test01
test1]# grep 'testuser22' /etc/passwd
testuser22:x:3019:100::/home/tester2:/bin/bash
范例3:
-G瓤的,---G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
修改用戶所屬的附加組休弃,原來的附加組會被覆蓋,如果不覆蓋圈膏,則使用-a選項
[root@gz01-sys-sdn-test01
test1]# grep 'sudo' /etc/group
sudo:x:3021:tester5,testuser22
[root@gz01-sys-sdn-test01
test1]# usermod tester5 -G mysql
[root@gz01-sys-sdn-test01
test1]# grep 'mysql' /etc/group
mysql:x:314:tester5
[root@gz01-sys-sdn-test01
test1]# grep 'sudo' /etc/group
sudo:x:3021:testuser22
范例4:
[root@gz01-sys-sdn-test01
test1]# usermod -a -G sudo tester3
[root@gz01-sys-sdn-test01
test1]# grep 'sudo' /etc/group
sudo:x:3021:testuser22,tester3
6塔猾、userdel命令:刪除用戶
Userdel 【選項】登錄
-r:刪除用戶時一并刪除其家目錄
范例1:-r:刪除用戶時一并刪除其家目錄
#
userdel -r tester10
6、passwd命令:密碼管理命令
NAME
?????? passwd - update user's authenticationtokens
SYNOPSIS
?????? passwd [-k] [-l] [-u [-f]] [-d] [-e] [-nmindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
(1)passwd:修改用戶自己的密碼稽坤,
(2)passwd USERNAME:修改指定用戶的密碼丈甸,僅root有此權(quán)限
-l, -u:鎖定和解鎖用戶;
-d:清除用戶密碼串尿褪;
-e:過期期限睦擂;日期;
-i:非活動期限杖玲;
-n:密碼的最短使用期限祈匙;
-w:警告期限;
--stdin:
echo "password" | passwd?--stdin username
范例1:
[root@gz01-sys-sdn-test01
shell]# echo "magedu" | passwd --stdin docker
Changing
password for user docker.
passwd:
Authentication token manipulation error
7天揖、gpasswd命令:組密碼管理命令
組密碼文件:
]#
cat /etc/gshadow
gpasswd【選項】group
-a USENAME:向組中添加用戶夺欲;
-d USERNAME:從組中移除用戶
8、newgrp命令:臨時切換指定的組為基本組
Newgrp【-】【group】
-:會模擬用戶重新登錄以實現(xiàn)重新初始化其工作環(huán)境
9今膊、chage命令:更改用戶密碼過期信息
Chage【選項】登錄
-d:
-w:
-E:
-m
-M
10些阅、id命令:顯示用戶的真實有效ID
Id【選項】。斑唬。市埋。【user】
-u:僅顯示有效的ID
-g:僅僅顯示用戶的基本組ID
-G:僅顯示用戶所屬的所有組的ID
-n:顯示名字而非ID
11恕刘、su命令:swtich user:切換用戶
登錄式切換:會通過讀取目標(biāo)用戶的配置文件來重新初始化
Su - username
Su -l username
非登錄式切換:不會讀取目標(biāo)用戶的配置文件進行初始化
Su usename
注意:管理員可無密碼切換至其他任何用戶
-c 'command' :僅以指定用戶的身份運行此處指定的命令
[root@gz01-sys-sdn-test01
shell]# su - docker -c 'whoami'