linux学习linux种类RHEL(收费)Fedora(RHEL免费版)CentOS(免费)Deepin(中国发行)Debian(免费且外国流行)Ubuntu(非常流行)linux命令快捷方式通过上下方向键 ↑ ↓ 来调取过往执行过的Linux命令命令或参数仅需输入前几位就可以用 Tab 键补全Ctrl R 用于查找使用过的命令history命令用于列出之前使用过的所有命令然后输入!命令加上编号 (!2) 就可以直接执行该历史命令Ctrl L清除屏幕并将当前行移到页面顶部Ctrl C中止当前正在执行的命令Ctrl U从光标位置剪切到行首Ctrl K从光标位置剪切到行尾Ctrl W剪切光标左侧的一个单词Ctrl Y粘贴Ctrl U | K | Y剪切的命令Ctrl A光标跳到命令行的开头Ctrl E光标跳到命令行的结尾Ctrl D关闭Shell会话常用命令pwd:显示当前目录的路径which查看命令的可执行文件所在路径ls:列出文件和目录wwww-a ,-l,-t,-h,-icd:切换目录cd / -- 跳转到根目录cd ~ -- 跳转到家目录cd … -- 跳转到上级目录cd ./home -- 跳转到当前目录的home目录下cd /home/lion -- 跳转到根目录下的home目录下的lion目录cd -- 不添加任何参数也是回到家目录du:列举目录大小信息。(-h,-a,-s)cat一次性显示文件所有内容更适合查看小的文件。-n 显示行号less分页显示文件内容更适合查看大的文件。-n 显示行号【快捷操作】查看文件内容空格键前进一页一个屏幕 b 键后退一页 回车键前进一行 y 键后退一行 上下键回退或前进一行 d 键前进半页 u 键后退半页 q 键停止读取文件中止less命令 键显示当前页面的内容是文件中的第几行到第几行以及一些其它关于本页内容的详细信息 h 键显示帮助文档 / 键进入搜索模式后按 n 键跳到一个符合项目按 N 键跳到上一个符合项目同时也可以输入正则表达式匹配。head显示文件的开头几行10-n指定tail显示文件的结尾几行10-n指定touch创建一个文件mkdir创建一个目录-p递归cp拷贝文件和目录cp file file_copy -- file 是目标文件file_copy 是拷贝出来的文件cp file one -- 把 file 文件拷贝到 one 目录下并且文件名依然为 filecp file one/file_copy -- 把 file 文件拷贝到 one 目录下文件名为file_copycp *.txt folder -- 把当前目录下所有 txt 文件拷贝到 folder 目录下mv移动重命名文件或目录与 cp 命令用法相似。rm删除文件和目录 (-i确认-f强制-r递归删除目录rm -rf常见)rm new_file -- 删除 new_file 文件rm f1 f2 f3 -- 同时删除 f1 f2 f3 3个文件ln创建链接(无参数硬链接-s软链接)软链接相当于快捷方式若删除了本体则软链接也会消失。硬链接则相反本体或链接删除都不会对另一方造成影响。用户与权限Linux是一个多用户的操作系统。在 Linux中理论上来说我们可以创建无数个用户但是这些用户是被划分到不同的群组里面的有一个用户名叫root是一个很特殊的用户它是超级用户拥有最高权限。sudo以 root身份运行命令useradd添加新用户passwd修改用户密码userdel:删除用户su切换用户以上4个命令都需要root权限groupadd创建群组groupdel删除一个已存在的群组groups查看用户所在群组groups lion -- 查看 lion 用户所在的群组usermod用于修改用户的账户-l 用户重命名,-g 修改用户所在的群组-G 一次性让用户添加多个群组-a 在使用-G时追加自动离开的原群组chgrp用于修改文件的群组chgrp bar file.txt -- file.txt文件的群组修改为barchown改变文件的所有者需要 root 身份才能运行(-R 递归设置子目录和子文件)chown lion file.txt -- 把其它用户创建的file.txt转让给lion用户chown lion:bar file.txt -- 把file.txt的用户改为lion群组改为barchmod修改访问权限。(-R 递归修改权限)chmod 740 file.txtchmod -R 777 /home/lion权限d 表示目录就是说这是一个目录普通文件是 - 链接是 l 。r (4)read表示文件可读。w (2)write表示文件可写一般有写的权限就有删除的权限。x (1)execute表示文件可执行。- 表示没有相应权限。改变权限只需做一些加法就行drwxr-xr-x的意思?它是一个文件夹它的所有者具有读、写、执行权限它的群组用户具有读、执行的权限没有写的权限它的其它用户具有读、执行的权限没有写的权限。字母分配权限uuser 的缩写用户的意思表示所有者。g group 的缩写群组的意思表示群组用户。o other 的缩写其它的意思表示其它用户。a all 的缩写所有的意思表示所有用户。 加号表示添加权限。- 减号表示去除权限。 等于号表示分配权限。chmod urx file -- 文件file的所有者增加读和运行的权限chmod gr file -- 文件file的群组用户增加读的权限chmod o-r file -- 文件file的其它用户移除读的权限chmod gr o-r file -- 文件file的群组用户增加读的权限其它用户移除读的权限chmod go-r file -- 文件file的群组和其他用户移除读的权限chmod x file -- 文件file的所有用户增加运行的权限chmod urwx,gr,o- file -- 文件file的所有者分配读写和执行的权限群组其它用户分配读的权限其他用户没有任何权限locate搜索包含关键字的所有文件和目录注意locate 命令会去文件数据库中查找命令而不是全磁盘查找因此刚创建的文件并不会更新到数据库中所以无法被查找到可以执行 updatedb 命令去更新数据库。find用于查找文件find -name “file.txt” -- 当前目录以及子目录下通过名称查找文件find -name “.txt -atime -7 -- 近 7天内访问过的.txt结尾的文件find / -name flag” 2/dev/null 查找根目录下的flag文件find . -name “file” -type f -- 只查找当前目录下的file文件find . -name “file” -type d -- 只查找当前目录下的file目录find -name “.txt -printf “%p - %u\n” -- 找出所有后缀为txt的文件并按照 %p - %u\n 格式打印其中%p文件名%u文件所有者find -name .jpg” -delete -- 删除当前目录以及子目录下所有.jpg为后缀的文件不会有删除提示因此要慎用find -name “.c -exec chmod 600 {} ; -- 对每个.c结尾的文件都进行 -exec 参数指定的操作{} 会被查找到的文件替代; 是必须的结尾find -name .c” -ok chmod 600 {} ; -- 和上面的功能一样会多一个确认提示注意find 命令只会查找完全符合 “何物” 字符串的文件而 locate 会查找所有包含关键字的文件软件仓库yum常用命令 kail无yum但有apt与yum类似yum update | yum upgrade 更新软件包yum search xxx 搜索相应的软件包yum install xxx安装软件包yum remove xxx删除软件包阅读手册manhelpman手册种类可执行程序或Shell命令系统调用 Linux 内核提供的函数库调用程序库中的函数文件例如/etc/passwd特殊文件通常在/dev下游戏杂项man(7)groff(7)系统管理命令通常只能被root用户使用内核子程序。man 3 rand -- 表示在手册的第三部分查找 rand 函数man ls -- 查找 ls 用法手册linux进阶文本操作grep全局搜索一个正则表达式并且打印到屏幕。找关键字 -i 忽略大小写-n 显示行号-v 反向搜索-r 递归grep可以配合正则表达式使用grep -E path /etc/profile -- 完全匹配pathgrep -E ^path /etc/profile -- 匹配path开头的字符串grep -E [Pp]ath /etc/profile -- 匹配path或Pathsort:对文件的行进行排序-o将排序后的文件写入新文件sort -o name_sorted.txt name. txt-r倒序排序sort -r name.txt -R随机排序sort -R name.txt -n对数字进行排序默认是把数字识别成字符串的因此 138 会排在 25 前面如果添加了 -n 数字排序的话则 25 会在 138 前面。wc:word count的缩写用于文件的统计 (行数,单词数字节数)-l只统计行数 wc -l name.txt-w只统计单词数wc -w name.txt-c只统计字节数wc -c name.txt-m只统计字符数wc -m name.txt。uniq:删除文件中的重复内容。(-c统计重复行数-d只显示重复的行数)【注意】它只能去除连续重复的行数。(不会对实际文本作出修改若两个重复行中间有未重复行则会重新运行)cut剪切文件的一部分内容-d用于指定用什么分隔符比如逗号、分号、双引号等-f表示剪切下用分隔符分割的哪一块或哪几块区域cut -d , -f 3 1.txt重定向 管道 流在 Linux 中一个命令的去向可以有 3 个地方终端、文件、作为另外一个命令的入参。标准输入stdin终端接收键盘输入的命令会产生两种输出标准输出stdout终端输出的信息不包含错误信息标准错误输出stderr 终端输出的错误信息。重定向把本来要显示在终端的命令结果输送到别的地方到文件中或者作为其他命令的输入。输出重定向 (覆盖原文件)输出重定向 (追加文件的末尾)输出重定向 2标准错误输出cat not_exist_file.csv res.txt 2 errors.log输出重定向 2: 与类似输出重定向 21:标准输出和标准错误输出都重定向都一个地方cat not_exist_file.csv res.txt 21 # 覆盖输出cat not_exist_file.csv res.txt 21 # 追加输出输入重定向 用于指定命令的输入。对于支持文件名参数的命令加与不加,两者结果类似对于不支持文件名参数的命令必须用重定向否则回一直等键盘输入输入重定向 将键盘的输入重定向为某个命令的输入sort -n END # 输入这个命令之后按下回车终端就进入键盘输入模式其中END为结束命令这个可以自定义管道 |把两个命令连起来使用一个命令的输出作为另外一个命令的输入cut -d , -f 1 name.csv | sort sorted_name.txtgrep log -Ir /var/log | cut -d : -f 1 | sort | uniq流流并非一个命令流就是读一点数据, 处理一点点数据。其中数据一般就是二进制格式。上面提及的重定向或管道就是把数据当做流去运转的。进程查看进程w帮助我们快速了解系统中目前有哪些用户登录着以及他们在干什么ps:用于显示当前系统中的进程 ps 命令显示的进程列表不会随时间而更新是静态的是运行 ps 命令那个时刻的状态或者说是一个进程快照。top: 获取进程的动态列表kill: 结束一个进程killPIDkill 956 # 结束进程号为956的进程kill 956 957 # 结束多个进程kill -9 7291 # 强制结束进程管理进程进程状态状态码 R 表示正在运行的状态状态码 S 表示中断休眠中受阻当某个条件形成后或接受到信号时则脱离该状态状态码 D 表示不可中断进程不响应系统异步信号即使用 kill 命令也不能使其中断状态码 Z 表示僵死进程已终止但进程描述符依然存在直到父进程调用 wait4() 系统函数后将进程释放状态码 T 表示停止进程收到 SIGSTOP 、 SIGSTP 、 SIGTIN 、 SIGTOU 等停止信号后停止运行。前台进程后台进程在命令末尾加启动后台进程它的缺点是后台进程与终端相关联一旦关闭终端进程就自动结束了nohup使进程不受挂断关闭终端等动作的影响cp name.csv name-copy.csv nohup cp name.csv name-copy.csvnohup cp name.csv name-copy.csv bg:使一个 “后台暂停运行” 的进程状态改为“后台运行”(不加参数的情况下默认作用与最近的一个后台程序)前端开发时我们经常会执行 yarn start 启动项目此时我们执行 ctrl z 先使其暂停然后执行 bg 使其转为后台运行这样当前终端就空闲出来可以干其它事情了如果想要唤醒它就使用 fg 命令即可后面会讲jobs:显示当前终端后台进程状态。fg:使进程转为前台运行用法和 bg 命令类似守护进程在 Linux 中有些进程是特殊的它不与任何进程关联不论用户的身份如何都在后台运行这些进程的父进程是 PID 为 1 的进程 PID 为 1 的进程只在系统关闭时才会被销毁。它们会在后台一直运行等待分配工作。我们将这类进程称之为守护进程 daemon 最后有一个d如systemd、httpd。systemd常用命令systemctl start nginx # 启动服务systemctl stop nginx # 停止服务systemctl restart nginx # 重启服务systemctl status nginx # 查看服务状态systemctl reload nginx # 重载配置文件(不停止服务的情况)systemctl enable nginx # 开机自动启动服务systemctl disable nginx # 开机不自动启动服务systemctl is-enabled nginx # 查看服务是否开机自动启动systemctl list-unit-files --typeservice # 查看各个级别下服务的启动和禁用情况文件压缩解压打包是将多个文件变成一个总的文件它的学名叫存档、归档。压缩是将一个大文件通常指归档压缩变成一个小文件。tar创建一个tar归档-cvf表示 create创建 verbose细节 file文件创建归档文件并显示操作细节-tf 显示归档里的内容并不解开归档-rvf追加文件到归档tar -rvf archive.tar file.txt-xvf解开归档tar -xvf archive.tar。gzip/guzip:“压缩 / 解压” 归档zcat、zless、zmore:查看压缩文件内容zip/unzip“压缩 / 解压” zip 文件unzip -l archive.zip # 不解开 .zip 文件只看其中内容zip -r sort.zip sort/ # 将sort文件夹压缩为 sort.zip其中-r表示递归编译安装下载源代码去官网下载然后用scp同步到服务器或者直接用wegt下载scp(备份)scp 文件名 用户名服务器ip:目标路径wget: 可以使我们直接从终端控制台下载文件只需要给出文件的 HTTP 或 FTP 地址。wget [参数][URL地址]解压压缩包解压后进入该文件目录配置执行./configure它会分析你的电脑去确认编译所需的工具是否都已经安装了编译执行make命令安装执行make install命令安装完成后执行ls /usr/local/bin/查看是否有安装网络ifconfig:查看 ip 网络相关信息eth0对应有线连接lo表示本地回环 (127.0.0.1)wlan0表示无线局域网host: ip 地址和主机名的互相转换。ssh: 连接远程服务器(ssh 用户ip:port )配置sshconfig文件可以配置ssh方便批量管理多个ssh连接。配置文件分为以下几种全局ssh服务端的配置/etc/ssh/sshd_config全局 ssh客户端的配置/etc/ssh/ssh_config很少修改当前用户ssh客户端的配置~/.ssh/config。实现免密登录配置当前用户的config#创建configvim ~/.ssh/config#填写一下内容Host lion # 别名HostName 172.x.x.x # ip 地址Port 22 # 端口User root # 用户免密登录运行ssh-keygen会在~/.ssh/目录下生成两个文件id_rsa.pub公钥id_rsa私钥执行ssh-copy-id root172.x.x.x把客户机的公钥追加到服务器~/.ssh/authorized_keys的文件中最后运行ssh root172.x.x.x就可以实现免密登录服务器了。配合上卖弄设置好的别名直接执行ssh lion就可以登陆备份scprsync主要用于远程同步文件。它可以同步两个目录不管它们是否处于同一台电脑。-a保留文件的所有信息包括权限修改日期等-r递归调用表示子目录的所有文件也都包括-v冗余模式输出详细操作信息。rsync -arv Images/ backups/ # 将Images 目录下的所有文件备份到 backups 目录下rsync -arv Images/ root192.x.x.x:backups/ # 同步到服务器的backups目录下系统halt关闭系统需要 root 身份reboot重启系统需要root身份poweroff关机不需要rootvim运行vim file.name打开vim1.保存并退出 :wq 或 :x 2.不保存且退出 :q! 。常用模式交互模式查找按 /n 下一个N 上一个移动 方向键(跳至行首按数字0跳至行末$ )剪切 dd(行) 2dd多行 dw一个单词 2dw多个单词 d0从光标到行首 d$从光标到行末复制 y 同剪切粘贴 p撤销 u取消撤销 Ctrl r跳转指定行 数字gg G(最后一行) gg(第一行)插入模式按i进入命令模式按 运行外部命令:!(在该文件所在的目录)查找并替换: s/one/two末尾加g表示对行操作%s表示全文替换合并文件:r分屏:sp||:vsp分屏的快捷键Ctrlw再加方向键、、-、、r、q、o可视模式按v(字符)V(行)ctrlV(块)d键表示删除选中I键表示在选中之前插入u键表示选中变为小写U键表示选中变为大写学习心得linux的内容很杂也很多主要是熟悉各类方面的命令以及相应的命令场景对以后打相关漏洞很有帮助想学习web首先应该熟悉linux操作系统但是这么多内容我是真头大不知道以后能不能掌握这么多命令听天由命吧希望自己早日拿下自己的第一洞加油