Linux入门【指令及权限上】常用!!!

前言

在Linux环境中,我们通常使用的是命令行来给操作系统输入指令,而windows则是利用了图形化界面更好的更直观的展示给用户(也就是桌面)。在windows里我们只需利用鼠标键盘点击对应的图形就能进行操作,而Linux里则一切通过命令行来进行操作,所以我们学习命令行指令以及权限就必不可少了。

ls指令

1.ls,显示当前路径底下的文件或者目录名称。

2.ls -a, 显示当前目录下的所有文件,包括隐藏文件。

3.ls -l, 显示当前目录下的文件或者目录更详细的属性信息。

这些是ls相关的常用指令,也可灵活搭配使用,如ls -al,显示当前文件夹所有文件或目录包括隐藏文件的详细属性信息。

pwd指令

pwd指令可以显示出当前所在的目录。补充:命令whoami,指当前谁在使用Linux系统。

cd指令

cd [你想去的路径](就这么简单)

cd ..(返回上级目录)

cd /home/user(绝对路径)

cd ../linux(相对路径)

cd ~(进入家目录,即默认登入的目录)

cd -(返回最近访问的目录)

在一个目录下,..代表的是上一级目录,.代表的是当前目录,根目录/没有上级目录..。在cd -重复使用时,可以做到两个目录的自由切换,而不需要再使用绝对目录及相对目录去切换(这样很麻烦)。

touch与mkdir指令

首先我们要明白文件与目录的区别,文件就好比是树结构中的一个不可长出新叶子的叶子节点,而目录是分叉的树干部分,也可以是能够长出新叶子的叶子节点(即空目录)。touch是用来创建一个普通文件的,而mkdir是用来创建目录的。

touch test.c,在当前目录下创建一个test.c的普通文件,利用指令stat test.c就可以看到test.c这个普通文件的详细信息。

mikdir lesson,在当前目录下创建一个名为lesson的空目录,但是如果我们想要建立一个非空目录,其中包含很多文件或者目录,我们可以用mkdir -p lesson/lesson2/lesson3,以此类推。

rmdir与rm指令 

既然文件目录可以被创建,当然也能被删除。 

rmdir [要删除的目录],只能是空目录!

rm,默认删除普通文件。

rm -r,递归删除目标文件夹。

rm -rf,强制删除目标目录,及其内部文件。

rm -i,,删除前询问是否要删除,可以避免误操作。(类比window下删除一个文件会询问我是否要删除)

同理这些指令可以搭配使用。

man指令

man是一个查看命令,系统调用,C接口的一个手册,手册是有编号的。

 

 如图一共有九个手册。使用方式为man 命令/接口...(默认从一号手册往后找),man 1/2/3... 命令/接口...(在指定手册找)。注意:如果使用man命令没用,则请使用yum install -y man-pages来安装man手册(要在root身份下才能执行成功)。

cp指令

cp是copy的缩写,也就是拷贝指令。用法:cp [选项] 源文件或目录 目标文件或目录。 目标文件或目录必须先存在。

cp -f,强制复制文件,不管是目的文件或目录是否已经存在,存在直接覆盖。

cp -i,复制文件前先询问是否要赋值,防止误操作。

cp -r,递归处理,如将一个非空目录复制到目标目录下,就要使用递归处理,否则会报错。

mv指令

mv指令是用来移动文件或者目录的,类似于windows的剪切。但是mv指令还有一个功能:重命名。用法:mv [选项] 源文件或目录 目标文件或目录。

mv -f,如果目标文件存在,直接覆盖。      

mv -i, 如果目标文件纯在,先进行询问。

mv a.c b.c,将a.c命名为b.c.

cat指令

查看目标文件的内容,用法:cat [选项] 目标文件。

cat -n,对输出的行进行编号。

cat -b,对非空输出行进行编号。

cat -s,不输出多行空行。

我们利用命令cnt=0; while [ $cnt -le 10000 ]; do echo "hello world [$cnt]"; let cnt++; done > date.txt创建一个大文本放在date.txt文件中。利用cat查看目标文件,命令行中就会输出10000行hello world [行号]。如果我们要找其中的某一行就只能一行一行翻,太麻烦,所以cat适合查看小文件或者代码片段,不适合查看大文件。cat查看是顺序查看,而与之对立的tac命令可以倒序查看。

顺序查看

 

倒叙查看 

more指令 

more的作用类似于cat都是查看内容,但是more命令在默认情况下,只 显示一个屏幕的长度,如果还想往下查看按enter就可一行一行往下查看(不能往上查看)。当利用more查看时,会进入more,此时输入/[要查找的内容]就可查找到指定内容所在的上下文,若没有则找不到。按q可以退出more。

more -n 待查看文件,查看文件的前n行。

 

利用前面创建的大文本,more命令查看前10行 

进入more后/13查找有13内容的行,输出上下文。 

less指令

less命令也是如图more一样查看文件的工具,但是相比于more更加有弹性,more只能往下查看,而less利用[pageup][pagedown]上下查看文件。less在文件中搜索时可以上下搜索

less -N,查看文件并显示每行行号。

-i,搜索文件时忽略大小写。

进入less后,搜索与more一样,但对于搜索到的内容,会高亮显示(比more好太多)

more与less在大型代码中经常用于查询日志。

head指令

用法:head 文件名,默认文件开头显示前10行。head -n 文件名,显示文件开头前n行。

tail指令 

同head一样用法,默认显示文件末尾10行,-n,显示后n行。

 

