版权声明:本博文转载于别人博客,原文链接https://blog.csdn.net/xulong_08/article/details/81463054
Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。
一、linux的目录结构
- bin (binaries)存放二进制可执行文件
- sbin (super user binaries)存放二进制可执行文件,只有root才能访问
- etc (etcetera)存放系统配置文件
- usr (unix shared resources)用于存放共享的系统资源,/usr 文件系统经常很大,因为所有程序安装在这里。/usr 里的所有文件一般来自Linux distribution;本地安装的程序和其他东西在/usr/local 下。这样可能在升级新版系统或新distribution时无须重新安装全部程序
- home 存放用户文件的根目录
- root 超级用户目录
- dev (devices)用于存放设备文件
- lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
- mnt (mount)系统管理员安装临时文件系统的安装点
- boot 存放用于系统引导时使用的各种文件
- tmp (temporary)用于存放各种临时文件
- var (variable)用于存放运行时需要改变数据的文件
二、linux常用命令
命令格式: 命令 -选项 参数 (选项和参数可以为空), ls -la /usr
1、操作文件及目录
命令 | 参数 | 示例 | 说明 |
---|---|---|---|
cd | cd /home | 切换目录 | |
pwd | pwd | 显示当前工作目录 | |
touch | touch 1.txt | 创建一个文件 | |
mkdir | -p | mkdir dir1 mkdir -p dir1/dir2/dir3 | 创建一个新目录 创建多级目录,父目录不存在的话先生成父目录 |
cp | -r | cp 1.txt cp -r dir1/ | 复制文件或目录 递归处理,将指定目录下的文件与子目录一并拷贝 |
mv | mv dir1 dir2 | 移动文件或目录、文件或目录改名 | |
rm | -r -f | rm 1.txt rm -rf dir1 | 删除文件 r 同时删除该目录下的所有文件 f 强制删除文件或目录 |
rmdir | rmdir dir1 | 删除空目录 | |
cat | cat 1.txt | 显示文本文件内容 | |
more | more 1.txt | 分页显示文本文件内容,可前后翻页,空格向后,b向前 | |
less | less 1.txt | 分页显示文本文件内容,可前后翻页,空格向后,b向前,支持底行模式(后面介绍) | |
head | -[num] | head 1.txt head -20 1.txt | 查看文本开头部分,默认十行 查看文本开头部分指定行数 |
tail | -[num] -f -F | tail -20 1.txt tail -f 1.txt tail -F 1.txt | 查看文本结尾部分指定行数 循环滚动读取文件并动态显示在屏幕上,根据文件属性追踪 循环滚动读取文件并动态显示在屏幕上,文件文件名追踪 |
wc | -m -w -l | wc 1.txt wc -m 1.txt wc -w 1.txt wc -l 1.txt | 统计文本的行数、字数、字符数 字符数 文本字数 文本行数 |
find | -name | find / -name 1.txt | 在文件系统中的指定目录下查找指定的文件 |
grep | grep aaa 1.txt | 在指定文件中查找包含指定内容的行,例:在1.txt中查找包含aaa的所有行 | |
ln | -s | ln 1.txt 1_bak.txt ln -s 1.txt 1_bak.txt | 建立链接文件, 对源文件建立符号连接,而非硬连接 |
2、系统常用命令
命令 | 参数 | 示例 | 说明 |
---|---|---|---|
top | top | 显示当前系统中耗费资源最多的进程 | |
date | date | 显示系统当前时间 | |
ps | -e -f -a -u -x | ps ps -e ps -ef ps -a ps -au ps -aux | 较少单独使用,配参数根据需求,ps -ef 或者ps-aux 显示所有进程,环境变量 全格式显示 显示所有用户的所有进程(包括其它用户) 按用户名和启动时间的顺序来显示进程 显示无控制终端的进程 |
kill | -9 | kill -9 进程id | 强制杀死一个进程 |
df | -h | df df -h | 显示文件系统磁盘空间的使用情况 以人类可读的方式显示,Kb,Mb,GB等 |
du | -s -h | du du -s * du -sh * | 显示指定的目录及其子目录已使用的磁盘空间的总和 显示指定目录的总和,*当前目录下表示所有 以人类可读的方式显示,Kb,Mb,GB等 |
free | free | 显示当前内存和交换空间的使用情况 | |
ifconfig | ifconfig ifconfig eth33 192.168.3.2 | 网卡网络配置,常用于查看当前IP地址 临时修改系统IP(重启后失效) | |
ping | ping baidu.com | 测试网络的连通性 | |
hostname | hostname | 查看主机名 | |
shutdown | -r -h | shutdown -r shutdown -h | 先关机,再重启 关机后不重启 |
halt | halt | 关机后关闭电源,相当于shutdown -h | |
reboot | reboot | 重新启动 相当于shutdown -r |
3、压缩解压缩
命令 | 参数 | 示例 | 说明 |
---|---|---|---|
gzip | -d -[num] | gzip 1.tx gzip -d 1.txt.gz gzip -9 1.txt | 压缩后面的文件或者文件夹 解压后面的压缩文件 用指定的数字num调整压缩的速度, -1或–fast表示最快压缩方法(低压缩比), -9或–best表示最慢压缩方法(高压缩比)。 系统缺省值为6 |
tar | -c -x -z -v -f | tar -cvf 1.tar 1.txt tar -xvf 1.tar 1.txt tar -zcvf 1.tar.gz 1.txt | 建立一个压缩文件的参数指令, 例,将1.txt压缩为1.tar,也可指定多个文件或文件夹 解开一个压缩文件的参数指令 创建一个gzip格式的压缩文件 压缩的过程中显示文件 使用文档名,在 f 之后要立即接文档名 |
4、文件权限操作
- r 可读权限,w可写权限,x可执行权限(也可以用二进制表示 111 110 100 --> 764)
- 第1位:文件类型(d 目录,- 普通文件,l 链接文件)
- 第2-4位:所属用户权限,用u(user)表示
- 第5-7位:所属组权限,用g(group)表示
- 第8-10位:其他用户权限,用o(other)表示
- 第2-10位:表示所有的权限,用a(all)表示
命令 | 参数 | 示例 | 说明 |
---|---|---|---|
chmod | chmod u+r 1.txt | 修改文件或目录的权限 u表示当前用户,g表示同组用户,o表示其他用户,a表示所有用户 r表示可读,w表示可写,x表示可执行 例:修改1.txt文件给当前用户添加可执行权限 | |
-R | chmod -R u+r dir1 | 修改指定目录及其子目录的素有文件的权限 | |
三位数字 | chmod 764 1.txt | 直接指定文件的权限 7:表示可读可写可执行,4+2+1 6:表示可读可写,4+2+0 … | |
chown | chown user1:group1 1.txt | 修改文件的所属用户和组 例:将1.txt文件的所属用户指定为user1,组为group1 | |
-R | chown -R user1:group1 1.txt | 修改目录下所有文件及子目录的所属用户和组 用数字来表示权限(r=4,w=2,x=1,-=0) |
三、linux系统常用快捷键及符号命令
命令 | 参数 | 示例 | 说明 |
---|---|---|---|
ctrl + c | 停止进程 | ||
ctrl + l | 清屏 | ||
ctrl + r | 搜索历史命令 | ||
ctrl + q | 退出 | ||
tab | 自动补全 | ||
> | echo “haha” > 1.txt | 将前一条命令的输出写入到后面的文本中, 将文本清空,然后写入 | |
>> | echo “lala” >> 1.txt | 将前一条命令的输出,写入到后面的 文本中, 不清空文本,追加到文本最后 | |
| | cat 1.txt | grep ‘hello’ | 管道命令,以前一个命令的输出作为输入,然后进行运算, 例:打印1.txt中带有hello字符串的行 | |
* | 通配符,指所有 |
四、vim编辑器
vi / vim是Linux上最常用的文本编辑器而且功能非常强大。只有命令,没有菜单,下图表示vi命令的各种模式的切换图。
4.1修改文本
命令 | 说明 |
---|---|
i | 在光标前插入 |
I | 在光标当前行开始插入 |
a | 在光标后插入 |
A | 在光标当前行末尾插入 |
o | 在光标当前行的下一行插入新行 |
O | 在光标当前行的上一行插入新行 |
:wq | 保存并退出 |
4.2 定位命令
命令 | 说明 |
---|---|
:set nu | 显示行号 |
:set nonu | 取消行号 |
gg | 跳到首行 |
G | 跳到末行 |
:n | 跳到第n行 |
4.3替换和取消命令
命令 | 说明 |
---|---|
u | undo,取消上一步操作 |
Ctrl + r | redo,返回到undo之前 |
r | 替换光标所在处的字符 |
R | 从光标所在处开始替换,按Esc键结束 |
4.4删除命令
命令 | 说明 |
---|---|
x | 删除光标所在处字符 |
nx | 删除光标所在处后的n个字符 |
dd | 删除光标所在行。ndd删除n行 |
dG | 删除光标所在行到末尾行的所以内容 |
D | 删除光标所在处到行尾的内容 |
:5,7d | 删除指定范围的行 |
4.5常用快捷键
命令 | 说明 |
---|---|
Shift+ zz | 保存退出,与“:wq”作用相同 |
v | 进入字符可视模式 |
V | 进入行可视模式 |
Ctrl + v | 进入块可视模式 |
五、scp文件传输
5.1简介
Linux scp 命令用于 Linux 之间复制文件和目录。
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
5.2语法
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 […] [[user@]host2:]file2>
简易写法:
scp [可选参数] file_source file_target
参数说明:
-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
5.3实例
5.3.1从本地复制到远程
1传输文件
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
- 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
- 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
scp /home/music/1.mp3 hhh@10.10.1.222:/home/others/music
scp /home/music/1.mp3 root@10.10.1.222:/home/others/music/01.mp3
scp /home/music/1.mp3 10.10.1.222:/home/root/others/music
scp /home/music/1.mp3 10.10.1.222:/home/root/others/music/001.mp3
2传输目录
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
- 第1个指定了用户名,命令执行后需要再输入密码;
- 第2个没有指定用户名,命令执行后需要输入用户名和密码;
scp -r /home/space/ root@10.10.1.222:/home/others/
scp -r /home/space/ 10.10.1.222:/home/others/
5.3.2从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例 :
scp root@10.10.1.222:/home/others/music /home/music/1.mp3
scp -r 10.10.1.222:/home/others/ /home/music/
说明
- 1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:
#scp 命令使用端口号 4588
scp -P 4588 remote@10.10.1.222:/usr/local/sin.sh /home/administrator
- 2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。