Linux常用指令及权限概念

常用指令

ls

  • 显示当前路径下文件名

ls -l==ll
列出文件的属性(详细信息)
ls -a
列出目录下的所有文件,包括以 . 开头的隐含文件
ls -l -a
列出目录下的所有文件的属性
ls -i
查看文件的编号

pwd

  • 显示当前我所处的路径

touch 文件名

  • touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件

touch test.txt
在当前路径下创建一个普通文件test.txt
test.txt已存在,更新文件最近修改时间,更新为最新的时间
touch .youcannotseeme.txt
在文件名前添加 . ,用于创建隐藏文件

mkdir 目录名

  • 在当前目录下创建一个名为目录名的目录

mkdir dir
在当前路径下创建一个目录或者文件夹dir
mkdir –p d1/d2/d3
在当前路径下,创建一串目录

cd 目录名

  • 改变工作目录。将当前工作目录改变到指定的目录下

cd ..
返回直接上级目录
./code
运行code文件,使用 . 限定我们要执行的可执行程序所在位置
cd /home/litao/linux/
绝对路径
cd ../day02/
相对路径
cd ~
进入用户家目录
cd -
返回最近访问的目录

rmdir [-p] [dirName]

  • 删除空目录

rmdir p 文件或目录
当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除

rm [-f-i-r-v] [dirName/dir]

  • 删除文件或者目录,可同时删除文件和目录

rm -f 文件名或目录名
强制删除
rm -r 文件名或目录名
递归删除目录及其下所有文件
rm -rf 文件名或目录名
递归强制删除文件或者目录

cp [选项] 源文件或目录 目标文件或目录

  • 复制文件或目录,如果是目录需要加-rf

cp -rf dir ../
递归强制拷贝目录dir到上级目录

mv [选项] 源文件或目录 目标文件或目录

mv test.txt mytest.txt
mv dir new
将文件mytest.txt重命名test.txt
mv dir d1/
将dir转移到目录d1中
mv d1/dir .
将dir转移到目录当前路径中

cat [选项] [文件]

  • 查看目标文件的内容

cat -b 文件名
对非空输出行编号
cat -n 文件名
对输出的所有行编号
cat -s 文件名
不输出多行空行
cat < file.txt > file2.txt
从文件file.txt中提取数据,输入到文件file2.txt

tac [选项] [文件]

  • 逆行序显示

tac test.txt
逆行序显示文件test.txt的内容

> 文件名
  • 输出重定向
  • 如果文件不存在,则创建,否则直接进行访问;从文件开始,覆盖式写入
>> 文件名
  • 追加重定向
    如果文件不存在,则创建,否则直接进行访问;从文件结尾,追加式写入

echo

  • 打印内容到显示器

echo "hello"
打印hello到显示器
echo "hello" > text.txt
将hello保存到text.txt

more [选项] [文件]

  • 与cat类似

more -n file.txt
对输出的所有行编号

less [参数] 文件

  • less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件

-i :忽略搜索时的大小写
-N :显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit

tail [参数] 文件

tail -3 file.txt
查看末尾3行

head [参数] 文件

head -5 file.txt
查看前5行

xargs

  • 将管道输出的结果,作为命令行参数交给后面命令

echo "-l -a -i" | xargs ls
运行ls -l -a -i

  • 有一个文件共有100行内容,请取出第50行内容

方法1 head -n50 test > tmp
将前50行装入临时文件tmp
tail -n1 tmp
得到中建行
方法2 head -n50 test | tail -n1
使用管道文件

date

date +%Y/%m/%d-%H:%M:%S
输出当前时间
date +%s
输出时间戳
date -d@1508749502
由时间戳得到时间

cal

cal -1
显示当前月日历
cal -3
显示前一个月日历
cal -j
显示当天是全年第几天
cal -y
显示当年的日历

find

find ~ -name file.txt
按名查找文件

which

  • 在系统中找到特点指令所在路径

which ls
查找ls命令所在路径

whereis

whereis ls
查找包含ls的所有路径

alias

alias zhangsan='ls -al'
给’ls -al’取别名zhangsan

grep

  • 行文本过滤,在文件中搜索字符串,将找到的行打印出来

grep '888' file.txt
输入包含888的行
grep -n '888' file.txt
顺便输出行号
grep -v '888' file.txt
反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
grep -i 'aB' file.txt
不区分大小写

zip/unzip

  • 将目录或文件压缩成zip格式

zip -r name.zip 要压缩的目录名
压缩
unzip name.zip
解压到当前目录
unzip name.zip -d 指定路径
解压到指定路径

tar

