Linux是一个非常强大的系统,它具有:
- 源代码完全开源
- 支持所有的因特网协议
- 系统工具链完整
- 执行效率高
等优点;因此熟练地掌握Linux系统的常用指令就显得非常重要了。
1.cd指令 - 进入文件夹
cd 文件夹路径(路径可以是绝对地址也可以是相对地址) - 进入到指定路径对应的文件夹
cd .. - 返回上层目录
cd / - 进入操作系统根目录
cd ~ - 进入电脑的文件系统根目录
2.ls指令 - 显示当前目录中的内容
ls - 直接显示当前文件夹中的内容的名字(隐藏文件和文件夹看不到)
ls -l/-lh - 显示当前文件夹中的内容和内容的基本信息(隐藏文件和文件夹看不到)
ls -a - 显示当前文件夹中所有的内容(包括隐藏文件)
ls -R - 递归显示当前目录以及当前目录下所有的子目录中的内容
ls -r - 内容倒序显示
ls -S/-t - 显示文件夹中的内容,并且内容按大小/时间从大到小排序
1 | ls -Sr - 按大小从小到大排序 |
3. pwd指令
pwd - 查看当前目录的绝对路径(系统目录下的)
4.文件操作
1)touch指令 - 新建文件
touch 文件路径 - 在指定位置创建指定文件
1 | touch a.txt - 在当前目录下新建一个文件a.txt |
2) cat指令 - 查看文件内容(读文件)
cat 文件路径 - 读取指定路径对应的文件的内容
3) vim指令
vim 文件路径 - 使用vim打开文件
###5.文件夹操作
1) mkdir指令 - 新建文件夹
mkdir 文件夹路径 - 在指定位置创建文件夹
mkdir -p 文件夹路径 - 在指定位置创建文件夹(会创建目录中所有不存在的文件夹)
1 | mkdir -p a/b/c - a,b,c可以都没有,会在当前目录中创建a,在a中创建b,b中创建c |
6.删除文件和文件夹
1)rm指令 - 删除文件和文件夹
rm 文件路径 - 删除指定文件(删除的时候会循环是否确定删除,y-同意, n-不同意)
rm -f 文件路径 - 删除指定文件(删除的时候不询问)
rm -r 文件夹路径 - 删除指定文件夹
2) rmdir指令 - 删除空目录
rmdir 文件夹路径 - 删除指定文件夹(这个文件夹必须是空的)
3)cp指令 - 拷贝
cp 文件路径1 文件路径2 - 将文件路径1指定的文件中的内容复制到文件路径2指定的文件中(文件路径2对应的 文件本身是不存在)
- 将文件1中的内容复制粘贴到文件2(如果文件2不存,会自动创建;如果存在会询问 是否覆盖)
cp 文件路径 文件夹路径 - 将指定文件复制粘贴到指定文件夹中
cp -r 文件夹路径1 文件夹路径2 - 将文件夹1复制粘贴到文件夹2中
4)mv指令 - 移动
mv 文件路径1 文件路径2 - 将文件1移动文件2所在的位置
1 | mv 文件名1 文件名2 - 对文件进行重命名(将文件名1修改为文件名2) |
mv 文件路径 文件夹路径 - 将文件直接移动到指定文件夹中
mv 文件夹路径1 文件夹路径2 - 将文件夹1移动到文件夹2中
7.history指令 - 获取历史记录(指令的历史记录)
history - 显示当前系统已经执行过的所有的指令
1 | 如果想要显示历史记录的时候显示指令执行的时间需要修改~/.bashrc文件: |
8. 创建连接
1)创建软连接(掌握!)
ln -s 源文件路径 软连接文件地址 - 给源文件在指定位置创建一个软连接(软连接本质就是用来保存源文件绝对 地址的一个文件, 可以理解为windows中的快捷方式)
注意: 源文件路径必须写绝对路径
如果删除或者移动源文件,软连接会直接无效
######2)创建硬链接
ln 源文件路径 硬连接文件地址 - 给源文件在指定位置创建一个硬链接
硬链接的本质就是源文件内容的另外一个引用,所以删除或者移动源文件硬 链接仍然有效,只是删除硬链接会变成普通文件
9.进程相关指令
1) ps指令
ps - 查看进程状态
ps -aux - 查看当前所有的进程的信息
ps grep 进程名/进程ID - 根据进程名/进程ID查看指定进程
2)top指令
top - 实时查看当前所有的进程信息和系统信息
top -p PID1,PID2,…. - 实时监测指定的进程
3)free指令
free - 显示当前系统的内存信息,显示的时候以kb为单位
free -单位 - 显示当前系统的内存信息,以指定单位来显示
1 | free -m - 显示当前系统的内存信息,以Mb为单位 |
4)kill指令
kill 进程ID - 杀掉指定id对应的进程
kill -1/-9/-15 进程ID - 以指定的方式(-1表示不间断重启; -9表示强制杀死进程;-15表示正常结束进程)杀掉指定 进程
pkill 进程名 - 杀死指定进程名对应的进程(中间可以加-1/-9/-15)
killall 进程名 - 杀死和进程名相关的所有进程
5)uptime
uptime - 获取系统信息
10.用户管理
一个Linux操作系统可以有多个用户(user),也可以有多个用户组(group); 用户和用户组之间的关系是多对多
users - 查看当前用户
groups - 查看当前分组
groupadd 分组名 - 创建分组(管理员才能创建; 可以通过查看/etc/group文件来查看当前系统所有的分组)
useradd 用户名 - 创建指定用户(1.用户创建成功后系统会自动在/home目录下创建一个和用户名同名的文件 夹;2.会自动创建和用户名同名的分组,并且将当前用户添加到这个分组中)
useradd -G 分组1,分组2,… 用户名 - 创建指定用户,并且将用户添加到指定分组中
usermod -G 分组1,分组2 用户名 - 修改用户分组
password 用户名 - 修改用户密码(需要root权限)
su 用户名 - 切换账号(root登录的时候切换不需要密码,其他账号需要)
exit - 退出当前账号
sudo - 在命令前sudo是以管理员身份执行指令
注意: 不是所有的用户都可以通过sudo来以管理员身份执行指令,如果想要能够使用sudo必须添加配置
a.ubuntu: 将需要有管理员身份的账号添加到sudo分组中
b.redhat和contos: 在/etc/sudoers配置文件中添加代码:
1 | # Allow root to run any commands anywhere |
11.文件权限
文件类型 | 所有者权限 | 同组用户权限 | 其他用户权限 |
---|---|---|---|
-/d/l | rwx | r-x | r-x |
默认情况下文件和文件夹的权限: 文件所有者有读写权限, 同组用户和其他用户都是只读权限。
######1)chmod指令
chmod 权限值 文件路径 - 将指定文件的权限修改成指定值
1 | 权限: rwx r-- rw- |
chmod [a,u,g,o]/[+-]/[r,w,x] 文件地址 - 给指定文件对应指定用户添加或者删除指定权限
(a-所有用户,u-文件所有者,g-同组用户,o-其他用户;
+表示添加权限, -表示删除权限;
r-表示读权限, w表示写权限,x表示执行权限)
1 | chmod a-x 文件地址 # 删除所有用户的执行权限 |
12.日志管理
######1)显示文件内容
a.cat指令 - 直接显示文件中所有的内容
cat 文件 - 直接查看文件所有内容
总结: 查看文件内容的时候可以加参数-n,让内容在显示的时候显示行号
b.查看部分内容
head N 文件地址 - 显示指定文件前N行内容(-n参数无效)
tail N 文件地址 - 显示指定文件最后N行内容(-n参数无效)
c.分页显示
less 文件 - 按页显示文件内容(通过快捷键控制内容显示过程; 文件内容不会打印到shell/终端里)
less -N 文件 - 按页显示文件内容,每次翻页的时候翻N行
more 文件 - 按页显示文件内容(通过快捷键控制内容显示过程; 文件内容会打印到shell/终端里)
more -N 文件 - 按页显示文件内容,每次翻页的时候翻N行
1 | 快捷键: |
2)结果的处理
凡是有的打印结果的指令,我们都可以通过相关指令对应结果进行处理
######a. 管道 - |
如果需要对某一个指令的结果使用另外的指令进行二次处理的时候,就需要用到管道(|)
b.sort - 排序
sort - 从小到大排序(将一行内容作为一个字符串,按字符串大小对应内容进行排序,默认不区分大小写)
1 | cat a.txt |sort # 对a.txt的文件内容从小到大排序显示 |
c.uniq -去重
uniq - 只能将紧挨着的相同行去掉重复的(如果需要去掉所有重复的行,先排序将相同的行放到一起)
1 | cat a.txt|uniq # 去掉a.txt文件内容中相邻重复的行 |
d.awk - 获取列
awk ‘{print $N}’ - 获取内容中第N列的数据
1 | history|awk '{print $2}' # 获取历史记录第2列的内容 |
练习:
1 | history |awk '{print $4}' |sort |uniq ‐c | sort ‐rnk 1 | head ‐n 3 # 统计最常用的3个指令及其使用次数 |
3)输出重定向 - >/>>
执行有打印结果的指令 > 文件地址 - 将指定指令执行的结果保存到指定文件中(先清除原文件内容再添加)
执行有打印结果的指令 >> 文件地址 - 将指定指令执行的结果保存到指定文件中(直接将结果追加到原文件中)
1 | history > a.txt #将当前历史记录直接保存到a.txt文件中 |
4)统计
wc -c/-w/-l 文件地址 - 统计指定文件中字符/单词/行的数量
5)查找
######grep - 找内容
a. grep 内容 文件地址 - 在指定文件中查找指定内容(返回文件中所有包含指定内容的行)
1 | grep you a.txt # 获取a.txt中包含you的所有的行 |
b. 执行有打印结果的指令 |grep 内容 - 在指令执行结果中查找指定内容
c. grep -r 内容 文件夹地址 -在指定文件夹中所有的文件中查找指定内容
######find - 找文件
find 文件夹路径 -name 文件名 - 在指定文件夹下按文件名找指定文件
1 | 找指定文件名 |
find 文件夹路径 -size +/-文件大小 - 在指定文件夹下找文件大小满足条件的所有的文件
1 | find dir1 -size +4k # 查找在文件夹dir1中所有大于4k的文件 |
查指令
which 指令名 -精确查找当前指令对应的文件的路径
whereis 指令名 -查找和指定指令相关的所有的文件的路径
man 指令名 -获取指定指令的使用手册
指令名 — help -获取指定指令的帮助文档
13.Linux系统启停服务
~ 启动:systemctl start nginx
service nginx start
~ 停止:systemctl stop nginx
service nginx stop
~ 重启:systemctl restart nginx
~ 查看状态:systemctl status nginx
~ 开机自启:systemctl enable nginx
~ 禁用自启:systemctl disable nginx