linux获取命令帮助方式:
(1) COMMAND--help/-h #简要列出用法及选项等,shell内建命令通常不支持此选项
(2)使用手册(manual) #常用方法
man COMMAND
常用手册页:/usr/share/man/
man1:用户命令
man2:系统调用
man3:C库调用
man4:设备文件及特殊文件
man5:配置文件格式
man8:管理类的命令
man命令的配置文件: /etc/man.config
MANPATH /PATH/TO/SOMEWHERE : 指明新的手册文件搜索位置
man -M /PATH/TO/SOMEWHERECOMMAND:到指定位置下搜索COMMAND命令手册
查找命令所在的man手册:whatis COMMAND
注意:有些命令在多个章节中都存在帮助手册:
[root@localhost ~]# whatis read read (1p) - read a line from standard input read (2) - read from a file descriptor read (3p) - read from a file read [builtins] (1) - bash built-in commands, see bash(1)
查看相关章节:man # COMMAND
[root@localhost ~]# man 2 read
(3) 信息页
info COMMAND
(4) 程序自身的帮助文档
README
INSTALL
ChangeLog
(5) 程序官方文档
官方站点:Documentation
(6) 发行版的官方文档
红帽官方站点文档:www.redhat.com/docs
(7)google
keyword filetype:pfd / keywordsite:redhat.com
(8)www.slideshare.net
bash的一些基础命令:
1、关机或重启:
halt, poweroff,
reboot
-f:强制,不调用shutdown
-p:切断电源
shutdown:
shutdown [option]... TIME [MESSAGE]
-r:reboot
-h:halt
-c:cencel
TIME:
now:立刻
+m:相对时间表示法,从命令提交开始多久之后,+3
hh:mm :绝对时间表示,指明具体时间
2、会话查看
whoami:显示当前登录的有效用户
who:显示系统当前所有的登录会话
w: 显示系统当前所有的登录会话以及用户正在做什么(显示用户的行为信息)
3、时间管理命令:
date [OPTION]... [+FORMAT]
FORMAT:格式符号
%D ;08/05/15
%F :2015-08-15
%T :23:53:48
设置时间:
date [MMDDhhmm[[CC]YY][.ss]]
MM:月份 DD:几号 hh:小时 YY:两位年份 CCYY:四位年份 .ss:秒钟
date -s '2015-08-15 16:09:30'
date练习:
[root@localhost ~]# date 0815170115.21 [root@localhost ~]# date +%A #date +%a为简写, Sat Saturday [root@localhost ~]# date +%u 6 # day of week (1..7); 1 is Monday [root@localhost ~]# date +%w 6 # day of week (0..6); 0 is Sunday [root@localhost ~]# date +%d/%m/%Y #与date +%x效果一样 08/15/2015 [root@localhost ~]# date +%H:%M:%S #与date +%T效果一样 23:53:48
cal:日历
cal MONTH
cal YEAR
cal MONTH YEAE
linux的两种时钟:
系统时钟:有linux内核通过CPU的工作频率进行及时
硬件时钟:
hwclock:显示硬件时钟:
-s 将hwclock 同步到 system clock
-w 将system clock 同步到 hwclock
4、目录及文件相关命令:
主目录:家目录 ,HOME
root:/root
普通用户:/home/USERNAME
/home/letitbe
~:用户的主目录
cd:
cd 或 cd ~:回到当前用户的主目录
cd ~USERNAME:切换至指定用户的家目录
cd -:返回上一次的目录
. / ..
相关环境变量:
PWD:保存了当前目录路径
OLDPWD:上一次所在目录的路径
pwd:显示当前目录路径
ls:显示指定路径下的文件列表;
ls [OPTION]... [DIR]
-a,--all:显示所有文件,包括隐藏文件
-l:长格式
-rw-r--r--. 1 root root 44800Aug 14 12:42 install.log
最左侧的第一位:文件类型,如-,d,l,b,c,p,s
后面的9位,访问权限:perm
数字:文件被硬链接的次数
左root:文件的属主,ower
右root:文件属组,group
44800:文件大小,size
Aug 14 12:42:文件最近一次被修改时间
install.log:文件名
-d:仅显示目录属性
-h:以kb等易读形式显示文件大小
-r,--reverse:逆序显示
-R,--recursive:递归,显示当前目录下的子目录的文件
练习: 显示/etc目录下的所有目录
[root@localhost~]# cd /etc [root@localhostetc]# ls -d */ alternatives/ cron.monthly/ init/ openldap/ ppp/ rc.d/ ssl/ yum/ audisp/ cron.weekly/ init.d/ opt/ profile.d/ rpm/ statetab.d/ yum.repos.d/ audit/ dbus-1/ iproute2/ pam.d/ rc0.d/ rsyslog.d/ sudoers.d/ bash_completion.d/ default/ kdump-adv-conf/ pkcs11/ rc1.d/ rwtab.d/ sysconfig/
tree:以树的形式列出目录的所有内容
-d :只显示目录
-L level:指定显示的层级目录
-P pattern:只显示匹配的层级目录
mkdir:
-p, --parents
no error if existing, make parentdirectories as needed
-v, --verbose
print a message 'for' eachcreated directory
-m, --mode=MODE
set file mode (as in chmod), nota=rwx - umask
rmdir:删除空目录
-v:显示过程
-p:递归删除空目录
练习:
(1) 如何创建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b
mkdir /tmp/x/{y1,y2}/{a,b}
(2) 如何创建x_m, y_m, x_n, y_n
mkdir -pv {x,y}_{m,n}
(3) 如何创建/tmp/bin, /tmp/sbin, /tmp/usr, /tmp/usr/bin, /tmp/usr/sbin
mkdir -pv /tmp/{usr/,}{bin,sbin}或
mkdir -pv/tmp/{usr/{bin,sbin},sbin,bin}
cat:文件查看命令
cat [OPTION]... [FILE]
-E:显示行介绍符$
-n:显示出文件每一行及对应行号
文件内容类型查看命令:file
file /PATH/TO/SOMEWHERE
echo:回显命令
-n:禁止自动添加换行符号
-e:允许使用转义符
\n:换行
\t:制表符
echo "$VAR_NAME":变量会替换,弱引用
echo '$VAR_NAME':变量不会替换,强引用
head
-c #:指定获取前#字节
-n #:指定获取前#行
tail
-c #:指定获取前#字节
-n/-# #:指定获取前#行
-f: output appended data as the filegrows,跟踪显示文件新追加的内容
touch:文件或目录的时间戳管理工具
文件组成:metadata(元数据),data(数据)
三个时间戳:
access time:访问时间,atime,读取文件内容
midify time:修改时间,mtime,改变文件内容(数据)
change time:改变时间,ctime,元数据发生改变(属性)
(atime及mtime的改变都会导致ctime的改变)
touch:
-c: 如果文件不存在,则不予创建
-a:only atime
-m: only mtime
-t STAMP:
[[CC]YY]MMDDhhmm[.ss]
touch -a -t 201508171224.30
stat:显示目录或文件的元数据(属性)
[root@localhost ~]# stat /root File: `/root' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 803h/2051d Inode: 391682 Links: 13 Access: (0550/dr-xr-x---) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2015-08-05 00:31:44.018734163+0800 Modify: 2015-08-05 01:17:30.383728888+0800 Change: 2015-08-05 01:17:30.383728888+0800
cp: 复制
cp SRC DEST
-i:当存在同名文件覆盖前提示,当(root用户默认别名),普通用户没有
cp SRC... DEST
SRC...:多个文件
DEST必须存在,且为目录,其他情形均会出错
cp SRC DEST
SRC是目录:
此时使用选项:-r(递归复制目录及目录下的所有内容)
-a,--archive :归档复制,保留文件的原有属性
相当于-dR --preserve=all
-d: --no-dereference -R:copydirectories recursively
--preserve[=ATTR_LIST]
-p:--preserve=mode,ownership,timestamp
-v:verbose
(复制时有时候会改变文件原来的属性,如对符号链接文件的复制)
mv: 移动或重命名
如果源和目都在同一目录下,目的目录不存在则为重命名,存在则为移动
i:交互式
-f:强制
rm:删除
-r:递归
-f:强制
rm -rf:强制递归删除
5、文本处理工具:
wc:
-l:行数
-m: 单词
-c:字节数
cut:
-d:分隔符
-f:显示的第几字段, -f 1,3 -f 1-3 -f 1-3,7
--output-delimiter=STRING
sort:
-f: 忽略字符大小写
-r:逆序
-k:以某字段进行排序
-t:指定分隔符
-n:以数值大小进行排序(默认以字符对应的ASCII码进行排序)
-u: uniq,排序后去重
uniq命令:
uniq [option]... [file]...
-c : 显示每行重复出现的次数
-d : 只显示重复过行
-u : 仅显示未重复过的行
注意:连续且完全相同才算做重复
练习:以冒号分隔,取出/etc/passwd文件的第6至10行,并将这些信息按第3个字段的数值大小进行排序,
最后仅显示各自的第1个字段。
#法一: [root@localhost~]# head -10 /etc/passwd | tail -5 | sort -t: -k3 -n | cut -d: -f1
#法二: [root@localhost~]# sed -n '6,10p' /etc/passwd | sort -t: -k3 -n | cut -d: -f1 sync shutdown halt mail uucp