Linux基本操作(二)
日期命令(cal/date)
cal日历:
不加参数显示当前月份日历
参数 |
含义 |
-3 |
显示系统前一个月,当前月,下一个月的月历 |
-j |
显示在当年中的第几天 (一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数) |
-y |
显示当前年份的日历 |
date日期显示:
根据指定格式输出日期或者设置系统时间
格式化时间显示
date "+%Y年%m月%d日 %H时%M分%S秒"
参数 |
含义 |
%Y |
四位年份, %y 两位年 |
%m |
月份(1~12) |
%d |
按月计的日期(1~31) |
%H |
小时(0~23) |
%M |
分钟(0~59) |
%S |
秒数(0~59) |
%F |
完整日期格式,等价于 %Y-%m-%d |
%T |
时间,等价于 %H:%M:%S |
历史命令(history)
history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
history [参数] 如果不加参数 显示所有历史命令 加上参数可以显示指定的数量的历史命令(最近) 如: history 10 显示最近10条命令 输出的命令会带有编号
!编号 如!10 执行历史命令中指定编号的命令
查看文件命令(cat、tac(不常用)、more、less、head、tail、tailf)
cat与tac:
cat [参数] [源文件] [>|>>重定向的文件名]
参数 |
说明 |
-n |
所有输出的行数编号 |
-b |
和-n类似,但不对空白行编号 |
-s |
不输出多行空白,即当遇到有连续两行以上空白,就替换成一行空白行 |
-E |
在每行结尾显示$符号 |
-T |
将文件中的tab建显示为^I(i的大写) |
-v |
显示非打印的字符 |
-t ;-a |
等于-Vt;等于-VEt |
-version |
显示版本信息并退出 |
-help |
显示帮助信息并退出 |
tac 文件名
cat与tac的区别:cat是将文件从第一行开始连续的将内容输出在屏幕上。
tac的功能是将文件从最后一行开始倒过来将内容数据输出到屏幕上
more和less(常用)
less命令的作用与more命令十分相似,都可以用来浏览文件的内容。不同的是,less命令允许用户往来滚动浏览已经看过的内容
【语法格式】
less [参数] [文件名]
[选项参数]
参数 |
说明 |
-c |
从顶部刷新屏幕,并显示文件内容,而不是通过底部滚动完成刷新 |
-f |
强制打开文件,并且二进制文件在显示时不提示警告 |
-i |
搜索时,忽略大小写,除非搜索串中包含大写字母 |
-I |
搜索时,忽略大小写,除非搜索串中包含小写字母 |
-m |
显示读取文件的百分比 |
-M |
显示读取文件的百分比,行号及总行数 |
-N |
在每行前输出行号 |
-p:pattern |
用来搜索指出的字符串。例如,在/etc/passwd目录中搜索字符串userl,就用less -p userl /etc/passwd,这样该文件中所有的字符串userl将反色显示 |
-s |
把连续多个空白行作为一个空白行显示 |
-Q |
在终端下不响铃 |
--help |
获得在线帮助 |
【动作指令】
-h或-H |
显示这些命令的帮助信息 |
Enter |
向下移动一行 |
y |
向上移动一行 |
空格或^V或^F |
向下滚动一屏 |
b |
向上滚动一屏 |
d |
向下滚动半屏 |
h |
帮助信息 |
u |
向上滚动半屏 |
g |
跳到第一行 |
G |
跳到最后一行 |
/pattern |
搜索指定字符串,例如/root表示在文件中搜索root字符串 |
v |
调用vi |
q |
退出less |
【语法格式】
more [参数] [文件名]
参数 |
含义 |
+num |
例如+5,从第5行开始查看文件内容。 |
-p |
先清屏再显示文件内容。 |
-s |
当两个以上连续空行,换成一行的空白行。 |
【动作指令】
head和tail
head 查看文件前几行
【语法格式】
head [行数] 文件名
tail 查看文件后几行
【语法格式】
tail [行数] 文件名
tail -f 文件名 可以动态显示文件信息 类似tailf
数据流及重定向(>/>>)
数据流:
Linux中有三种流:标准输出流、标准错误输出流、标准输入流。
标准输出流:正常信息的输出,默认输出到屏幕上。
如: echo 'hello python'
标准错误输出流:错误的信息的输出,默认输出到屏幕上。
标准输入流:向系统中输入数据,默认就是键盘输入的数据。
重定向(>/>>):
定义:把输出、输入的信息重定向到其它的地方去
如:ls > test.txt
【语法格式】
显示信息 >/>> 重定向文件
将本将显示的内容存储到test.txt中
>:输出重定向会覆盖原来文件中的内容
>>:输出重定向则会追加到文件的尾部
管道(|)
”|”,它只能处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入.
【语法格式】
命令1 |命令2|...
命令1必须有标准输出才能执行命令2
如: cat 1.txt |grep ‘hello’
就是将查看1.txt中带有hello的行
链接(软硬)
硬链接:
相当于一个文件有多个名字,但是所有文件占用的是同一空间
【语法格式】
ln 源文件 链接文件
如: ln 1.txt 2.txt
就是为1.txt文件创建硬链接2.txt
软链接:
相当于快捷方式
不占用磁盘空间
【语法格式】
ln -s 源文件 链接文件
如:ln -s 1.txt 3.txt
为1.txt文件创建软链接3.txt
软链接和硬链接的相同点和区别:
相同点:不管修改源文件、硬链接文件、软链接文件内容 其他文件中的内容都将会改变
区别:软链接如果删除了源文件,链接文件将无法使用
硬链接如果删除了源文件,链接文件仍可以使用
软链接可以跨文件系统,硬链接不可以;
软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);
软链接可以对目录进行连接,硬链接不可以。
文件查找(grep、find)
文本搜索(grep)
【语法格式】
grep [参数] '搜索字符串' 文件名
搜索字符串可以是正则表达式
选项 |
含义 |
-v |
显示不包含匹配文本的所有行(相当于求反) |
-n |
显示匹配行及行号 |
-i |
忽略大小写 |
查找文件(find)
常用用法:
命令 |
含义 |
find ./ -name test.sh |
查找当前目录下所有名为test.sh的文件 |
find ./ -name '*.sh' |
查找当前目录下所有后缀为.sh的文件 |
find ./ -name "[A-Z]*" |
查找当前目录下所有以大写字母开头的文件 |
find /tmp -size 2M |
查找在/tmp 目录下等于2M的文件 |
find /tmp -size +2M |
查找在/tmp 目录下大于2M的文件 |
find /tmp -size -2M |
查找在/tmp 目录下小于2M的文件 |
find ./ -size +4k -size -5M |
查找当前目录下大于4k,小于5M的文件 |
find ./ -perm 777 |
查找当前目录下权限为 777 的文件或目录 |
归档和压缩
归档(tar)
归档就是将一些文件放在一起变成一个包,便于保存和传输,图片和视频数据因为不象文本一样,因此多个文件在压缩的时候没有明显效果,因此只能做归档,进行保存。
【语法格式】
多文件归档: tar [参数] 打包文件名.tar 文件1 文件
目录归档: tar [参数] 打包文件名.tar 目录
常用参数:
参数 |
含义 |
-c |
生成档案文件,创建打包文件 |
-v |
列出归档解档的详细过程,显示进度 |
-f |
指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
-t |
列出档案中包含的文件 |
-x |
解开档案文件 |
注意:除了f需要放在参数的最后,其它参数的顺序任意。
解压缩(gzip、zip/unzip、bzip2)
gzip【语法格式】
压缩: gzip [-r] 需要压缩文件 [压缩后文件名]
解压缩:gzip -d 压缩文件
解压到指定目录:-C (大写字母“C”)
特别注意:tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。
选项 |
含义 |
-d |
解压 |
-r |
压缩所有子目录 |
zip/unzip:
压缩文件:zip [-r] 压缩文件(可以没有扩展名) 源文件
zip -r a.zip a 把a目录压缩为 a.zip
解压文件:unzip 压缩文件
unzip a.zip 把a.zip 解压到当前目录下
解压文件:unzip -d 解压后目录文件 压缩文件
unzip -d test a.zip 把a.zip 解压到 test 目录中
bzip2:
压缩:bzip2 filename ---> 删除filename文件,生成 filename.bz2
解压缩:bzip2 -d filename.bz2 ---> 删除filename.bz2 ,生成 filename文件
注意:1)上述方式压缩后不保留源文件,解压后不保留压缩文件
2)bzip2 支持批量操作:
bzip2 a.txt b.txt 同时压缩两个文件
bzip2 -d a.txt.bz2 b.txt.bz2 同时解压两个文件
压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
文件权限:
查看命令位置:which
which 命令
文件权限:
修改文件权限(chmod):
1.1字母法:chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ] |
含义 |
u |
user 表示该文件的所有者 |
g |
group 表示与该文件的所有者属于同一组( group )者,即用户组 |
o |
other 表示其他以外的人 |
a |
all 表示这三者皆是 |
[ +-= ] |
含义 |
+ |
增加权限 |
- |
撤销权限 |
= |
设定权限 |
rwx |
含义 |
r |
read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。权限数字:4 |
w |
write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件,权限数字:2 |
x |
excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录,权限数字:1 |
1.2 数字法:“rwx” 这些权限也可以用数字来代替
字母 |
说明 |
r |
读取权限,数字代号为 "4" |
w |
写入权限,数字代号为 "2" |
x |
执行权限,数字代号为 "1" |
- |
不具任何权限,数字代号为 "0" |
如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename
注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限
用户管理
选项 |
含义 |
-q或--count |
只显示用户的登录账号和登录用户的数量 |
-u或--heading |
显示列标题 |
开关机、重启
命令 |
含义 |
reboot |
重新启动操作系统 |
shutdown –r now |
重新启动操作系统,shutdown会给别的用户提示 |
shutdown -h now |
立刻关机,其中now相当于时间为0的状态 |
shutdown -h 20:25 |
系统在今天的20:25 会关机 |
shutdown -h +10 |
系统再过十分钟后自动关机 |