Linux常用命令大全:
成都创新互联公司于2013年开始,公司以成都做网站、成都网站设计、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户上1000家,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。
系统信息
arch 显示机器的处理器架构(1)
uname -m 显示机器的处理器架构(2)
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 – (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
date 显示系统日期
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 – 月日时分年.秒
clock -w 将时间修改保存到 BIOS
关机 (系统的关机、重启以及登出 )
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hours:minutes 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
文件和目录
cd /home 进入 ‘/ home’ 目录’
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd – 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls *[0-9]* 显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的树形结构(1)
lstree 显示文件和目录由根目录开始的树形结构(2)
mkdir dir1 创建一个叫做 ‘dir1′ 的目录’
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除一个叫做 ‘file1′ 的文件’
rmdir dir1 删除一个叫做 ‘dir1′ 的目录’
rm -rf dir1 删除一个叫做 ‘dir1′ 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
touch -t 0712250000 file1 修改一个文件或目录的时间戳 – (YYMMDDhhmm)
file file1 outputs the mime type of the file as text
iconv -l 列出已知的编码
iconv -f fromEncoding -t toEncoding inputFile outputFile creates a new
from the given input file by assuming it is encoded in fromEncoding and
converting it to toEncoding.
find . -maxdepth 1 -name *.jpg -print -exec convert “{}” -resize 80×60
“thumbs/{}” ; batch resize files in the current directory and send them to a
thumbnails directory (requires convert from Imagemagick)
文件搜索
find / -name file1 从 ‘/’ 开始进入根文件系统搜索文件和目录
find / -user user1 搜索属于用户 ‘user1′ 的文件和目录
find /home/user1 -name *.bin 在目录 ‘/ home/user1′ 中搜索带有’.bin’ 结尾的文件
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
find / -name *.rpm -exec chmod 755 ‘{}’ ; 搜索以 ‘.rpm’ 结尾的文件并定义其权限
find / -xdev -name *.rpm 搜索以 ‘.rpm’ 结尾的文件,忽略光驱、捷盘等可移动设备
locate *.ps 寻找以 ‘.ps’ 结尾的文件 – 先运行 ‘updatedb’ 命令
whereis halt 显示一个二进制文件、源码或man的位置
which halt 显示一个二进制文件或可执行文件的完整路径
建立自己的目录和文件
mkdir 建立目录
mkdir -p 建立多级目录
touch 建立文件
touch -d 20080808 修改文件日期
touch -d 1215 修改文件时间
指定时间的修改方法
linux里没有记录文件的创建时间
# stat big_file
Access: 2009-05-02 12:13:00.000000000 +0800 访问时间 cat
Modify: 2009-05-02 12:13:00.000000000 +0800 内容修改时间 echo
Change: 2009-05-02 17:41:55.000000000 +0800 属性修改时间 chmod
touch -m -t 200809101112.13 bigfile
修改文件内容
echo "abcd" file_name
vim 编辑器的增删改存
gedit
复制文件 cp src dest
-r 包含子目录和文件
-a 保持文件权限 包含子目录和文件 保持文件连接
-f 强制覆盖 不提示
删除文件 rm -r 递归删除
-f 强制删除 不提示
移动改名 mv old new
-i 提示
-f 强制覆盖 不提示
学会查看文件的属性后,我们来学习怎么查看文件内容
cat -n 打印行号
cat -b 同上,但排除空行
分屏查看
more 只能向下
less 上下均可
more 和 less 的搜索功能
/ 向下搜
? 向上搜
n 下一个
N 上一个
head 查看文件头
-n X 指定行数
默认10行
tail 查看文件尾
-n X 指定行数
-f 时时监控文件变化
rev 左右颠倒
tac 上下颠倒
cd 回到家目录
cd / 目的目录
cd - 上次工作目录
cd . 当前目录
cd ..上级目录
相对路径和绝对路径
我在哪?
pwd
tree 以树状结构显示
ls 介绍颜色的用处
为什么会有颜色 因为有参数
长参数 短参数
如何查看文件的详细属性
文件类型
-普通文件 d目录 b块 c字符 l连接 p管道 s套接字
如何查看隐藏文件 ls -a
没有颜色时 我们该怎么办? ls -F
常用组合 ls -lthr
系统为我们定义的常用组合 ll l.
自定义 alias lt='ls -lthr'
在linux中,我们在编辑时需要对文档编辑或者一些信息的显示加上颜色,增强阅读的效果
格式: echo -e "\033[字体颜色;字背景颜色m字符串\033[0m"
要显示什么颜色,优先是先判断位置,按语法上来说,应该是先字体色,然后是背景色,但是字体色的地方数值为43,所以判断为背景的颜色,而在后面的31本应该是背景色,结果数值31位字体的颜色,所以显示的效果是字体的颜色为红色,而不是背景红色,假设这个31是数值41,则表示背景的为红色,整体的效果就是红色背景,字体处没有颜色,为默认的白色,且效果是闪烁。
其中设置颜色的格式为:\033[ ; m …… \033[0m,其中ascii code是对颜色调用的始末.也可以表示为\e[F;Bm…….\e[0m
字背景颜色范围: 40--49 字颜色: 30--39
例如显示红色,其中红色^[[31mred^[[0m其中^[是在插入编辑模式下按键进去额ctr+v+[这三个按键输入的。
假设写在文档tt1写入对应的语句来查看,通过cat tt1验证效果
^[[31mred^[[0m :表示对应的字是红色字体,没有底色,如下截图
^[[31mred^[[44m:表示红色字体,底色为紫红色。假设写在文档tt1,后面cat tt1.这个屏幕底色都是蓝色,字都是红色如下截图
^[[31;44mred^[[0m:表示红色字体,字和屏幕的底色为蓝色,背景没有底色,和^[[31mred^[[44m效果一样。如下截图
^[[31;44mred^[[44m:表示红色字体,底色都是蓝色
在命令行里输入命令:echo -e '\e[43;31;4mmagedu\e[0m',得到如下的效果
PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。在终端输入命令:echo $PS1,就会输出PS1的定义:
默认的PS1变量值为 : PS1="[\u@\h \W]$"
PS1的定义中个常用的参数的含义如下:
给PS1赋值如下:
PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\\$\[\e[0m"
这里需要注意,颜色的结束调用符号,要放在最后面,否则当使用命令history查看历史命令时,会出现各种异常的显示
正确的结果得到的结果如下图
当把结束符调整到$前面,如PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\[\e[0m\\$",使用history查找的时候出现了如下的异常显示
注意,这里赋值的时候要用单引号才能得到要的效果,只是单纯改变颜色,其他值不改变,如果赋值用双引号,如下
错误写法:PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\$"
得到的效果如下:
如果是root时,提示符为:# ,普通用户则为:$,但是双引号后root的提示符为$,是不对的
解决办法:如果用双引号,需要再\$前再加一个\,语句如下
PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\\$\[\e[0m"
赋值为PS1='\[\e[43m\][\[\e[31m\]\u@\[\e[34m\]\h \W]\$\e[0m'
效果如下截图
这个例子,我们可以明显看出,\e[颜色值m这个是说明接下来的颜色从这里开始是什么颜色,\e[0m说明的是颜色的结束位置,
这里需要注意的是,如果没有通过\[ \]对每一个颜色进行界定,使用过程,如上翻历史页,就会出现显示异常。
将设置好的PS1变量写到家目录下的.bashrc 里面,这样后面开启的终端都有效。
$ vim .bashrc
打开后添加一行
PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\\$"
保存退出再次登录时显示的颜色也会是我们设定的值了。
里面有很多!!
ls命令:
语法:ls [-acGhlrRu][--color=][--show-control-chars][文件/目录]
说明:ls相当于windows上的dir命令也是用来列出目录内容,包括文件和子目录名称.-a显示所有文件和目录;-c按修改时间排列文件;-G不显示所属用户组信息;-h用kb,mb,gb为单位显示文件或
目
录的大小
;-l显示详细信息,包括文件大小,修改时间等信息;-r反向排序;-R列出指定目录下所有的文件及子目录;-u按最后访问时间排序;--color=
使用不同颜色来区分不同的内容;--show-control-chars遇到控制字符也显示,若有中文名称时可用此参数.
mkdir命令:
语法:mkdir [-p][-m][目录名]
说明:相当于windows上的mkdir命令用来创建一个子目录。-p如果要建立的目录的上一级目录尚未建立,则先建立这一级目录;-m建立目录时,同时设置其目录权限,格式与chmod命令相同。
cd命令:
语法:cd [目标目录]
说明:和windows上的cd命令一样,用来切换当前目录,其中[目标目录]是要切换的目录名,可以是相对路径,也可以是绝对路径.cd ..表示回到父目录.
cp命令:
语法:cp [-bfipR][-S ][源文件/目录][目标文件/目录]
说
明:用来拷贝文件或目录的命令,相当于windows上的copy命令.其中-b当文件拷贝时遇到要删除,覆盖目标文件之前自动备份,备份文件命名为:源
文件名+指定的备份字尾字符串;-f强行复制文件或目录,无论目标文件或目录是否存在;-i当文件拷贝时遇到要覆盖原有文件时,先询问用户;-p保留源文
件或目录的属性(所有者,权限等); -R指定目录下的所有文件及子目录都将会被拷贝。
cat命令:
语法:cat [-bEn][文件名列表]
说明:将一个或多个文件的内容显示在屏幕上。相当于windows上的type命令。-b在每一行的开头加上行号(空行除外);-E在每一行的最后加上符号"$";-n在每一行的开头加上行号。
pwd命令:
语法:pwd
说明:显示当前目录。
rm命令:
语法:rm [-fr]
说明:用来删除文件,目录,相当于windows上的del命令.-f强制删除,不询问;-r递归处理,将会删除指定目录下的所有文件及子目录。
mv命令:
语法:mv [-bfiu][-S][源文件或目录][目标文件或目录]
说
明:相当与windows上的move和ren命令。将文件,目录移动到另一个目录中或把它重命名。-b当遇到要覆盖其它文件或目录时,将自动备份,备份
文件名为原文件名加上-S参数指定的字符串,若未设置则加上"
";-f出现重复情况,直接覆盖而不备份;-i当遇到要覆盖的文件或目录时,总是询问;-u当要覆盖的文件或目录比源文件要新,则不覆盖目标文件;-
S指定备份文件名后要加上的字符串。当目标文件或目录与源文件或目录在同一个目录下时,其实也就时给它改了名。
mount命令:
语法:mount [-anrw][-t][被挂装的设备文件][挂装点]
说
明:将文件系统挂装到某个目录中来。前面的参数没多大用处,故跳过。-t指定载入文件系统的类型,包括minix,ext2,
msdos,vfat,nfs,ntfs,iso9660等,若为auto则自动检测文件系统类型;[挂装点]其实就是一个目录,该目录的内容就是你载入
的文件系统的内容。
umount命令:
语法:umount [-ar][-t][挂装点]
说明:用来将mount载入的文件系统卸载出去。中间的参数可省略,直接用umount [挂装点]即可。
halt命令:
语法:halt [-dfinpw]
说明:关闭系统。-d不要在日志中记录;-f强制关闭系统;-i在关闭系统之前,关闭所有的网络接口;-n关闭前不将缓存中的所有数据写入硬盘;-p关闭系统后关闭电源;-w仅写入日志,不实际结束系统。
reboot命令:
语法:reboot [-dn]
说明:重新启动linux系统。-d不将重启写入日志;-n重启前不检查是否用未结束的程序,立刻重启。
ps命令:
语法:ps [-aeHuwx][--group][--tty][--user]
说
明:用来查看当前运行的进程。-a显示所有终端下执行的进程;-e显示所有程序;-H显示表示进程关系的树状结构;-u以用户为主的格式来显示进行状态;
-w用宽阔显示模式;-x显示所有进程,不区分终端机;--group只显示指定用户组启动的进程;--tty只显示在指定终端上启动的进程;--user只显示指定用户启动的进程。
su命令:
语法:su [-fl][-c][用户帐号]
说明:通过它可以让用户暂时换成另一个用户帐号登陆。-f用另一个用户帐号登陆后不去读该用户的启动设置文件;-l用户帐号改变后,也改换成该用户的工作目录;-c执行完指定的指令后就回到原来的用户帐号。
chown命令:
语法:chown [-fR][所有者][文件/目录]
说明:修改文件/目录的所有者以及所属用户组。-f不显示错误信息;-R指定目录下的所有文件和子目录的所有者,所属用户组都将被修改。
man命令:
语法:man [-acdfhkKtwW][-p 字符串] [-C 配置文件] [-M 路径] [-S 章节列表] [章节] [命令名称 ]
说
明:显示帮助手册内容。-t 使用 /usr/bin/groff-Tps-man doc 来对帮助手册排版 ,
并将结果显示至stdout;[-C 配置文件]指定设定档 man.conf;[-M 路径]指定搜索路径;[-S
章节列表]指定搜寻章节列表(以冒号分隔);[章节]搜索指定的章节;[命令名称 ]要查找的命令名。
startx命令:
语法:startx
说明:进入xwindow图形界面
[root@localhost ~]# ls -l
总用量 44
-rw------. 1 ---- root ---- root --------1207 1 月14 18:18 anaconda-ks.cfg
权限--引用计数 所有者 -- 所属组--- 大小-- 文件修改时间 文件名
ls [选项] [文件名或目录名]
选项:
-a :显示所有文件
--color=when:支持颜色输出
-d :显示目录信息,而不是目录下的文件
-h :人性化显示﹐按照我们习惯的显示文件大小
-i :显示文件的i节点号
-l:长格式显示
pwd 命令是查询当前所在的目录的绝对路径
选项:
-L (默认值)打印环境变量"$PWD"的值,可能为符号链接。
-P 打印当前工作目录的物理位置。
mkdir 是创建目录的命令
选项:
-Z:设置安全上下文,当使用SELinux时有效;
-m或--mode:建立目录的同时设置目录的权限;
-p或--parents:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
rmdir 是删除空目录的命令
-p: 递归删除目录
touch 是 创建空文件或修改文件的时间戳
[root@localhost ~]# touch [选项] 文件名
-a:或--time=atime或--time=access或--time=use 只更改存取时间;
-c:或--no-create 不建立任何文件;
-d:时间日期 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify 只更该变动时间;
-r:参考文件或目录 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:日期时间 使用指定的日期时间,而非现在的时间;
--help:在线帮助;
--version:显示版本信息。
stat 是查看文件详细信息的命令,而且可以看到文件的这三个时间戳
选项:
-L:支持符号连接;
-f:显示文件系统状态而非文件状态;
-t:以简洁方式输出信息;
cat 命令用来查看文件内容
选项:
-A: 相当于-vET 选项的整合,用于列出所有隐藏符号
-E: 列出每行结尾的回车符$
-n: 显示行号
-T: 把 Tab 键用^I显示出来
-v: 列出特殊字符
more 是分屏显示文件的命令
less 是分行显示文件的命令
用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。
选项:
-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x数字:将TAB字符显示为指定个数的空格字符。
head 是用来显示文件开头的命令
选项:
-c --bytes=[-]NUM 显示前NUM字节;如果NUM前有"-",那么会打印除了文件末尾的NUM字节以外的其他内容。
-n, --lines=[-]NUM 显示前NUM行而不是默认的10行;如果NUM前有"-",那么会打印除了文件末尾的NUM行以外的其他行。
-q, --quiet, --silent 不打印文件名行。
-v, --verbose 总是打印文件名行。
-z, --zero-terminated 行终止符为NUL而不是换行符。
tail 是用来显示文件末尾的命令
选项:
-c, --bytes=NUM 输出文件尾部的NUM(NUM为整数)个字节内容。
-f, --follow[={name|descript}] 显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。
-F 与 “--follow=name --retry” 功能相同。
-n, --line=NUM 输出文件的尾部NUM(NUM位数字)行内容。
--pid=进程号 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令。
-q, --quiet, --silent 当有多个文件参数时,不输出各个文件名。
--retry 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“--follow=name”连用。
-s, --sleep-interal=秒数 与“-f”选项连用,指定监视文件变化时间隔的秒数。
-v, --verbose 当有多个文件参数时,总是输出各个文件名。
ln 是用来为文件创建链接的命令
[root@localhost ~]# ln [选项] 源文件 目标文件
选项:
-s: 建立软链接文件。如果不加“-s”选项,则建立硬链接文件
-f: 强制。如果目标文件已经存在,则删除目标文件后再建立链接文件
-d, -F, --directory 创建指向目录的硬链接(只适用于超级用户)
-f, --force 强行删除任何已存在的目标文件
-i, --interactive 覆盖既有文件之前先询问用户
-L, --logical 取消引用作为软链接的目标
-n, --no-dereference 把软链接的目的目录视为一般文件
-P, --physical 直接将硬链接到软链接
-r, --relative 创建相对于链接位置的软链接
-s, --symbolic 对源文件建立软链接
硬链接特征:
源文件和硬链接文件拥有相同的 Inode 和 Block
修改任意一个文件,另一个都改变
删除任意一个文件,另一个都能使用
硬链接标记不清,很难确认硬链接文件位置,不建议使用
硬链接不能链接目录
硬链接不能跨分区
软链接特征:
软链接和源文件拥有不同的 Inode 和 Block
两个文件修改任意一个,另一个都改变
删除软链接,源文件不受影响;删除源文件,软链接不能使用
软链接没有实际数据,只保存源文件的 Inode,不论源文件多大,软链接大小不变
软链接的权限是最大权限 lrwxrwxrwx.,但是由于没有实际数据,最终访问时需要参考源文
件权限
软链接可以链接目录
软链接可以跨分区
软链接特征明显,建议使用软连接
rm 是强大的删除命令,不仅可以删除文件,也可以删除目录
[root@localhost ~]# rm [选项] 文件或目录
选项:
d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。
cp 是文件或目录用于复制的命令
[root@localhost ~]# cp [选项] 源文件 目标文件
选项:
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制软链接时,把目标文件或目录也建立为软链接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立软链接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
mv 是用来对文件或目录重新命名,或者将文件移动至其他目录
[root@localhost ~]# mv [选项] 源文件 目标文件
选项:
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“ / ”;
-S后缀:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=目录:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
[root@localhost ~]# ls -l install.log
-rw-r--r--. 1 root root 24772 1 月 14 18:17 install.log
第一列的权限位如果不计算最后的“.”,则共有 10 位。
第 2~4 位代表文件所有者的权限。
chmod 用来变更文件或目录的权限
[root@localhost ~]# chmod [选项] 权限模式 文件名
选项:
-c, --changes:当文件的权限更改时输出操作信息。
--no-preserve-root:不将'/'特殊化处理,默认选项。
--preserve-root:不能在根目录下递归操作。
-f, --silent, --quiet:抑制多数错误消息的输出。
-v, --verbose:无论文件是否更改了权限,一律输出操作信息。
--reference=RFILE:使用参考文件或参考目录RFILE的权限来设置目标文件或目录的权限。
-R, --recursive:对目录以及目录下的文件递归执行更改权限操作。
用户身份
首先,读、写、执行权限对文件和目录的作用是不同的。
目录的可用权限其实只有以下几个。
chown 是修改文件和目录的所有者和所属组的命令
[root@localhost ~]# chown [选项] 所有者:所属组 文件或目录
选项:
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quite或——silent:不显示错误信息;
-h或--no-dereference:只对软链接的文件作修改,而不更改其他任何相关文件;
-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-v或——version:显示指令执行过程;
--reference=参考文件或目录:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行
普通用户可以修改所有者是自己的文件的权限
chgrp 是修改文件和目录的所属组的命令
[root@phato ~]# chgrp [选项] 所属组 文件或目录
-R 递归式地改变指定目录及其下的所有子目录和文件的所属的组
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件;
-H如果命令行参数是一个通到目录的软链接,则遍历软链接
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-L:遍历每一个遇到的通到目录的软链接
-P:不遍历任何符号链接(默认)
-v或——verbose:显示指令执行过程;
--reference=参考文件或目录:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
umask 是显示或设置创建文件的权限掩码。我们需要先了解一下新建文件和目录的默认最大权限。
我们在这里按照权限字母来讲解 umask 权限的计算方法。我们就按照默认的 umask 值是 022来分别计算一下新建文件和目录的默认权限吧。
对于Linux管理员来说,grep是日常最常用的命令,可以把匹配的字符输出,同样可以输出颜色。
# grep --color 'test' /var/log/maillog
无聊练功:用perl 实现grep --color
# vi colorgrep
#!/usr/bin/perl
use Term::ANSIColor;
my $test;
if (@ARGV != 2){
die "Please use (colorgrep 'some key word' filename)\n";
}
$test = shift @ARGV;
while(){
if(/$test/i){
print "$`";
print color "bold red";
print "$";
print color 'reset';
print "$'";
}
}
这里调用了Term::ANSIColor 函数 color 有以下的参数:
clear, reset, dark, bold, underline, underscore, blink, reverse, concealed, black, red, green, yellow, blue, magenta, cyan, white, on_black, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, and on_white
还有以下的简化使用方法
2) use Term::ANSIColor qw(:constants);
如果使用这种方法,可以直接把颜色属性放在要输出的问题前面,从而简化输出步骤。这些颜色属性有:
CLEAR, RESET, BOLD, DARK, UNDERLINE, UNDERSCORE, BLINK, REVERSE, CONCEALED, BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, ON_BLACK, ON_RED, ON_GREEN, ON_YELLOW, ON_BLUE, ON_MAGENTA, ON_CYAN, and ON_WHITE
等。
例如:
print BOLD BLUE ON_WHITE “Text”, RESET, “\n”;
如果你打印完之后想清除掉字符串的格式,一定要记得在最后加上一个RESET的属性值。
例如:
use Term::ANSIColor qw(:constants);
print BOLD, BLUE, “This text is in bold blue.\n”, RESET;
3) $Term::ANSIColor::AUTORESET = 1;
对于2)的方法,如果你不想在每条打印语句后面加上RESET的话,你可以直接把$Term::ANSIColor::AUTORESET的值设为true。这样每次打印完字符,只要你的属性值之间没有逗号,系统将自动帮你清除掉颜色属性。
看一个完整的例子:
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
print BOLD BLUE “This text is in bold blue.\n”;
print “This text is normal.\n”;
这三种方法,使用起来各有千秋,可根据要打印的复杂程度选用。