• 周五. 8月 19th, 2022

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

Linux常用指令和基础

admin

11月 28, 2021
1.Linux前身Unix。1970年Unix元年。Linux时间戳:1970年0点0分0秒开始的秒数。
2.GNU计划。开源计划。GNU/Linux。GCC(GNU Compile Collection)
3.Linux分支:Ubuntu,Debian,Centos等。
4.关机。
# shutdown -r             重启
# shutdown -h now         马上关机
# shutdown -h 10          10分钟后关机

 

5.文件系统。
Bin:              binary                   二进制文件,文件都可以运行。
Dev:              device                   外接设备。需要挂载(类似Windows分配盘符)后才能使用这些外接设备。
Etc:              et cetera                配置文件。
Home:             home                     除root外其他用户的家目录。(类似Windows下的User/用户目录)
Proc:             process                  进程。
Root:             root                     root的home目录。
Sbin:             super binary             二进制文件。管理员运行。
Tmp:              temporary                临时文件。
Usr:              user                     用户安装的软件。(类似Windows的program files)
Var:              variable                 日志文件。
Mnt:              mount                    挂载文件。
Lib               library                  库文件。

  

6.路径。
  • 相对路径:相对当前工作目录的路径。
  • 绝对路径:从根目录开始的路径。
./                  当前目录
../                 上一级目录
/                   根目录
~                   当用户的家目录

  

7.基础命令
# ls                     list                          列出当前工作目录下的所有文件夹和文件的名称。
# ls  [-l]  路径         [-list]                       以详细列表形式列出所有文件夹和文件。
# ls  [-l]  路径         [-all]                        列出所有文件和文件夹。包括隐藏文件。隐藏文件以.开头。(e.g.: .bashrc)
 
-rwxrwxrwx 1  root root 1234  3月 24 22:24  hello.cpp       
drwxrwx--- 10 root root 48899 4月 12 14:44  code
-                        文件
d                        文件夹
rwx-                     读/写/可执行/无权限
rwx/rwx/rwx              文件拥有者/同组用户/其他组用户的权限
 
# pwd                            print work dir                 当前工作目录
# cd                             change dir                     切换目录
# mkdir 路径                     make dir                        创建目录
# mkdir [-p] 路径                [-p]                            多层目录创建过程中,对于不存在的目录自动创建
# touch 路径                                                     创建文件
# cp 源路径 目标路径              copy                             复制文件
# cp [-r] 源路径 目标路径         [-recursive]                     递归复制文件夹
# mv 源路径 目标路径              move                             移动/重命名
# mv [-r] 源路径 目标路径         [-recursive]                     递归移动/重命名文件夹
# rm 路径                        remove                          删除文件
# rm [-r] 路径                   [-recursive]                    递归删除文件夹
# rm [-f] 路径                   [-force]                        强制删除,不提示删除警告
正则表达式,通配符*匹配所有文件
# vim 路径                                                       打开并编辑文件(可以存在/不存在)
# cat 路径                       concatenate                     在终端查看文件
# cat 路径1 路径2 > 新路径        concatenate                      合并文件内容并保存成新文件

 

8.输出重定向。
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果保存到文件中进行后续的分析统计。
>                               覆盖输出,覆盖掉原文件(如果存在)的内容(如果文件不存在,会自动创建新的文件)
>>                              追加输出,不会覆盖原文件的内容

  

9.进阶指令
# df                            disk free                       查看磁盘空间
# df [-h]                       [-human-readable]               人类可读格式查看磁盘空间             
# free [-bkmgh]                 [-Byte/KB/MB/GB/human-readable] 以Byte/KB/MB/GB/合适单位显示内存使用情况
# free [-s]                     [-second]                       <间隔秒数>持续观察内存使用状况
# head [-n] 文件                [-number]                       在终端显示文件前n行。默认显示前10行
# tail [-n] 文件                [-number]                       在终端显示文件后n行。默认显示后10行
# tail [-f] 文件                [-for]                          循环读取文件末尾的内容,跟踪文件增长情况。该命令一般用于查看系统的日志
# less 文件                                                     查看文件
# less [+n] 文件                [+number]                       从number行开始查看文件
辅助功能键:
Q 退出less 命令
空格键 滚动一页
b(back) 向上翻一页
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
# more 文件                                                      查看文件
# wc [-lwc]                    [-line/word/char]                统计文档的行数/单词数/字节数
# date                                                          显示和设置系统时间日期
格式:
一个加号后接数个标记
标记:
%c : 直接显示日期与时间
%D : 直接显示日期 (mm/dd/yy)
%T : 直接显示时间 (24 小时制)
%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%Y : 完整年份 (0000..9999)
%m : 月份 (01..12)
%d : 日 (01..31)
e.g.:
# date
> 三 5月 12 14:08:12 CST 2010
# date '+%c' 
> 2010年05月12日 星期三 14时09分02秒
# date '+%D'      //显示完整的日期
> 05/12/10
# date '+%T'      //显示时间
> 14:09:31
 
