一.Date功能
1.显示完整时间:#date
只显示时间: #date +%T
只显示日期: #date +%F 或者 #date +%D
只显示小时: #date +%H 或者# date +%k
只显示年份: #date +%Y
只显示分钟: #date +%M
只显示秒钟: #date +%S
查看硬件时间:#hwclock
2.修改时间:
只修改时间: #date –s Hour:minute:second
修改日期和时间: #date –s “ Year-month-date Hour:minute:second ”
只修改日期: #date –s “Year-month-date `date +%T` ”
二.文件和目录管理相关命令
1.创建一个空白文件:touch filename
Shell的命令行展开:
/tmp/{a,b} 就等于 /tmp/a , /tmp/b
/tmp/{a,b}/c 就等于 /tmp/a/c tmp/b/c
touch 也可以批量创建文件:
#touch a_b a_c d_b d_c 相当于 # touch {a,d}_{b,c}
2.复制文件:
cp sourcefile destinationfile 或者 cp srcfile…. Dest
-f 表示强行复制,不提示信息
-i 表示复制时提示
-p 复制文件时保留原有的权限模型 ,使用时注意:在管理员模式下可以保留其他用户创建时的权限,但是在其他用户模式下不能保留管理员创建文件时的文件权限。
例如:cp /root/a /tmp/abc
此时要分两种情况:
(1)abc是文件的情况下
如果/tmp 目录下原先没有abc ,那么直接将a 文件复制到/tmp 目录下,并命名为abc;如果/tmp目录下原先已经有abc文件,那么会将原abc文件覆盖,名字不变。
(2)abc是目录的情况下
如果abc 是/tmp目录下的一个目录,那么,会将a文件直接复制到abc目录之下,如果a也是一个目录,也会将a目录拷贝到abc目录之下,但是要使用参数
cp /root/a –r/R /tmp/abc
注意:如果复制文件时,源文件是多个,那么目标一定是个目录。
3.创建一个目录:
mkdir dirname
-p(parents) 可以创建不存在的目录 ,例如: mkdir -p /tmp/m/n/t , 如果m和n目录不存在,也会创建成功,它会先创建m和n ,再创建 t
-v 创建目录时候显示详细信息
4.删除目录或文件:rm rmdir
rmdir :用于删除一个空目录
rm 文件删除命令
rm file… 一次也可以删除多个文件
-v 选项 删除时显示详细信息
-i 选项 删除时显示提示信息
-f 强制删除,不提示信息
-r/R 递归删除,并且一直有删除提示信息
-rf 直接删除,不提示任何信息,
5.移动文件或目录
mv sourcefile destionfile
mv srcfile… dest
例如: mv /root/a /tmp/abc
也分为两种情况:
(1). abc是一个文件
如果abc原先不存在,将文件a移动到/tmp目录之下,重命名为abc ,如果abc原先存在,移动后a文件将覆盖原来的abc,并重命名为abc。
(2) .abc 是一个目录
如果a也为一个目录,并且abc目录存在,那么会将目录a 移动到abc目录之下, 如果abc目录不存在,那么会将a目录移动到/tmp目录之下并重命名为abc。
注:如果源多个文件,那么目标只能为一个目录。
6.如何查看文本文件、分页显示文件内容、指定显示文件内容
(1)cat [option] [file] ... (tac 是逆序显示文件内容)
-n 对显示的内容加上行号
-E 显示文件的结尾
-v 显示非打印字符,不显示制表符
-T 显示制表符
注:cat 不能分页显示文件内容,
(2)分页显示文件内容可以使用more 或less 命令
more 显示的内容只能向下翻屏,不能向上,而less 显示的内容既可以向下翻,又能用B键向上翻屏
如: more/less /etc/inittab
(3)head/tail 可以显示指定文件的首部和尾部#行,默认情况下显示文件的首10行,或者尾10行
例如:head -# file 显示文件内容的首#行
tail -# file 显示文件内容的尾#行
7.统计文件字符内容命令
wc :wordcount
wc [options] file
-l 统计文件行数
-w 统计文件单词数
-c 统计字节数
8.剪切显示文件内容命令
cut [OPTION]... [FILE]...
-d 指定分隔符 ,后跟具体的分隔符,例如 –d: -d/ 等
-f 指定字段 ,1-6个字段,例如 –f1 ,-f2 ……
9.排序显示文件内容命令:(不比较数值),区分大小写,默认为升序排序
sort [OPTION]... [FILE]...
-r 逆序排序(不对文件本身内容改变,仅仅是将排序内容显示至屏幕上) -n 以数值大小比较进行排序
-f 不区分大小写排序显示
-u 不显示重复的行
10.比较文件中行是否相同命令
uniq [OPTION]... [INPUT [OUTPUT]]
-u 只显示唯一出现那次的行
-d 只显示重复过的行
-c 统计,显示每行重复的次数
注:uniq命令要和sort 命令联合使用才可以,例如:sort /etc/inittab | uniq –c
11.在文本中转换、删除字符命令:
tr [OPTION]... SET1 [SET2]
-d 删除字符
例如:tr -d ‘aA’ < FILE 意思是删除a或者A字母(只是将修改过后的结果输入重定向到屏幕,原文件内容不会改变)
例如:tr ‘abc’ ‘ABC’ < FILE 用ABC 替换FILE中的 abc
三.命令替换: 把一个命令的执行结果当作另一个命令的输入信息来实现,就叫做命令替换。
例如:创建一个以当前时间为文件名后缀命名的文件,形如,myfile-17-24-35.txt
# touch myfile-$(date +%H-%M-%S).txt 即可以实现
四.Linux用户管理
1.Linux中有三种用户:管理员,系统用户,普通用户
添加用户:
#useradd username 或者 adduser username
为用户加密码:
Passwd username 此操作只能由root完成
添加一个用户之后,会有三个系统文件发生变化:
/etc/passwd /etc/shadow /etc/group
格式 : useradd [options]
-u 指定UID
-g 指定GID (使用-g选项指定gid 时,这个组必须是已存在的。)
-c 增加注释信息 如: -c " Welcome ...... "
-d 指定家目录路径
-s 指定shell 目录
-G 为用户指定附加组(可以有多个
-r username 添加此用户为系统用户
2.passwd 命令: 修改账户的登陆密码,使用权限是所有用户
Passwd [option] username
-l 锁定用户账号
-u 解除用户账号的锁定状态
-n # 指定密码最短使用期限
-x # 指定密码最长使用天数
-w# 指定密码过期前的警告期限
-i # 指定密码过期的宽限时间
3.id 命令:查看用户ID信息
id [OPTION]... [USERNAME]
# id 显示用户id 的详细信息
-u 显示用户ID
-g 显示用户实际的组ID
-G 显示用户所有的组ID,包括附加组
4.usermod命令 ,修改用户属性
usermod [options] LOGIN(账户名称)
-u 修改用户UID
-g 修改用户GID
-a -G 追加一个组的附加组
-c 修改注释信息
-d 修改家目录( -m -d修改后家目录中文件不丢失)
-s 修改shell目录
-l 修改用户名
5.userdel groupadd groupmod gpasswd 命令
userdel username 删除用户
-r username 递归删除,可以删除用户家目录
groupadd groupname 增加组
-g gid groupname 为增加的组指定组ID
-r groupname 添加此组为系统组
groupmod 修改组信息
-g 修改组ID
-n 修改组名 形如:groupmod –n newgroupname oldgroupname
gpasswd 为组增加密码
gpasswd groupname