linux基础命令整理

Liunx命令:

关机/重启:

shutdown now:关机,现在(推荐使用)
shutdown -r now:重启,现在(推荐使用)
init 0:关机
init 6:重启
reboot:重启

切换root/用户权限:

su - root
su - lp01

man:任何时候你觉得对一个命令行不是很确定,都可以通过输入“man + 命令”了解这个命令能确切是做什么的

ls:列出目录下所有文件

pwd:显示工作目录的全路径

cd:变更到指定目录

mkdir:创建新目录

mkdir -p:创建多级目录

touch:创建新文件(可以多个)

常用命令
echo:
  • 作用:把字符串写入文件

  • 格式:echo (字符串) (参数) (文件)

  • 示例:

    echo 123 >> 1.txt	将字符串 123写入 1.txt文件(追加)
    echo 123 > 1.txt	将字符串 123写入 1.txt文件(覆盖)
    
vim:
  • 正常模式(命令模式):使用vim打开的默认模式

    命令/操作说明
    vim filename打开/新建一个文件
    ESC切换到正常模式
    ZZ(shift + zz)保存退出
    !v打开最后使用vim打开的文件
    光标定位:
    vim filename +n打开文件,将光标定位到第n行
    vim filename +打开文件,将光标定位到尾行
    gg定位到首行
    G定位到尾行
    ngg定位到第n行
    ^/0定位到行首
    $定位到行尾
    k
    j
    h
    l
    ctrl + f下翻一页
    ctrl + b上翻一页
    ctrl + d下翻半页
    ctrl + u上翻半页
    内容处理
    x向右删除一个字符
    nx向右删除n个字符,n表示个数
    X向左删除一个字符
    nX向左删除n个字符,n表示个数
    dd删除光标所在行
    ndd删除光标开始的n行
    p粘贴剪切板中的内容
    yy复制光标所在行
    u撤销
    ctrl + r反撤销
  • 插入模式(输入模式):可以完成文件内容的输入编辑等,输入一下字符可以进入该模式:

    命令说明
    i在光标位置插入
    I在第一个非空字符插入
    a在光标的下一个字符输入
    A在行尾插入
    o在光标所在的行下面插入空行
    O在光标所在的行上面插入空行
    s删除光标所在字符,并进入输入模式
    S删除光标所在行,并进入输入模式
  • 单行模式(编辑模式):可以完成文件的整体编辑保存等操作,输入’:'即可进入

    命令说明
    :w保存
    :q退出
    :wq保存退出
    :x保存退出
    :w!强制保存
    :q!强制退出,不保存修改
    :e!放弃修改,恢复到修改之前的状态
    :w newfile文件另存为
    :set nu[mber]显示行号
    :set nonu[mber]隐藏行号
    :set tabstop=4设置一个tab缩进4个字符
    :set mouse=a启用鼠标的点击功能
    [:]/内容查找指定内容,n下翻,N上翻
    [:]?内容查找指定内容,N下翻,n上翻
    :%s/原内容/新内容/[g]所有行内容替换,g表示全局(默认只能替换一行中第一处)
    :m,ns/原内容/新内容/[g]m到n行内容替换,g用法同上
    光标定位
    :n将光标定位到第n行,n表示行号
cat:
  • 作用:显示文件内容

  • 格式:cat (文件)

  • 示例:

    cat 1.txt	显示1.txt内容
    cat 1.txt >> 2.txt	把 1.txt内容写入 2.txt(>> 追加 or > 覆盖)
    
ls:
  • 作用:列出目录下所有文件和目录

  • 格式:ls (参数) (目录)

  • 常识命令:

    ls:查看指定目录的内容,不指定目录时查看当前工作目录

选项说明
-a显示所有文件,包括隐藏文件
-l列表显示,详细信息
-h人性化的显示大小,如:K/M/G

-l选项显示的结果:类型及权限 | 引用数 | 用户 | 用户组 | 大小 | 月 | 日| 年/时间 | 名称

