soarli

Linux常用命令
近期学习的Linux知识笔记,内容原创,转载请注明来源!Linux常用命令(命令+选项+参数)当前目录pwd当前目...
扫描右侧二维码阅读全文
20
2020/01

Linux常用命令

近期学习的Linux知识笔记,内容原创,转载请注明来源!

Linux常用命令(命令+选项+参数)

当前目录

pwd

当前目录文件列表

只显示目录名:ls
显示所有文件(包括隐藏):ls -a
显示文件信息:ls -l
    等价于 ll
大小单位显示KB,MB...:ls -lh
直接显示特定目录的内容:
    ls desktop/
    ls/home/soarli
显示文件id: ls -i

通配符:

ls *.txt 前面有0-多个字符的,以.txt结尾的文件;
ls 1* 会把以1开头的文件罗列出来;
ls 1*.odt 会把以1开头且以.odt结尾的文件罗列出来;
ls 1?.odt 会把以1开头且其后仅有一位且以.odt结尾的文件罗列出来;
[1234]23.odt 第一位在列表中取得,存在即输出;
[1-4]23.odt 同上;

总结:

*多位

?一位

[]一位

切换目录

cd /home/soarli
cd ..
cd ../.. 上级的上级
cd ~ 打开home路径下的用户目录
    等价于只输入cd
cd / 打开根目录
绝对路径:
cd /home/soarli
相对路径:
cd soarli
cd - 输入一次,返回上次访问的目录,再输一次又会回来

文件的创建

touch test.txt

只能创建文件,不能创建目录

目录的创建

mkdir bb

make directory只能创建目录

在实际使用中,如果我们要一次创建多个子目录,只需-p参数:

mkdir aa/bb/cc

创建隐藏文件/目录

名称前面加.号即可实现

删除文件/目录

文件:

rm test.txt

目录:

rm -d bb 仅限空目录
rm -r bb 不管里面是不是空的

以上两条命令均可移除目录

清屏

clear

移动文件/目录

mv 123.txt aa (相对路径)
mv 456.txt /home/soarli/Desktop (绝对路径)
mv bb aa 直接移动目录(文件夹)
cp 125.txt aa 拷贝文件
cp -r aa/bb . 拷贝目录

其中,mv命令可以在移动的同时给文件改名:
mv 125.odt ./126.odt
mv 126.odt /aa/127.odt

cp命令也有类似功能:
cp 125.odt ./126.odt
cp 126.odt /aa/128.odt

帮助手册与帮助手册

help命令(--help):

rm --help
ls --help

man命令(manual用户手册):

man rm

which的用法

which + 命令
which ls

用which可以查看命令源文件所在目录。

文件的搜索

前面提到的通配符是一种简单的模糊搜索

find命令通用搜索

精确搜索:

find /home -name 125.txt

搜索范围 + 搜索条件

搜索条件格式为:按啥搜索 + 搜索啥

系统返回文件的具体位置。

模糊搜索:

find /home -name '12*'

大小写不敏感:

find /home -iname 'abc'

按大小搜索

find /home/soarli/Desktop/ -size +1
其中,参数中的+1代表大于一个数据块的文件,其中每个数据库都是512个字节;
同理,我们可以用-1表示小于一个数据块的文件。

简单换算200MB是多少个数据块,
1KB=2个
所以,200MB=200*1024*2=409600

在根目录搜索大于200MB的命令自然为:
find / -size +409600

或:
find / -size +200M

大于4k,小于5M:
find / -size +4K -size -5M

按权限搜索

find / -perm 777

按所属人(用户)搜索

find /home -user soarli

按文件时间搜索

文件属性被修改时间

find /home -cmin -5
表示在5分钟之内,+5表示大于5

文件内容被修改时间

find /home -mmin -5
表示在5分钟之内,+5表示大于5

文件被访问时间

find /home -amin -5
表示在5分钟之内,+5表示大于5

按文件类型搜索

1.文件

find /home/soarli/Desktop/ -type f
f:file

2.目录

find /home/soarli/Desktop/ -type d
d:directory

3.软链接(类似于快捷方式)

find /home/soarli/Desktop/ -type l
l:link

多种搜索条件的组合

find /home/soarli/Desktop/ -name 'a*' -a -type f

搜索条件连接符:
-a:and
-o or

通过文件ID搜索

查看文件id方法:

ls -i

搜索方法:

find /home/ -inum 5645215

除了ls和find,我们还可以使用locate命令进行搜索(搜索速度较快)

格式:

locate + 要搜索的文件/目录名
帮助文档:locate --help

locate的缺点:更新不够及时,其索引库会不定期自动更新。

手动更新索引库的方法:

sudo updatedb

查看文件内容的命令:

cat:

cat + 文件名
选项:
  -b:显示行号(不包括空行)
  -n:显示行号(包括空行)

more:

more + 文件名

区别:

cat命令会直接显示内容;
more命令会分页显示文件内容;
可以按空格下一页,回车下一行,b上一页

文件内容搜索方法

法一:图形界面Ctrl+F搜索

法二:命令行下 grep 要搜索的内容 目标文件 会把包含文本的行打印出来
例如:

grep user 126.txt

搜索显示行号(加-n选项):

grep -n user 126.txt

反向搜索:

grep -v user 126.txt
把不包含user的行打印出来

