Cent OS Linux
Linux基础操作
ifconfig 查看端口号
ls 查看当前文件夹下内容
- -a 显示指定文件夹下隐藏文件
- -l 以列表的方式显示该文件夹
- -h 配合-l显示文件大小
ll的本质是ls -l,只是ll是Linux的第三方插件,系统如果没有安装,会显示没有此命令。
pwd 查看当前所在文件夹
touch + 文件名 创建文件夹
mkdir + 目录名 创建目录
直接写
mkdir a/b/c/python
会告诉你没有对应文件,这里的对应文件夹是指a文件夹 我们当然可以一步一步单独创建文件夹,最后创建python
也可以使用 -p 进行递归创建
mkdir a/b/c/python -p
rm + 文件名 删除文件名
rm + 文件夹名 -r 删除文件夹
cd + 目录名 切换文件夹
./ 表示当前的目录或文件夹下 ../ 表示上一级目录
cp + 文件名 拷贝文件
mv + 文件夹 移动文件
tree + 文化名 以树状方式显示目录结构
clear 清屏
自动补全
tab 可以帮你快速补全文件名称
Linux高级操作
chmod 文件权限设置
以“公共”为例。它的权限显示是"drwxr-xr-x",一共由10位组成
第一位:文件类型
-表示普通文件,例如图里的nohup.out,它是一个二进制文件
d 表示文件夹,也就是目录。anaconda3就是一个文件夹
b 表示块文件,磁盘文件,比较少用到
c 字符串,比较少用到
后面是以每三位为一个整体,分为三组权限:
- 文件所有者(Owner):文件的创建者
- 用户组(Group):属于同一组的其他用户
- 其它用户(Other Users):不在同一组的用户,比如游客权限
修改文件权限:
字母法:chmod u/g/o/a +/-/= rwx 文件
- u: user表示文件拥有者
- g: group表示与文件所有者属于同一组者
- o: other表示其他人
- a: all表示这三者皆是
- +: 增加权限
- -: 撤销权限
- =: 设定权限
- r/4: read读取,查看权限
- w/2: write写,修改权限
- x/1: excute可执行,是否可以运行
- -/0: 不具备任何权限
可执行表示表示文件允许被执行,例如一个python文件a.py,如果它的权限是rw-,我们可以打开这个 python文件,添加或者修改里面的内容。但你想用命令行运行它的时候:python3 a.py。会被告知你没有 权限运行
chmod u=rwx,g=rx,o=r 文件
当然也可以上面都不写:chmod u=,g=,o= 文件 这样表示此文件谁都没有权限进行读、写、执行
执行chmod u=rwx,g=rx,o=r 文件 等同于:chmod u=7,g=5,o=4 文件
甚至可以简写为 chmod 754 文件:
- 文件所有者:读、写、执行权限
- 同组用户:读、执行的权限
- 其它用户:读的权限
cp 将给出的文件或目录复制到另一个文件或目录中
-a 递归复制,保持文件所有权限
-i 交互式复制,在覆盖目标文件之前给用户给出提示确认
-r 若源文件是目录文件,则递归复制该目录下所有子目录和文件,目标文件必须是同一个目录名
-v 显示拷贝后的路径描述
cp + 源文件地址 + 复制后文件地址 -irv
rm 删除命令
- -i 交互式执行
- -r 递归删除,删除文件夹必须参数
- -d 删除空目录
- -f 强制删除,忽略不存在的文件,无需提示
切记!!!不要执行 rm -rf /*
例如:需要删除a.txt文件时,可以写作 rm a.txt -i
则会在删除前进行询问,输入y表示同意删除,输入n表示不同意
删除文件夹时,里面如果有文件,则是写作 rm Logs -r
递归删除Logs里面的文件
所以 rm -rf /* 是表示:强制执行递归删除根目录下的所有文件
mv 移动文件或者目录,也可以给文件或者目录重命名
- -i 交互式执行,如果mv操作导致已存在文件的覆盖,系统会询问是否重写,以避免误覆盖文件
- -v 显示移动后的路径
mv /a/b/test.py /a/c/test_1.py
将/a/b/test.py移动到/a/c/下,并改名为test_1.py
无论原来的文件名为什么,移动后的文件以最后写的文件名为准
所以如果是在同目录下运行mv,则实际为重命名文件
重定向命令:>
将命令执行结果重定向到一个文件。
为什么会有重定向?在Linux的操作中,通过代码制定重定向语言,就像是一个日志的记录,会将你的操 作统一记录。当你找不到想要的文件或者忘记自己曾经的操作时,通过查看重定向写入的文件,可以看 到自己以往的操作,也许这个文件已经被你删掉了。
cat 查看或者合并文件内容
结合重定向的操作可以看到,将查看目录文件的操作重定向到test.txt的文件中,再用cat来查看文件里 面的内容。
通过 cat test.txt README.txt > test1.txt ,我们将这两个文件的内容重定向到了test1.txt中。
建立链接文件:ln
Linux链接文件类似于Windows下的快捷方式。
链接文件分为软链接和硬链接。
软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
硬链接:硬链接只能链接普通文件,不能链接目录。
硬连接:ln 源文件 链接文件 软连接:ln -s 源文件 链接文件
- 硬链接后,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在。
- 硬链接更像是凭空复制了一个文件,而软链接是可以在生成的文件后面看到一个箭头指向了源文件。当 修改了源文件之后,硬链接和软链接的文件内容都被更改了
- 硬链接和复制文件有本质的区别:硬链接虽然是生成了一个独立的文 件,但是修改源文件,硬链接的文件也会跟着改变,表示两个文件并不是完全独立的。而当源文件被删 除之后,硬链接的文件就如同是一个独立的文件了,但软链接的文件却像消失了一样,虽然可以看见, 却不能正常访问了。
grep 文本搜索
grep允许对文本文件进行模式查找。如果找到匹配的数据, grep打印包含此数据的所有行
grep一般格式为: grep [-选项] ‘搜索内容串’文件名
在grep命令中输入字符串参数时,最好引号或双引号括起来
- -v 显示不包含匹配文本的所有行
- -n 显示匹配行及其行号
- -i 忽略大小写
通配符
用来做模糊查询的一种特殊字符。 统配字符注意有
*:代表0个或多个任意字符 ?:代表任意一个字符 [列举的字符]:代表的任意一个字符
一般会结合查找命令进行使用,比如ls和find命令
find 搜索
来在特定的目录下搜索符合条件的文件,也可搜索特定用户属主的文件
find ./ -name test.sh 查找当前目录下名为test.sh的文件 find ./ -name ‘*.sh’ 查找当前目录下后缀为.sh的文件 find ./ -name ‘[A-Z]*’ 查找当前目录下所有以大写字母开头的文件
find -name ‘*.txt’
查找的是当前目录下所有以 ".txt" 结尾的文件
显示出来的结果中,不仅是将当前目录下满足条件的文件找到了,也找到了子目录下满足条件的文件。
其实这里的 *.txt 是正则表达式的一种写法
tar 打包及压缩文件
- -c 生成档案文件,创建打包文件
- -v 列出归档、解档详细过程,显示进度
- -f 指定档案名称,f后面一定是.tar文件,所以必须放在选项最后
- -x 解开档案文件
- -z 压缩
这里的参数中,f是必须放在最后的,其他的顺序随意。
tar -cvf test.tar * 将当前目录下的所有文件全部打包成test.tar tar 保存在当前目录下
同样,我们可以用tar将文件进行压缩打包
tar本身是没有压缩功能的,但在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行 先打包后压缩的过程。
tar -czvf test.tar.gz * 将当前目录下的所有文件全部打包并压缩成test.tar.gz 保存在当前目录下
然后,我们可以使用tar进行解压操作
现将test.tar.gz移动到当前目录中的test文件夹中
进入到test目录中,然后通过 tar -zxvf test.tar.gz 进行解压 也可以使用命令来指定解压到哪一个目录下面,例如: tar -zxvf test.tar.gz -C ./test 将test.tar.gz文件解压到当前目录下的test文件夹中 注意:这里的-C,C必须是大写
sudo -s 切换到管理员账号。
因为一般的游客权限是无法对Linux进行文件的写入或执行的,所以当你没有权限的 时候,可以执行这个命令,写换到服务器的管理员账号,但是你得知道密码:
yixuejiaoyu
whoami 查看当前用户
一般在自己电脑上使用这个命令,出现的都是root管理员权限。
但在公司服务器上登陆时,可能会出现 guest游客的权限。
所以结合sudo -s,可以更改权限。
频繁更改权限来执行自己的文件会觉得很麻烦,也可以直接在需要执行的命令前添加sudo来快 捷执行。
sudo python3 test.py 以管理员的权限运行python文件test.py
who
查看所有的登录用户。这里的登陆用户是不包括root管理员的。所以一般查看时,是不会显示出来的
exit 退出登录账户。
图形界面是退出当前终端;
如果是使用ssh远程登录,退出登陆账户;
如果是切换后的登陆用户,退出则返回上一个登陆账号
reboot、shutdown 关机与重启
reboot 重新启动操作系统 shutdown -r now 重新启动操作系统,shutdown会给别的用户提示 shutdown -h now 立刻关机,其中now相当于时间为0的状态 shutdown -h 20:05 系统在今天的20:25会关机 shutdown -h +10 系统再过10分钟后自动关机
软件安装
sudo apt-get update 更新源 以管理员的权限从更新源下载安装包。这里的更新源是一个网址,表示向这个网址进行请求,将网址上的软件 包下载下来 sudo apt-get install package 安装包 以管理员的权限安装这个安装包。安装包就是从上面下载的那个。 sudo apt-get remove package 安装包 以管理员的权限删除这个安装包。
一般的更新源网址都是国外的,下载的速度可能回比较慢,我们可以直接在网上先找到国内的更新源, 再进行下载,速度会比较快
编辑器vim
这是Linux自带的编辑器,用于在Linux内部进行文本或者代码的编辑。直接输入 vim 就能直接进入 编辑器。在shell环境(与Python一样,也是一种脚本语言。开头的提示符为$)中,输入 vi 同样也可以 进入此编辑器。我们使用的Linux环境就是直接的shell环境,如果vim无法进入,就使用vi。
vim 一共有三种模式:
命令模式
任何时候,只需要按下ESC键,就会进入命令行模式。此时的编辑器命令是用来完成编辑器中对应 动作的。如果命令正确就会执行,如果不正确,会在最下方以红色标注出来,告诉你命令不存在或不正 确。在vim的命令模式中,请务必注意命令的大小写。
编辑模式
在命令模式中,输入小写字母 i、a、o、c、r、s都会进入编辑模式,虽然它们的命令操作结果都不 相同。这个模式中,你可以进行文本的编辑。
末行模式
在命令模式中,输入英文的冒号 : ,就可以在窗口最下面看到这个冒号,也表示进行了末行模式。 进入末行模式,我们使用最多的是对文件退出的操作
命令模式
移动命令
h:左移
j:下移
k:上移
l:右移
M: 光标移动到中间行
L: 光标移动到屏幕最后一行行首
G: 移动到指定行,行号 -G
w: 向后一次移动一个字
b: 向前一次移动一个字
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
Ctr-f: 向下翻一屏
Ctr-b: 向上翻一屏
gg: 光标移动文件开头
G: 光标移动到文件末
当然,也可以通过键盘的方向键来移动光标。但是万一遇到没有方向键的键盘呢?而且其中的命令可以 快速地到达文本的某一个位置,而不是通过按键一个个的移动。
删除命令
x: 删除光标后一个字符,相当于 Del
X: 删除光标前一个字符,相当于 Backspace(普通的删除Delete键)
dd: 删除光标所在行,n dd 删除指定的行数
D: 删除光标后本行所有内容,包含光标所在字符
d0: 删除光标前本行所有内容,不包含光标所在字符
dw: 删除光标开始位置的字,包含光标所在字符
撤销命令
u: 一步一步撤销
Ctr-r: 恢复刚才的撤销
重复命令
.: 重复上一次操作的命令。这里是英文的句号,也就是一个点
复制粘贴
yy: 复制当前行,n yy 复制 n 行
p: 在光标所在位置向下新开辟一行,粘贴
可视模式
v: 按字符移动,选中文本
V: 按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动
替换操作
r: 替换当前光标所在位置的字符
R: 进入替换的状态(窗口下面会出现replace的字样),替换当前行光标后的字符。完成替换后可以按esc 退出。
也可以在末行模式进行替换操作。
例如将文本中的 "iii" 替换为 "学习python"
:%s/iii/学习python/g
或者是将第一行至第10行之间的d替换成12
:1, 10s/d/12/g
注意:%表示整个文件, 1, 10表示1到10行范围内,s表示替换,g表示全局
查找命令
/:输入斜杠/后 在输入需要查找的内容
n: 下一个
N: 上一个
编辑模式
i: 插入光标前一个字符
I: 插入行首
a: 插入光标后一个字符
A: 插入行未
o: 向下新开一行,插入行首
O: 向上新开一行,插入行首
这里分别是大小写的英文o,不是数字零
末行模式
: 输入冒号,进入末行模式。在末行模式中
w:保存
wq:保存并退出
q!:不保存并强制退
标签:文件,tar,CentOS,Linux,test,操作,权限,链接,光标
From: https://www.cnblogs.com/xhboo/p/17442001.html