文件类型:(-l显示结果中的第一部分的第一列)

符号类型
-普通文件
d目录文件
l链接文件
c字符设备文件
b块设备文件
s套接字文件
p管道文件

cd:切换工作目录

符号说明
.当前目录
上一级目录
~当前用户的家目录
-表示上次切换之前的目录
/表示根目录
  1. 使用cd时,不指定目标地址,会切换到家目录
  2. 凡是以/开头的目录都是绝对目录
  3. 凡是以.或…开头的目录都是相对目录

pwd:查看当前工作目录

whereis python 找到你的所有的python路径

sudo apt-get install:下载
sudo apt-get update:更新
sudo apt-get upgrade:升级

alias:给命令起别名

l、la、ll等

查看文件

相关命令
命令说明
cat从上到下,显示文件全部内容
tac从下到上,显示文件全部内容
head查看开头指定行数的内容,不指定时默认10行,如:head -20 filename
tail查看文件末尾指定行数的内容,不指定时默认10行,如:tail -5 filename
nl功能与cat相同,但是多显示了行号
wc统计显示,内容:行数 单词数 字符数 文件名 7038 28304 220475 vmware-install.pl
more一点一点查看内容

| less | 一点一点查看内容

more/less使用说明

  • 显示一屏就停止
  • q退出查看
  • enter下翻一行
  • 空格下翻一屏
  • more查看完毕会自动退出,less不会
  • less可以使用上下按钮上下翻看,more不可以
  • 经常结合管道使用:ls /etc | more
字符串替换

遍历当前目录下文件替换所有指定字符串

sed -i "s/123qwe/new123asd/g" `grep "123qwe" -rl .`
文件及目录
  • 相关命令

    命令说明
    touch新建文件,可以是多个
    rm删除文件或目录(删除目录时要传递’-r’选项)
    cp拷贝文件或目录(拷贝目录是要传递’-r’选项)
    mv移动文件或目录
    mkdir创建目录,可以是多个
    rmdir删除空目录
  • 选项说明

    • -r:删除或拷贝目录时需要添加,表示递归操作
    • -f:表示强制操作,没有提示信息
    • *:表示模糊匹配,如:rm *.py,表示删除所有的py文件
    • -p:创建目录时若需要创建中间目录,可以添加此选项
用户及用户组
  • 相关命令

    命令说明
    whoami查看当前登录的用户名
    useradd新建用户,-d指定家目录,-m不存在,-s指定shell
    userdel删除用户,-r会删除用户家目录
    passwd设置指定用户的密码,没有指定用户时设置时当前用户的密码
    su -切换用户,一定要加上’-’,否则只会切换家目录,但是环境没有切换,不指定用户时默认切换到root用户(记得先给root用户设置密码)
    sudo以指定用户(root)身份执行命令
    visudo专门用于编辑/etc/sudoers文件的命令,需要将指定用户添加进去才可以使用sudo命令,如:test ALL=(ALL:ALL) ALL;使用sudo update-alternatives --config editor可以修改系统默认编辑器(nano)
    groupadd新建用户组
    groupdel删除用户组
    gpasswd向指定组添加/删除指定的用户,如:gpasswd -a/-d user group
    groups查看指定用户的组信息
    chsh修改指定用户的shell解析器,如:sudo chsh test -s /usr/sbin/nologin (禁止登陆)
    chown修改文件所属用户[及用户组],如: sudo chown test[:test] 1.py,递归操作需要加’-R’选项
    chgrp修改文件所属用户组,如:sudo chgrp test 1.py

    涉及文件

    • /etc/passwd:系统中的用户信息
    • /etc/group:系统中的用户组信息
    • /etc/shadow:系统中的用户密码信息

    相关名词

    • uid:用户唯一标识
    • gid:用户组唯一标识