例如:我们要抓取一个文件中的带#的注释行
grep '#' /etc/services

如果我们仅要抓取#开头的行,需要使用^:
grep ^'#' /etc/services

我们要把所有以#开头的行去掉:
grep -v ^'#' /etc/services

搜索以s结尾的行,需要使用$:
grep s$ /etc/services

大小写不敏感:

grep -i abc 126.txt
会把大小写的abc抓出来

回显命令:

echo可以打印输入的内容:

默认情况下打印到控制台

加上 > 可以打印到文件

例如:

echo hello > 126.txt
(会覆盖掉原来的文件,如果文件不存在则会新建)

追加到末尾:

echo hello >> 126.txt

尖括号不仅仅可用于echo

如:

ls > 126.txt
会把ls得到的内容打印到126.txt文件中

类似的,我们也可以

ll > 126.txt

linux中,我们通常情况下认为不带后缀的文件是文本文件

管道

将一个命令的输出,作为另一个命令的输入。

用法 :

a | b
将命令a的输出作为命令b的输入。

软/硬链接

类似与Windows里的快捷方式

新建目录:touch aa/abc

创建软链接:ln -s aa/abc abc_softlink

创建硬链接:ln f1 f2

其中,ln代表link

Linux的多用户:

新建用户

sudo useradd user1

加上-m参数可以同时新建home目录
sudo useradd -m user2

查看用户是否新建成功

cat /etc/passwd

看最后几行

给用户设置密码

sudo passwd user1

会出现让设置密码的提示

直接输入passwd可以给当前用户修改密码

用户分组

每个用户都有一个初始组,可以有零个或者多个附加组。用户组的作用,是为了方便权限控制。(附加组就足为了给用户附加别的权限)

当创建用户的时候,系统会创建一个跟用户名同名的组。

文件属性:所属用户、所属用户组

直接输入:

id

即可查看当前用户组信息(gid中)

新建用户时可以直接指定其所在的组

sudo useradd -g user3 user4

把user4放在组名为user3的组

启用root用户的方法

sudo passwd root

切换为root用户的方法

su root
进入后会发现命令提示符为#而不是$

退出方法:

输入exit或按下Ctrl+D

登录其他用户的方法

su user3

登录其他用户并直接进入其home下的方法

su - user3

删除用户的方法

userdel user1

同时删除其home目录:

userdel -r user2

强制删除用户(不管其登陆状态)

userdel -f user5

用户组的管理

查看所有用户组:

cat /etc/group

用户组改名:

groupmod -n 新名字 要改名的组
例如:
groupmod -n group_new group1
cat /etc/group
可以发现已被改名

用户组删除:

groupdel group_new
cat /etc/group
可以发现已被删除

文件/用户/组 都有自己的id

直接输入id可以查看用户id和所在组id;

文件id用

ls -i

查看;

id 用户名

可以查看目标用户的用户id和组id

内置命令和外置命令

which cd

没有反馈任何信息,因为cd这个命令是放在shell(bash里面的)内置命令。

内置命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。

而外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。

大部分内置命令都是内置在shell中的,也有一些内置命令有目己单独的文件。

系统启动,会把shell中的内置命令,以及其他不在shell中的内置命令加载到内存。

查看用户id和修改用户id的方法

id
当前用户详细信息
whoami
查看当前用户名
who
查看当前谁在登陆用户(待测试)

修改用户所在的组从而控制权限

修改初始组:
usermod -g 目标组 目标用户
修改权限/添加其他权限通常修改附加组:
usermod -G 目标组(多个组用逗号隔开) 目标用户
修改shell:
usermod -s /bin/sh user1

文件权限的控制

第一个字符:
-:二进制文件
d:文件夹
|:软链接

后9个字符分为3部分:
前3个代表文件所有者u(user)拥有的权限;
中间3个是所属组g(group)拥有的权限;
最后3个是其他用户o(other)的操作权限;

r,w,x,-:
r读  w写  x执行  -没有该项权限

通常情况下,有w就要有r(rw)

所属人的权限与所属组的权限只要有一个有,所属用户就有权限(通过所属组访问)。

对于文件:

可读:可以看到内容
可写:可以修改
可执行:可以运行程序

对于文件夹:

可读:可以列出目录中的内容
可写:可以在目录里面创建或删除文件
可执行:可以进入目录

r和x通常连用

权限的修改

谁能修改? 文件所有者和超管!

怎样修改?
chmod(change mode)

方式一:

chmod [ugoa][+-=][rmx] 文件/目录

方式二:
权限统一修改:
用数字表示权限

r=4  w=2  x=1

例如:
r--:4 rw-:6   rwx:7  -wx:3
r--rw-rwx    467

给当前目录及其所有子目录设置相同的权限:

chmod -r xxx

-r : 递归处理

类似地,我们可以通过命令修改文件所属人和所属组别:

chown(change owner)修改拥有者(所属者)
chgrp(change group)修改拥有组(所属组)

查看历史命令:

history

若要快速再次执行指定命令,只需!命令数字:

!2074       #相当于再次执行历史记录的第2074行命令

视频笔记,原视频:

https://www.bilibili.com/video/av71383568?p=1

补充资料参考文献:

https://blog.csdn.net/helllochun/article/details/41543907

笔记内容原创,转载请注明来源!

最后修改:2020 年 04 月 21 日 12 : 44 AM

发表评论