近期学习的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
笔记内容原创,转载请注明来源!
版权属于:soarli
本文链接:https://blog.soarli.top/archives/4.html
转载时须注明出处及本声明。