文件权限
  • 说明:在linux下,所有的文件都涉及权限,分为三组:所有者、所属组、其他

  • 权限:所有文件的权限可以分为:可读®、可写(w)、可执行(x),’-'表示没有改权限

  • 原理:ls -l的结果,三位一组,分为三组,刚好对应:所有者、所属组、其他

  • 修改权限:chmod,格式:chmod [身份] [操作] [权限] 文件

    选项说明
    身份
    u所有者(user)
    g所属组(group)
    o其他(other)
    操作
    +添加
    -去掉
    =设置
    权限
    r可读
    w可写
    x可执行

    sudo chmod o+w 1.py,给其他用户添加可写的权限

    本质:使用一组(3位)八进制的数据来表示权限,如:0755,展开如下:

    转换为二进制:0755 => 111 101 101
    对应三组身份:     所有者 所属组 其他
    每一组的权限:都包括 可读、可写、可执行
    示例解析:所有者可读可写可执行,所属组可读可执行,其他可读可执行
    
  • 简化操作:sudo chmod 0755 1.py

    若要进行递归操作,则需要添加’-R’操作

  • umask

    作用:用来限定新建文件的默认权限,权限与该值相反
    命令:umask [value],查看或设置掩码
    分析:
    	掩码:0002 => 000 000 010
    	新建目录:	 111 111 101
    	新建文件:	 110 110 100
    
文件搜索
which
  • 作用:查找可执行文件
  • 格式:which (文件名)
whereis
  • 作用:查找二进制文件、源文件和帮助手册文件

  • 格式:whereis (文件名)

  • 示例:

    whereis test
    
locate
  • 作用:查找所有文件(只在/var/lib/slocate资料库中找) (效率高)

  • 格式:locate (参数) (文件/目录)

  • 参数:

    -b:只匹配路径名的基本名称
    -c:只输出找到的数量
    -d:使用DBPATH指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db
    -e:只打印当前存在文件的条目
    -L:检查文件是否存在时,跟随后面的符号链接(默认)
    -h: 显示帮助
    -i:忽略大小写
    -l:限制输出(或计数)以限制条目
    -m:忽略向后兼容性
    -P:检查文件是否存在时,不要跟随尾随符号链接
    -0:在输出上使用NUL分隔条目
    -S:不要搜索条目,打印每个数据库的统计数据
    -q:安静模式,不会显示任何错误讯息
    -r:使用基本正则表达式
    -s:忽略向后兼容性
    -V:显示版本信息
    -w:匹配整个路径名称(默认)
    
    
find
  • 作用:查找所有文件 (指定目录遍历,根据文件属性) (效率低)

  • 格式:find (目录) (参数) (文件名/目录名)sudo find / -name "xxxx"

  • 参数:

    -name:按照文件名/目录名查找文件。
    -perm:按照文件权限来查找文件。
    -user:按照文件属主来查找文件。
    -group:按照文件所属的组来查找文件。
    -mtime -n +n:按照文件的更改时间来查找文件 【-7 7天之内 +7 7天前】
    -nogroup:查找无效属组的文件,即该文件所属的组在/etc/groups中不存在。
    -nouser:查找无效属主的文件,即该文件的属主在/etc/passwd中不存在。
    -newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件。
    -type:查找某一类型的文件,诸如:
             b - 块设备文件。
             d - 目录。
             c - 字符设备文件。
             p - 管道文件。
             l - 符号链接文件。
             f - 普通文件。
    -size n:[c]:查找文件长度为n块的文件,带有c表示文件长度以字节计。
    -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
    -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
     
    另外,下面三个的区别:
    -amin n:查找系统中最后N分钟访问的文件
    -atime n:查找系统中最后n*24小时访问的文件
    -cmin n:查找系统中最后N分钟被改变文件状态的文件
    -ctime n:查找系统中最后n*24小时被改变文件状态的文件
    -mmin n:查找系统中最后N分钟被改变文件数据的文件
    -mtime n:查找系统中最后n*24小时被改变文件数据的文件
    
    

