总结了一些lniux命令,也是面试高频问到的一些,持续更新
1、su
切换用户
su特点:
切换前的用户依然保持登录状态
root 向普通或虚拟用户切换不需要密码
普通用户切换到其它任何用户都需要密码验证
su缺点:
某用户需要使用root权限、则必须要把root密码告诉此用户
su # 切换到root用户,但是路径还是原来的路径
su test # 切换到test用户,但是路径还是/root目录
su - test # 切换到test用户,路径变成了/home/test
su - #切换到root用户,并且路径是/root
su和sudo的区别:
1、su(switch user)切换用户,sudo(super user )超级用户,一般是root,也有非root用户有超级用户权限
2、切root权限,sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码
3、只有/etc/sudo/sudoers文件中的用户才能使用sudo命令,任何人都可以使用su命令
4、当root密码未设置时,sudo能获取root权限,su不行
5、
2、ls
可查看 linux 文件夹包含的文件,及文件权限(包括目录、文件夹、文件权限)、目录信息等。
语法:
ls [选项] [文件或目录]
参数可以组合使用
比如ls -al
列出包含隐藏文件的所有文件的目录及详细信息(例如权限,大小,所有者等)
ls # 列出当前目录文件,不包含隐藏文件
ls -l # 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
ls -a # 显示全部,包括隐藏文件
ll # 和ls -l一样,可以理解为其缩写
ls -l 查看,第一个字母是-,则表示是个文件,d表示路径,l是链接文件
ls颜色区分:
白色表示普通文件;蓝色表示文件夹;红色表示压缩文件;绿色可读性文件、可执行文件;绿色底色代表所有用户均可访问
3、cd
切换目录/进入路径
命令语法:
cd [目录名] # 切换当前目录至 dirName
举个栗子
cd - # 进入上一次工作路径
cd ~ # 进入 "home" 目录
cd # 进入 "home" 目录
cd .. # 回到当前目录的上一级目录
cd ./ # 进入当前目录
4、pwd
用于查看当前工作目录路径
pwd # 查看当前路径
5、mkdir
用于创建文件夹
mkdir t # 当前工作目录下创建名为 t的文件夹
mkdir /dir1 # 在根目录下创建dir1
mkdir ./dir1 # 在当前目录下创建dir1
mkdir ../dir1 # 在上一级目录下创建dir1
mkdir -p # 若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录
mkdir -p /tmp/test/t1/t # 在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建
6、touch
用于创建一个文件
touch file1 # 创建文件file1
touch file1 file2 file3 # 创建三个空文件
7、rm
删除目录以及其中的内容
语法:
rm [选项] /目标文件或目录
rm -r # 递归删除
rm -f # 强制删除
8、rmdir
删除文件夹,仅允许删除空目录
rmdir /log # 删除当前路径下空文件夹log
9、mv
移动文件/重命名文件
移动文件用法(不同路径下):
mv /需要移动的文件 /移动到新的路径下
重命名文件用法(相同路径下):
mv /原来文件的名字 /新文件的名字
10、cp
复制文件或目录
语法:
cp [选项] [原文件或目录] [目标目录]
cp /源文件 /目标 # 相当改名复制
cp /源文件 /文件夹 # 多个源文件复制到文件夹
cp -r # 递归拷贝目录(复制包括所有子文件)
cp -f # 强制复制,不论目标文件或目录是否已存在
11、cat
查看内容较少的纯文本文件
语法:
cat 文件名
cat -n # 显示行号包括空行
cat -b # 跳过空白行编号
cat -s # 将所有的连续的多个空行替换为一个空行(压缩成一个空行)
cat -A # 显示隐藏字符
12、head
查看纯文本文件前N行的内容
head haha.text # 默认显示前10行
head -n -3 haha.txt # -3 不显示最后3行
head -n 20 haha.tex #表示查看 haha.text 文件的前20行
13、tail
查看文本文件后N行的内容
tail haha.text # 默认显示后10行
tail -f haha.tex # 实时跟踪最后十行
tail -n -3 haha.txt #-3 只显示前三行
tail -n 20 haha.tex #表示查看 haha.text 文件的后20行
14、find
查找与搜索文件
语法:
find 路径 选项 关键字 动作
find /etc/ -name passwd #查找名字叫 passwd的文件
find /etc/ -name *.conf #查找所有.conf 结尾的
find /mnt -user root #查找用户为root的用户
find -size 1k #查找文件大小0.1字节 到 1k
find /home -user zhangsan -ls #找/home 下属于zhangsan的文件并列出属性
15、locate
用来查找文件或目录
locate命令要比find -name快得多
原因:locate不搜索具体目录,而是搜索一个数据库/var/lib/slocate/slocate.db。这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库
locate 和find、grep的区别:
查找原理:
1、find 是去硬盘上搜索文件
2、locate 只在/var/lib/slocate.db清单中找,默认模糊查询,速度比find快,清单默认系统更新,如未更新,查询前手动updatedb一下,注意需要用root权限
3、grep 文件的全文搜索,按文件内容查找(grep 搜索内容 路径)
查找方式:
1、find 路径 -name 文件名,按文件名字找,找的目录放前,找的文件放后
2、grep 搜索内容 路径,全文搜索,把找的内容放前,目录放后
16、grep
文本搜索工具 ,常和管道一起用
语法:
grep [选项]… 查找条件 目标文件
和管道连用:
ps -ef |grep xxx # 过滤出目标进程供查阅
17、管道 |
|管道:左边的输出结果作为右边的输入
18、chmod
19、df
获取硬盘被占用了多少空间,目前还剩下多少空间等信息
用于检查文件系统磁盘占用情况,显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统
20、du
统计/查看空间,查看文件大小
用于检查磁盘空间占用情况,显示目录或文件的大小
ls,df也有类似的功能,但是du更侧重于文件大小
语法:
du [选项] [文件]
du haha.txt # 显示指定文件所占的磁盘空间
du src # 查看指定目录的所占空间
du和df的区别:
du:
通过搜索文件来计算每个文件的大小,然后累加,du能看到的文件只是一些当前存在的,没有删除的,他计算的大小是他认为存在的所有文件累加的和
df:
通过文件系统来快速获取控件大小的信息,比du厉害在在,能看到已删除、没有删干净的缓存文件,而且计算大小的时候会把这部分删除文件的空间加上,更精确了
21、ps
查看进程
ps -ef #查看所有正在运行的进程,-e表示显示所有进程,-f表示全格式
ps -aux
#-a表示所有进程,包括其他用户进程;
#-u表示用户以及其他信息;
#-x显示没有控制终端的进程
pstree # 按树状结构显示进程的层级关系
22、kill
杀死进程
kill pid #杀死某进程
kill -9 pid #强制杀死进程
kill -15 pid #尽力杀死进程
#pid 进程号
23、vi编辑器
vi 一般有三种模式:一般模式,编辑模式,末行模式。三种模式之间的切换都要先切换到一般模式,编辑和末行模式之间不可直接切换
一般模式:
vi 进入vi编辑器,进入的是一般模式
dd # 删除行
ndd # 向下删除n行
yy # 复制
nyy # 向下复制n行
p # 粘贴
np # 向上粘贴n次
编辑模式:
:i 进入编辑模式
英文输入法下,esc 退出编辑模式进入一般模式
末行模式:
:w # 保存
:w 文件名 # 另存为
:q # 退出
:wq # 保存退出
:x # 保存退出,相当于:wq
:set nu # 显示行号
:set nonu # 不显示行号
esc #退出末行模式,进入一般模式