linux命令备忘
1、路径
ls 列举当前目录下所有文件
ls -l 查看目录下所有文件,并显示是文件夹还是文件
-h 显示文件大小
-lh 列表形式展示文件大小
-a 显示隐藏文件
pwd 查看当前路径
cd 跳转路径
cd - 快速返回打上一次路径
cd ~ 进入当前用户的home目录
权限前面的字母d 表示该目录为文件夹;
- 表示该目录为普通文件。
touch 文件名 创建文件
2、帮助信息
① 命令+ “--help”
② man+命令
3、通配符
*.py 所有后缀名为.py的文件
? 代表任意一个字符
[adc] 可匹配字符组中任意一个
- 用于表示范围,必须配合[ ]使用
[0-1] 任一匹配0,1,2中任一个
反斜杠“\”使通配符失去作用
ls \*.a 查找文件名为*.a的文件
参考:
4、重定向 >
ls -alh > text.txt 将查找到的结果保存到 text.txt 中,若该文件不存在则自动创建
gedit xxx.txt 打开文件xxx.txt
ls -a >> text.txt 将查找到的结果添加到 text.txt 中,内容不覆盖
即1个 > 保存的内容会覆盖目标文件原内容,2个 >> 直接在文件内容后面添加
参考:
5、分屏 more
cat 文件名 显示文件所有内容
more 文件名 内容过多时,使用more命令,每次只显示一页,按空格键显示下一页,按 q 退出显示
6、管道 |
命令操作符是:”|”,它只能处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入。
管理命令的输出说明:
【指令1】正确输出,作为【指令2】的输入 然后【指令2】的输出作为【指令3】的输入 ,【指令3】输出就会直接显示在屏幕上面了。通过管道之后【指令1】
和【指令2】的正确输出不显示在屏幕上面
【提醒注意】:
① 管道命令只处理前一个命令正确输出,不处理错误输出;
② 管道命令右边命令,必须能够接收标准输入流命令才行;
例: ls -ahl | more 查找到的结果暂存在管道 | 中, more 分屏从管道中拿数据并显示
参考:
7、目录操作
① 创建目录
mkdir 文件夹名 创建文件夹
touch 文件名 创建文件
② 删除目录
rmdir 文件夹名 删除文件夹(只能删空文件夹)
rm 参数 -r 递归删除
-f 强制删除
rm -rf 文件夹名 (删除非空文件,不可恢复)
参考:
8、创建链接文件
即创建快捷方式 ln
命令格式: ln 源文件 链接文件 (硬链接)
ln -s 源文件 链接文件 (软连接)
软链接:删除源文件,则链接文件无效(链接指向源文件)
硬链接:一份内容多个文件名(内容也记为多个,直到内容个数为0才会完全删除)
补: ls -l 显示内容列表中,权限后面的数字代表该内容的个数
9、查看并合并文件内容
cat 文件名 查看并显示文件内容
cat 1.py 2.py > 3.py 将1.py和2.py内容按先后顺序合并到3.py里
10、文本搜索 grep
参数 -n 在显示符合搜索内容的那一列之前,标示出该列的编号
命令格式: grep [-选项] '搜索内容串' 文件名 搜索xx文件中包含xx字符串的文本行
例如: grep '000' 1.py 查找1.py中包含“000” 的文本行
grep -n '000' 1.py 查找1.py中包含“000” 的文本行 ,并显示该行的行数
搜索内容串(也可加通配符): ' ^22 ' 以22开头
' 22$ ' 以22结尾
参考:
11、文件操作
① 查找文件 find
命令格式: find [查找路径] [查找条件] [处理动作]
find ./ -name 文件名xx -ls 查找文件名为xx的文件并以列表展示文件大小等信息
-size 2M 等于2M的文件
+2M 大于2M的文件
-2M 小于2M的文件
-type f 文件类型为普通文件
注:若不指定路径,则默认在当前目录下查找
参考:
② 拷贝文件 cp
cp 文件名 目标目录
例: cp 2.py test/ 将2.py拷贝到test文件夹中 (test/与2.py在同一级目录)
拷贝文件夹需要加参数 -r
cp test test2 -r 递归拷贝,将文件夹test拷贝到test2中
参考:
③ 移动文件 mv
mv 文件 目标目录
例: mv 文件夹1 文件夹2 将文件夹1移动到文件夹2
补: tree 显示当前目录结构
tree 目录 显示指定目录结构
参考:
④ 文件重命名 mv rename
mv 待修改文件/文件夹 目标文件/文件夹
rename arg1 arg2 arg3
arg1:旧的字符串
arg2:新的字符串
arg3:匹配要重命名的文件,可以使用3种通配符,*、?、[ ]
参考:
⑤ 归档管理 tar
即打包
tar -cvf test.tar 1.txt 2.txt 3.txt 将1,2,3这三个txt文件打包到test.tar 包中
注:-f 必须放在所有参数最后面
解包 tar -xvf 包名
参考:
⑥ 文件压缩
1) gzip [选项] 包名
-d 解压
-r 压缩所有子目录
打包并压缩 tar -zcvf xxx.tar.gz 文件1 文件2 把文件1和文件2压缩成xx.tar.gz
解包并解压 tar -zxvf xx.tar.gz
解压到指定路径 -C + 路径 例: tar -zxvf xx.tar.gz -C 目标路径
参考:
2)bzip2 -j
压缩: tar -jcvf xx.tar.bz2 文件1 文件2
解压: tar -jxvf xx.tar.bz2
参考:
12、系统命令
① cal 当前日历
② date 当前时间
③ ps 查看进程信息
-a 显示终端上的所有进程 -x 显示没有控制终端的进程
-r 只显示正在运行的进程 -u 显示进程的详细状态
结束进程 kill PID (PID为查找到的进程编号)
强制结束进程 kill -9 PID
④ reboot 重启 shutdown 关机
⑤ top 查看动态进程 按 q 退出
⑥ df 查看磁盘空间 df -lh
⑦ du 查看当前目录磁盘占用情况 du -lh
⑧ ifconfig 查看网络配置
13、远程连接网络
ssh 用户名@ip地址
例: ssh python@192.168.xx.xx 远程连接到用户名为python的主机
14、用户管理
① 账户信息
who 查看当前登录的账户信息
whoami 查看我是谁
② 用户管理与权限
1)添加用户(在 /home 下) useradd
useradd 用户名 -m 添加用户并在 /home 下自动创建该用户目录
cat /etc/passwd 下可查看系统当前用户名
2)设置用户密码 passwd
passwd 用户名
参考:
3)删除用户 userdel
userdel -r 用户名 删除用户并删除 /home下目录
4)查看用户组
- cat /etc/group
- groupmod +按3次tap键
5)切换用户
- su 用户名 切换到用户x(普通用户或root)
- su - 用户名 切换用户同时切换到 /home 目录 su - 默认切换到root
参考:
6)添加/删除用户组
groupadd 用户组名 添加用户组
groupdel 用户组名 删除用户组
7)查看用户所在组
groups 用户名
cat /etc/group | 'sudo' 查看用户组名为“sudo” 的内容
8)修改用户所在用户组
useradd -g 用户组 用户 例: useradd -g aaa ceshi 修改用户ceshi的默认组为aaa
-a -G 往其他组添加用户 例: useradd -a -G bbb ceshi 往bbb组中添加ceshi
9)为创建的普通用户添加sudo权限
sudo useradd -a -G adm
sudo useradd -a -G sudo
10)修改文件权限
-rw-rw-r-- 三组权限,第一个“ - ”表示普通文件
第一组“ rw- ”为拥有者权限 u user
第二组“ rw- ”为同组者权限 g groups
第三组“ r-- ”为其他用户权限 o other
方法①:
chmod u+x 文件名 给拥有者加上 x(可执行)权限
chmod g-w 文件名 给同组者减去 w 权限
chmod o=w 文件名 给其他人修改权限为 w (r 权限没有了)
chmod a=rw 文件名 修改所有人权限为 rw
chmod u=w,g=x,o=r 分别修改拥有者权限为 w ,同组者为 x,其他人为 r (逗号隔开)
u=,g=,o= 所有人权限均为空
方法②:
数字法 r 代号4 w 代号2
x 代号1 - 代号0
chmod u=rwx,g=rw,o=x 文件名 等同于 chmod 761 文件名
7=4+2+1 表示rwx 拥有者权限
6=4+2 表示rw 同组者权限
1=1 表示x 其他人权限
11)修改文件拥有者 chown
chown 用户1 文件1 修改文件1 的拥有者为用户1
12)修改文件所属组
chgrp aaa 1.py 将1.py的所属组改为aaa
15、ftp服务器搭建
① 安装vsftpd服务器 yum install vsftpd
一路yes,最后提示安装成功。
② 配置vsftpd.conf vi /etc/vsftpd/vsftpd.conf
将vsftpd.conf文件中的主要设置如下:
③ 启动vsftpd service vsftpd start
④ 设置vsftpd自启动
⑤ 设置root用户可以ftp上传
在/etc/vsftpd/目录下有两个文件:ftpusers和user_list,里面记录的用户无法使用通过ftp进行访问。删掉里面root的记录,然后通过:
fedora 下面关闭selinux就可以了
⑥ 重启vsftpd service vsftpd restart
参考:
16、配置ssh服务
① 先确认是否已安装ssh服务: rpm -qa | grep openssh-server
若未安装ssh服务,可输入: yum install openssh-server
② 修改配置文件 vi /etc/ssh/sshd_config
Port 22 监听的端口号,默认是22,可以自定义。
Protocol 2 支持的协议,默认就好,不用修改
PermitRootLogin yes 是否允许root直接登录,最好设置为no
MMaxAuthTries 6 最大登录数,默认是6,建议设置为3,防止别人密码穷举。
③ 修改完配置后,重启SSH服务: systemctl start sshd.service
④ 登录ssh 用户名@ip地址
例: ssh python@192.168.xx.xx ssh连接到用户名为python的主机
17、远程拷贝scp
① 本地复制到远程(上传) scp [-r] 文件名/文件夹名 远程用户名@ip地址:目标位置的绝对路径
scp a.txt python@192.168.65.121:/home/test/ 将本地的a.txt上传到远程目录/home/test/ 下
② 远程复制到本地(下载) scp [-r] 远程用户名@ip地址:目标位置的绝对路径 本地路径
scp -r python@192.168.65.121:/home/test/ ./ 将远程目录/home/test/ 下的test文件夹下载到本地的当前目录
18、vi 编辑器
① 进入vi编辑器
命令 | 描述 |
vi filename | 如果filename存在,则打开;否则会创建一个新文件再打开。 |
vi -R filename | 以只读模式(只能查看不能编辑)打开现有文件。 |
view filename | 以只读模式打开现有文件。 |
注:竖线(|)代表光标的位置;波浪号(~)代表该行没有任何内容。如果没有 ~,也看不到任何内容,那说明这一行肯定是有空白字符(空格、tab 缩进、换行符等)或不可见字符。
② 工作模式切换:
- 在命令模式下输入 i(插入)、c(修改)、o(另起一行) 命令时进入文本输入模式;按 esc 键退回到命令模式。
- 在命令模式下输入冒号(:)可以进入末行模式。输入完命令按回车,命令执行完后会自动退回末行模式。
- 在末行模式下指令错误则返回命令模式。
提示:如果不确定当前处于哪种模式,按两次 Esc 键将回到普通模式。
③ 快捷操作1)命令模式(即打开文件后)
指令模式主要使用方向键移动光标位置进行文字的编辑,下面列出了常用的操作命令及含义。
快速定位:
88G----- 快速定位到第88行
1G或gg--- 快速定位到文件的首行
G----- 快速定位到文件末尾
删除文本:
d+方向键 -- 删除文字
dd ----- 删除光标所在整行 例:3dd 从光标所在行算起删除3行
X - - - - - - 删除光标往前的字符
x - - - - - - 删除光标往后的字符
复制粘贴:
yy ----- 整行复制 (2yy 从光标所在行开始复制2行 )
p ----- 在光标所在行粘贴已复制的内容
dd+p ---- 剪切粘贴
替换修改:
r ------ 修改光标所在的字符
%s/字符串1/字符串2/g 将文件中所有的字符串1修改为字符串2
5,15s/main/MAIN/g 将文件夹中5-15行中的main修改为MAIN
可视操作:
v------ 从光标所在位置开始,配合上下左右键选中文本,然后再配合d,y,<<,>>等操作使用
撤销操作:
u ------ 一步一步撤销操作 (ctrl+r 反撤销)
>> -----文本右移 (<< 文本左移)
查找操作:
/print ----- 查找包含print的字符串 再配合n(下一个),N(上一个)
2)文本输入模式
在指令模式下(Command Mode)按a/A键、i/I键、o/O键进入文本模式,文本输入模式的命令及其含义如下所示。
a -----在光标后开始插入
A -----在行尾开始插入 i ----- 从光标所在位置前面开始插入 I ----- 从光标所在列的第一个非空白字元前面开始插入 o ----- 在光标所在列下新增一列并进入输入模式 O -----在光标所在列上方新增一列并进入输入模式 ESC --- 返回命令行模式3)末行模式
末行模式主要进行一些文字编辑辅助功能,比如字串搜索、替代、保存文件等操作。主要命令如下
:q -----结束 vi 程序,如果文件有过修改,先保存文件
:q! ----强制退出Vi程序 :wq ---- 保存修改并退出程序 :set nu ---设置行号:17,27>>> --整体向右缩进3个单位