ubuntu的定时任务命令:
https://blog.csdn.net/a295277302/article/details/78143010

grep
  • 作用:正则表达式搜索(根据文件内容)

  • 格式:grep (参数) (文件内容) (文件名/目录)

  • 示例:

    grep -nr abc /etc/test	遍历/etc/test目录中包含 abc字符串的文件,打印所在行并显示行号
    grep abc *txt		当前目录,查找后缀有 txt的文件中包含 abc字符串的文件,并打印出该字符串的行
    grep -i abc demo.py		在 demo.py中查找包含 abc的行,不考虑大小写
    ls /bin | grep ^m		查看/bin下以'm'开头的命令
    grep -wf demo1.txt demo2.txt	查找两个文件相同行 ( -wvf不同行)
    
    
  • 参数:

    -a: 不要忽略二进制的数据。
    -A<显示行数>: 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
    -b: 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
    -B<显示行数>: 除了显示符合样式的那一行之外,并显示该行之前的内容。
    -c: 显示匹配行的数量。
    -C: 除了显示符合样式的那一行之外,并显示该行之前后的内容。
    -d <动作>: 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
    -e<范本样式>: 指定字符串做为查找文件内容的样式。
    -E: 将样式为延伸的普通表示法来使用。
    -f<规则文件>: 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
    -F: 将样式视为固定字符串的列表。
    -G: 将样式视为普通的表示法来使用。
    -h: 不显示匹配的文件名
    -H: 显示匹配的文件名
    -i: 不检查字符大小写的不同。
    -l: 只显示匹配的文件名
    -L: 只显示不匹配的文件名
    -n: 显示匹配该行的行号
    -o: 只显示匹配PATTERN 部分。
    -q: 不显示任何信息。
    -r: 遍历目录,包括子目录
    -s: 不显示错误信息。
    -v: 显示不包含匹配文本的所有行。
    -V: 显示版本信息。
    -w: 只显示全字符合的列。
    -x: 只显示全列符合的列。
    -y: 此参数的效果和指定"-i"参数相同。
    
    
diff
  • 作用:查找两个文件/目录不同之处并输出

  • 格式:diff (参数) (文件1或目录1) (文件2或目录2)

  • 参数:

    -a:预设只会逐行比较文本文件。
    -b:不检查空格字符的不同。
    -B:不检查空白行。
    -c:显示全部内文,并标出不同之处。
    -C:与执行"-c-"指令相同。
    -d:使用不同的演算法,以较小的单位来做比较。
    -D:此参数的输出格式可用于前置处理器巨集。
    -e:此参数的输出格式可用于ed的script文件。
    -f:输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
    -H:比较大文件时,可加快速度。
    -l:若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
    -i:不检查大小写的不同。
    -l:将结果交由pr程序来分页。
    -n:将比较结果以RCS的格式来显示。
    -N:在比较目录时,若文件A仅出现在某个目录中,预设会显示:Onlyin目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
    -p:若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
    -P或--unidirectional-new-file 与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
    -q:仅显示有无差异,不显示详细的信息。
    -r:比较子目录中的文件。
    -s:若没有发现任何差异,仍然显示信息。
    -S:在比较目录时,从指定的文件开始比较。
    -t:在输出时,将tab字符展开。
    -T:在每行前面加上tab字符以便对齐。
    -u,-U或:以合并的方式来显示文件内容的不同。
    -v:显示版本信息。
    -w:忽略全部的空格字符。
    -W:在使用-y参数时,指定栏宽。
    -x:不比较选项中所指定的文件或目录。
    -X:您可以将文件或目录类型存成文本文件,然后在=中指定此文本文件。
    -y:以并列的方式显示文件的异同之处。
    
    
cmp
  • 作用:两个文件只输出第一处不同之处
  • 格式:cmp (文件1或目录1) (文件2或目录2)