cat,tac,head,tail配合使用(利用管道)

Linux里的管道可以将一个指令输出结果接收再作为另一个指令的输入。“ | ”是管道

例如head -1010 date.txt | tail -10 | tac指令,将前面创建的date.txt前1010行的结果放进管道中,再作为tail -10的输入,得到1010行中最后10行,再将这10行通过管道,输入给tac逆置。

得到结果如上图。

date指令

date +%Y/%m/%d-%H:%M:%S,显示现在时间:年/月/日-时:分:秒。

 

date +%s,显示现在的时间戳(以1970年1月1日午夜开始的秒数)。

 

 date -d@1664708226,将时间戳转化为年月日。

cal指令

cal用来查询日历。

cal -3,显示当前月,前一个月,后一个月。

cal -j,显示当前月,在当前年中,是第几天。

cal -y,显示当前年。

find指令

find命令是在一个目录下寻找对应文件,find [目录路径] -name [目标文件](以文件名的形式找)

在Linux中,find功能很强大,它可能会在磁盘空间中寻找,所以花费的时间可能很久。

grep指令 

grep也是一个搜索命令,在文件中找出搜索字符串,并语法高亮打印出来。用法:grep [选项] 要搜索的字符串 文件,-i忽略大小写一并打印,-n顺便输出行号,-v反向选择。

补充:sort 文件(可以对文件内容以Ascii的形式进行排序),uniq 文件(将文件中相同的只列出一项)。 

zip与unzip指令

zip与unzip是用来压缩或者解压文件的文件格式为zip。zip用法:zip -r 你定义的压缩包 dir要打包压缩的目录,unzip用法:unzip 你定义的压缩包 不接目录默认在当前文件夹中解压(接目录在目录文件下解压)

tar指令 

tar是一个压缩解压缩指令,压缩格式通常为.tgz

tar -czf 名字.tgz 待压缩目录或文件

tar -xzf 名字.tgz (解压)

tar -xzf 名字.tgz -C 指定目录(解压到指定目录) 

-t不打开压缩文件,直接查看压缩包里的所有内容,-tf

-v压缩/解压缩时,同步显示文件列表

bc指令 

类比于windows中的计算器,按ctrl+z退出bc。

uname指令

uname可以查看系统信息,uname -r 查看Linux内核信息,uname -a查看操作系统所有信息。

用户

在Linux中,存在两种用户,一种超级用户root一种普通用户user,而超级用户root命令提示符是#,普通用户user命令提示符是$。超级用户在Linux系统里能够做任何事情,没有限制,而普通用户只能做有限的事情。

如何创建普通用户呢?在Linux里,adduser 用户名(用来添加用户),passwd 用户名(用来设置用户密码),userdel -r 用户名(删除用户)

使用su命令可以在超级用户与普通用户之间切换,su 普通用户名(超级用户切换为普通用户不需要输入密码就能执行),su root(root可以省略,普通用户切换超级用户需要输入超级用户的密码)

文件访问者的分类

访问者一共有三个,一是拥有者u,二是所属组g,三是其他用户o。它们对于一个文件的操作权限通常也是不同的。

文件类型与其访问权限

在Linux中文件有很多种类型,让我们来看看:

d:文件夹

-:普通文件

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件

文件的访问权限有三种,r代表的是读,w代表的是写,x代表的是执行。

在我们使用ls -l列出文件信息后,前10列并不是一串乱码而代表的是一个文件的类型以及文件访问者拥有的权限。

如图是ls -l列出来的一个目录文件,前十列字符中,第一个字符'd'表示的这是一个目录文件,后九个字符,三个三个分开,前三个代表的是文件的拥有者的访问权限,中间三个是文件所属组的访问权限,后面三个是文件的其他用户的访问权限。如上图,文件拥有者可以对文件进行读写和执行权限,而文件所属组与其他用户只能读与执行。它们的权限表示方法也可用二进制或者八进制来表示,如rwx二进制表示为111(有对应权限对应位置为1否则为0),八进制为7。如上图文件的访问权限也可表示为111101101或者755。

文件访问权限的修改

 我们可以修改访问者的访问权限,也可以修改访问者。

修改访问权限:chmod u/g/o+/-r/w/x 目标文件,修改拥有者或者所属组,或者其他用户的读写和执行权限。

 

如上图利用chmod u-w date,就将拥有者写w权限给去掉了,此时利用普通用户来说就在该目录下创建新的文件或者目录了。

修改访问者:chown/chgrp -R 用户名 文件名(-r递归修改,目录路径下都修改,无-r只修改当前文件或目录),修改文件的拥有者或者所属组。

有个问题:为什么一个文件创建出来它的访问者的权限就是所呈现的那样,这里就不得不提umask了,umask所代表的值的格式为0???,后三位是都可以是八进制中的任意一位,文件在被创建时默认的访问者权限都为7即777,拥有者所属组和其他人都拥有读写和执行的权限,但是为什么我们创建的文件访问权限却不是如此,因为在umask中后三位数出现的值所代表的权限,在文件中是不能拥有的,在博主的电脑上,umask设置为了0022,二进制展开后为0000010010,为0 ----w--w-,而默认为777展开为,rwxrwxrwx,如果umask中出现的权限文件中不能有,则文件权限为rwxr-xr-x,创建的date目录文件访问权限一致,得证。假设默认值为mask,那么真实值应为mask & ~umask。

权限还未完结噢,博主会努力更新!创作不易,支持一下吧。一键三连支持支持。

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值