# cal [-13y]                   calendar [-1/3/year]             查看当前月/前中后月/某年的日历                                   
# clear                                                         清屏
Swap磁盘:用于临时内存,当系统真实内存不够时可以临时使用磁盘空间来充当内存。
10.管道。用于“过滤”,“特殊”,“扩展处理”。配合指令使用,实现相关功能。
以管道作为分界线,前面的指令有个输出,后面的指令需要先输入,然后再过滤,最后再输出,通俗的讲管道前面指令的输出就是后面指令的输入。
grep 过滤,查找内容包含指定的字符串的文件
e.g.:
# ls / | grep y                通过管道查询根目录下包含"y"字母的文件名称
# ls / | wc -l                 通过管道查询根目录下文件个数
11.高级指令
# hostname                                                      操作(读取、设置等)服务器主机名
# hostname [-f]                 [-fqdn]                         显示主机完全格式的域名
# id [-g] [username]            [-group]                        显示用户及所属群组的ID
# whoami                                                        显示当前登录的用户名,一般用于shell脚本用于获取当前操作的用户名记录日志
# ps [-ef]                  process status [-ef]                显示全部的进程[-e]的全部的列(全字段)[-f],类似于 windows 的任务管理器 
# ps -u username                [-user]                         显示指定用户的进程信息
# ps [-ef] | grep 进程关键字                                     使用grep过滤查找指定格式的进程
属性:
UID:user id
PID: process id
PPID: parent process id (父进程)                     
C: cpu occupation rate
STIME: start time
TTY: 终端设备,“?”表示该进程不是由终端设备发起
TIME:进程的执行时间
CMD:command(所执行的指令)
 
# top                                                              查看服务器的进程占的资源,q键退出
属性:
PR:pagerank 优先级
VIRT:虚拟内存
RES:常驻内存
SHR:共享内存
s:进程的状态(S:睡眠,R:运行)
%CPU:cpu占用率
%MEM:内存占用率
快捷键:
M:memory,按内存降序排列
P:cpu,按CPU占用率降序排列
1:服务器包含多个CPU时,查看各个CPU的详细信息
 
# du [-sh]               disk usage [-summarize/human-readable]    查看目录或文件的大小,显示总计
# du [-max-depth=<目录层数>]                                        超过指定层数的目录后,予以忽略
# find 路径 [-name] 名字                                            在指定目录下查找文件名
# find 路径 [-type] f/d             file/dir                        在指定目录下查找一般文件[f]或者文件夹[d]
# find 路径 [-option] -exec 指令 {} ;                              对find指令的结果执行新的指令,功能类似管道?
e.g.: 
# find . -type f -perm 644 -exec ls -l {} ;                       查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
 
# find 路径 [-option] | grep 关键字                                 使用管道功能对find结果执行新的指令
e.g.:
# find . -type f | wc -l;                                          查看当前目录中一般文件并统计个数
 
# service 服务名 [start/stop/restart]                               控制一些软件的服务启动/停止/重启
# kill 进程pid                                                      根据进程id杀死进程
# killall 进程名称                                                  杀死进程
# ifconfig                                                         显示网络设备信息
# reboot                                                           重启
# shutdown                                                         关机
# uname [-a]                   [-all]                              查看操作系统信息(类型,主机名,内核版本,发布时间)
# netstat [-tnlp]              [-tcp/numeric/listening/programs]   查看网络状态
选项说明:
-a 所有的socket
-t 显示TCP传输协议的连接
-n 直接使用IP地址,而不通过域名服务器
-l 显示状态为listening的服务器的Socket
-p 显示正在使用Socket的程序识别码pid和程序名称
 
# man 指令                        manual                            手册,按键q退出                        
12.在命令行中快速删除光标前后的内容。 前:ctrl+u,后:ctrl+k。
13.Vim在命令模式的快捷键。
行首:                $                                   shift+6
行尾:                ^                                   shift+4
首行:                gg 或 :0
尾行:                G  或 :$
向上翻屏:            ctrl+b
向下翻屏:            ctrl+f
复制行:              yy  / 数字yy     
粘贴:                p
剪切/删除:           dd  / 数字dd
撤销:                :u  / u                             undo
恢复:                ctrl+r                              recover
光标移动指定行:       数字G / :行号
向上下左右移动n行:    数字↑ / 数字↓ / 数字← / 数字→

  

14.Vim末行模式操作。
查找:       /关键词   n下一个,N上一个
取消高亮:   :nohl    
替换:       %表示整个文件
            /g表示全局
            :s/关键字/新内容                                替换光标所在行符合条件的第一个关键字 
            :s/关键字/新内容/g                              替换光标所在行符合条件的所有关键字
            :%s/关键字/新内容                               替换所有行符合条件的第一个关键字
            :%s/关键字/新内容/g                             替换所有行符合条件的所有关键字
            :1,ns/关键字/新内容                             第一行到第n行
            :.,ns/关键字/新内容                             当前行到第n行
显示行号:   :set nu
取消行号:   :set nonu

 

15.使用Vim打开多个文件,并在末行模式切换文件。
查看打开的文件:             :files                           %a 表示正在打开的文件 active;# 表示上一个打开的文件
指定文件的名称来切换文件:    :open 文件名            
切换上下文件:               :bn  /  :bp                      bn (next)切换到下一个文件,bp(previous)切换到上一个文件

 

16.Vim配置文件。
~/.vimrc                   个人配置文件
/etc/.vimrc                全局配置文件,当关于某项配置起冲突时,以个人配置文件中的配置为准

  

 
 
 
 

发表回复

您的电子邮箱地址不会被公开。