链接文件
  • 命令:ln

  • 作用:创建一个文件或目录的链接

  • 格式:ln [-s] 原文件 新文件

  • 查看:ls -l结果集中的第一列就是文件类型,为’l’的就是链接文件

  • 软链接与硬链接

    硬链接:使用ln时不加-s选项创建的链接,相当于一个文件多起了一个名字而已,极少用到
    	1.不能给目录创建
    	2.不能跨文件系统
    软链接:使用ln是添加-s选项创建的链接,相当于windows中的快捷方式,比较常用
    	1.可以给目录创建
    	2.可以跨文件系统
    
    

系统服务

七层网络架构:
网络传输的三要素:
IP地址: 192.168.152.33
端口号: 0 ~~ 65535
协议:

socket套接字里面   
http:超文本传输协议

压缩解压
  • tar 文件后缀.tar.gz
tar -zcvf filename.tar.gz	filename.tar		# 压缩(调用gzip,生成12.tar.gz)
tar -zxvf filename.tar.gz				# 解压

  • zip/unzip,文件后缀zip
压缩:zip filename.zip *.txt
解压:unzip filename.zip

  • gzip/gunzip,文件后缀gz
压缩:gzip filename.txt		会生成filename.txt.gz压缩文件
解压:gunzip filename.txt.gz
解压:gzip -d filename.txt.gz

  • bzip2/bunzip2,文件后缀为bz2
压缩:bzip2 filename.txt			会生成filename.txt.bz2压缩文件
解压:bunzip2 filename.txt.bz2	    添加'-k'选项可以保留压缩包
解压:bzip2 -d filename.txt.bz2

*****重点记忆 tar:打包解包工具,后缀为tar

参数(前三个c/x/t不能同时使用):
-c:创建新文件
-x:解包
-t:查看(不解包)

-f:指定操作文件
-v:显示相关信息
-z:调用gzip/gunzip进行压缩解压
-j:调用bzip2/bunzip2进行压缩解压
-C:指定解压位置
--exclude:排除指定文件
示例:
tar -cvf 12.tar 1.txt 2.txt			# 将1.txt,2.txt打包成12.tar
tar -tf 12.tar						# 查看包内容
tar -xvf 12.tar						# 解包12.tar文件
tar -zcvf 12.tar.gz	12.tar			# 调用gzip进行压缩
tar -jcvf 12.tar.bz2 12.tar			# 调用bzip2进行压缩
tar -zcvf 12.tar.gz *.txt --exclude 3.txt	# 打包压缩除3.txt以外的所有txt文件

tar -zxvf 12.tar.gz				# 解压
tar -jxvf 12.tar.bz2			# 解压
提示:
.tar.gz可以简写为:.tgz
.tar.bz2可以简写为:tbz2 或 .tbz

网络服务
  • ping :检查网络连通性,’-c’选项指定发送测试包的次数
  • ifconfig :查看或设置网卡信息-
  • ifup :启动网卡
  • ifdown :关闭网卡
  • 控制 :service networking start|stop|restart

配置ip后及时刷新:

sudo ip addr flush enp2s0
sudo service network-manager restar

服务监测
netstat
  • 作用:查看端口占用情况
  • 使用/参数:
-a:显示所有socket,包括正在监听的
-c:每隔1秒就重新显示一遍,直到用户中断它
-t: 指明显示TCP端口
-u: 指明显示UDP端口
-l: 显示在Listen(监听)的服务状态
-p: 显示进程标识符和程序名称(每一个套接字/端口都属于一个程序)
-n: 拒绝显示别名,能显示数字的全部转化为数字
-v:显示正在进行的工作

netstat -ntlp  // 查看当前所有tcp端口
netstat -an | grep 3306  // 查看所有3306端口使用情况
netstat -ntulp | grep 80  // 查看所有80端口使用情况

free
  • 作用:查看内存使用情况
  • 使用/参数:
-b:以Byte为单位显示
-k:以KB为单位显示
-m:以MB为单位显示
-h:以合适的单位显示(最大三位数,自动计算对应的单位值)
-o:不显示缓冲区调节器
-s<间隔秒数>:持续观察
-t:显示内存总和列
-V:显示版本信息

free //显示内存使用信息
free -t //以总和的形式查询内存的使用信息
free -s 10 //每10s 执行一次命令

w

  • 作用:查看当前正在做的事情,what的一意思

top

  • 说明:w的详细信息,3S会刷新一次,q退出查看

  • 结果:

    第一行:与w相同
    第二行:任务信息
    第三行:CPU使用
    第四行:内存使用
    第五行:交换分区
    其他行:系统进程信息
    
    
进程管理
ps
  • 作用:查看进程信息
  • 说明:经常在查询进程号的时候结合grep进行过滤
  • 使用/参数:
-a :查看所有
-u :以用户(user)的格式显示
-x :显示后台运行参数
-ef:以全格式显示进程所有信息,包括父进程Pid,创建人,创建时间,进程号。等等

ps -aux | grep name

kill
  • 作用:杀死进程
  • 示例:kill -9 pid (-9 无条件终止)
管道
  • |:管道符
  • 作用:将两个命名隔开,左边命令的输出会作为右边命令的输入
防火墙(ufw)
  • 说明:简单版本的防火墙,底层依赖于iptables
  • 安装:sudo apt-get install ufw
  • 查看状态:sudo ufw status
  • 开启/关闭:sudo ufw enable|disable
  • 默认允许/禁止:sudo ufw default allow|deny
  • 允许/禁止:sudo ufw allow|deny port/服务,如:sudo ufw allow 5900
  • 删除规则:sudo ufw delete allow 5900
远程连接(ssh:22)
  • 说明:默认ubuntu是没有自带的ssh服务,需要手动安装

  • 安装:sudo apt-get install openssh-server

  • 控制:sudo service ssh start|stop|restart

  • 连接:putty | xshell 工具,类unix也可以是终端:ssh user@host

  • 设置root用户远程连接:修改/etc/ssh/sshd_config文件

    # PermitRootLogin prohibit-password
    PermitRootLogin yes
    
    

    修改完配置文件,需要重启服务:sudo service ssh restart

软件安装
  • apt-get安装:无需考虑复杂的软件依赖关系

    • install:安装
    • remove:卸载
    • update:取回更新软件包的类表信息
    • upgrade:进行一次更新
  • dpkg安装:文件后缀为.deb,可能需要进行依赖包的安装

    • -i:安装

    • -r:卸载

    • -l:查看软件包信息

    • -L:查看软件安装目录

    • 示例:安装wps

      1.安装wps
      	sudo dpkg -i wps-office_10.1.0.5672~a21_amd64.deb
      2.安装字体库
      	unzip wps_symbol_fonts.zip
      	将字体库移动到/usr/share/fonts目录
      	sudo mv *.ttf *.TTF /usr/share/fonts
      
      
  • 源码安装:需要对源文件进行编译

    • 基本步骤:

      • 配置:configure
      • 编译:make
      • 安装:make install
    • 示例演示:安装nginx

      • 解压软件压缩包:tar -zxvf nginx-1.13.7.tar.gz
      • 进入解压的目录:cd nginx-1.13.7
      • 编译前的配置:./configure --prefix=/usr/local/nginx
        • –prefix:配置安装目录
        • 配置出错多数是因为缺少先关的依赖库或者编译器
        • 如:sudo apt-get install gcc libpcre3-dev zlib1g-dev
      • 编译和安装:make && make install
        • 如果没有权限常见目录,切换到root用户
      • nginx介绍
        • sbin/nginx:可执行程序,进入sbin目录,启动:./nginx
        • html:默认站点目录
        • 测试:在浏览器中输入localhost,看到welcome to nginx即表示成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值