tar -czvf project.tgz project
压缩
tar -xzvf project.tgz
解压
tar -xzvf project.tgz -C /tmp
解压到指定路径

bc

  • 进行浮点运算

echo "1+2+3+4" | bc
打印计算结果

uname

uname -a
查看体系结构
uname -r
查看内核版本

热键

[ctrl]-R
进入搜索模式,搜索相关命令
[Tab]
具有『命令补全』和『档案补齐』的功能
[Ctrl]-c
让当前的程序『停掉』
[Ctrl]-d
通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit

nano 文件名

  • 以记事本方式打开编辑文件

权限

用户

  • Linux下有两种用户:超级用户(root)、普通用户。

其中超级用户拥有所有权限,普通用户只能进行特定权限下的活动

身份

  • 对于Linux下的任意一个文件和目录,其访问者都有如下三种,相应也拥有不同的权限

拥有者: 文件属于谁
所属组:文件属于哪一个组
other:不属于上面两者

基本权限

  1. 读(r/4/100): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  2. 写(w/2/010): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  3. 执行(x/1/001): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  4. “—”表示不具有该项权限

文件属性

  • 在Linux环境下,输入ll可查看该目录下的文件属性,如下
    -rw-r--r-- 1 root root 1024 Oct 24 01:01 test

从左到右含义依次如下:

  • 第1位 - 表示文件类型,test文件的属性是普通文件
  • 第2位到第10位 rw-r--r-- ,每三位分别表示三种用户身份对于的权限,test文件的拥有者具有读写权限即rw-,test文件的所属组具有读权限r--,test文件的其他用户具有读权限r--
  • 1 表示连接数
  • root root 分别表示拥有者和所属组
  • 1024 表示文件大小
  • Oct 24 01:01 表示文件最新修改日期
  • test 表示文件名

文件类型

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
mkfifo f
创建管道文件f
ln -s a.out a.link
创建软连接

-rw-r--r-- 1 root root   65 Aug 15 15:31 a.c
lrwxrwxrwx 1 root root    5 Aug 15 15:32 a.link -> a.out
-rwxr-xr-x 1 root root 8352 Aug 15 15:31 a.out
drwxr-xr-x 2 root root 4096 Aug 15 15:24 d
prw-r--r-- 1 root root    0 Aug 15 15:23 f
-rw-r--r-- 1 root root    0 Aug 15 15:24 t

权限操作

su [用户名]
  • 切换用户

su user1
切换到普通用户user1
su root
切换到超级用户root

chmod [参数] 权限 文件名
  • 只有文件的拥有者和root才可以改变文件的权限

R -> 递归修改目录文件的权限
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限

  • 用户符号:

u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
举例
chmod u+w a.txt
对a.txt的所有用户增加w权限
chmod o-x a.txt
对a.txt的其他用户取消x权限

chown [参数] 用户组名 文件名

chown user1 a
将a文件的拥有者更改为user1

chgrp [参数] 用户组名 文件名

chgrp users a
将a文件的所属组更改为users

file [选项] 文件或者目录
  • 查看文件类型
sudo
  • 临时提高权限,前提是用户需要在信用列表里

sudo -u 用户名 命令

目录权限

  • 进入目录需要 x 权限
  • 查看目录需要 r 权限
  • 在目录中新建或者删除文件需要 w 权限
    目录的可执行权限是表示你可否在目录下执行命令。
    如果目录没有-x权限,则无法对目录执行任何命令,甚至无法 cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
    而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档
umask

Linux默认

一个目录被创建,起始权限是从777
一个普通文件被创建,起始权限是从666
起始权限不等于最终权限

  • 权限掩码——凡是在umask中出现的权限,都不应该在最终权限里出现;超级用户默认掩码值为0022,普通用户默认为0002
  • 最终权限 = 起始权限 & (`umask)

例如umask设置为244,创建一个新文件后,它的权限是多少?
普通文件起始权限是666,umask位244,带入公式最终权限 = 起始权限 & (`umask),则最终权限 = 666 & (~244) = 422 -> 100010010 -> -r—w–w-

粘滞位

删除文件与文件自身权限无关,跟文件所属目录的权限有关,因此,当用户A不是文件B无权限时,即用户A不能读写运行文件B,但由于对存放该文件的目录目录具有写权限w,因此能删除文件B,为防止这种情况,需要给目录添加粘滞位

chmod +t 目录名

  • 当一个目录被设置为"粘滞位",则该目录下的文件只能由超级管理员、该目录的所有者删除和该文件的所有者删除
  • 粘滞位只能给目录设置;粘滞位是谁设置谁才能取消
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值