Linux手册

8 次阅读 预计阅读时间: 16 分钟


nnnnn

一、常用命令

nnnn
作用命令
字符集>:覆盖输出,>>追加输出,|:管道
不间断且在后台运行nohup sh a.sh &
动态查看进程情况top
进程转后台运行(进程转后台,非终结、非中止)ctrl + z
后台进程转入前台运行,jobs显示当前后台正在运行的进程fg %2使第2个进程转前台(bg %2是转后台)
切除指定行(切除[a,b]行内容,若想从a行到结尾则是sed -i 'a,$d' test.txtsed -i 'a,bd' test.txt
实时(动态)查看一个文件的结尾内容变动tail -f test.txt
不同端上的文件上传下载sz:将选定的文件发送(send)到本地机器,rz反之(会弹出窗口选择文件)
显示内存情况,包括交换内存和缓冲区内存,-h 带单位,-s 指定几秒刷新一次free -h -s 3
查看文件的字节-c、字符-m、行数-l、词数-w用统计行数举例:wc -l a.txt
查看磁盘空间情况df -hl:磁盘使用,repquota:文件系统配额
查看网络配置ifconfig
查看环境变量执行的脚本env $你的环境变量
查看本机支持的所有命令compgen -c
打印当前目录栈,目录栈通过 pushd popd 来操作dirs
不重启机器,终结所有运行的进程disown -r
查看你自己的常用命令(不查看history)hash
进行整数运算的命令let a=b+c
终端文件&&黑洞文件终端 /dev/tty,黑洞文件 /dev/null
显示当前所在路径pwd
查看运行中的进程跑了多长时间了ps -eo pid,lstart,etime | grep 进程号
nnnn

二、shell冷知识

nnnn

1、开头的注释代表什么东西?

nnnn

用来指定这个文件的执行解释器是哪一个。一个文件的执行需要底层写好的解释逻辑去编译你写的这些命令,使用哪一个不是根据你文件后缀来的,是由文件开头指定指出的。不指定则默认sh。

nnnn
#!/bin/shn#!/bin/bashn#!/usr/bin/perln#!/usr/bin/tcln#!/bin/sed -fn#!/usr/awk -f
nnnn

2、hadoop文件管理shell命令头

nnnn

hadoop fs:通用的文件系统命令,针对任何系统,比如本地文件、HDFS文件、HFTP文件、S3文件系统等。
hadoop dfs:特定针对HDFS的文件系统的相关操作,但是已经不推荐使用。
hdfs dfs:与hadoop dfs类似,同样是针对HDFS文件系统的操作,替代hadoop dfs。
个人习惯写法:hdfs dfs -“shell命令”

nnnn

三、经典懵

nnnn

1、一个txt文件已归正,每行元素按table分隔,单文件很大,无法使用cat查看。怎么获取文件的列数?

nnnn
第一种:
nnnn
hadoop@bigdata3:~/zhangjinke$ cat col.txtn1       2       3       4n5       6       7       8n9       10      11      12nhadoop@bigdata3:~/zhangjinke$ head -n 1 col.txtn1       2       3       4nhadoop@bigdata3:~/zhangjinke$ head -n 1 col.txt | awk -F ' ' '{print NF}'n4
nnnn
第二种:
nnnn
hadoop_portal@bigdata3:~/zhangjinke$ cat col.txtn1       2       3       4n5       6       7       8n9       10      11      12nhadoop_portal@bigdata3:~/zhangjinke$ sed -i '2,$d' col.txtnhadoop_portal@bigdata3:~/zhangjinke$ cat col.txtn1       2       3       4
nnnn

方法很多,不一一举例。

nnnn

2、起别名。很多人知道,但不是很熟悉,回顾一下。

nnnn

3、软连接和硬链接

nnnn
n
hadoop@bigdata3:~/zhangjinke$ alias c='cat'nhadoop@bigdata3:~/zhangjinke$ c time.shntime=`date "+%Y-%m-%d %H:%m:%S"`necho "$time"nhadoop@bigdata3:~/zhangjinke$ alias shijian='date "+%Y-%m-%d %H:%m:%S"'nhadoop@bigdata3:~/zhangjinke$ shijiann2021-06-09 14:06:57
nLinux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(SymbolicLink)。默认情况下,ln命令产生硬链接。
nnnn

【硬连接】ln 源文件 目标文件 目标文件没有写文件名,会和原名一致
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。文件真正删除的条件是与之相关的所有硬连接文件均被删除。
【软连接】ln -s 源文件 目标文件
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

nnnn

4、FTP的使用。

nnnn
n

FTP是帮助我们与服务器文件进行传输的,包含下载和上传。
上传:首先是本地文件上传到FTP服务器(你可以理解成中转的一个文件系统),文件再从FTP到服务器。文件位置是这样移动的:本地 -> FTP -> 你要上传文件的那个服务器
下载:与上传的文件位置移动相反,从服务器拉文件到本地。服务器 -> FTP -> 本地

n
nnnn
本地-FTP 的终端交互操作:
nnnn

首先是cmd使用ftp服务,open连接你的ftp服务器(open IP),登录用户名密码,看见Login successful.后使用binary切换二进制模式。以下是Windows CMD 操作。【若用MobaXterm UI操作,同理】

nnnn
FTP-服务器 的终端交互操作:
nnnn
Microsoft Windows [版本 10.0.19041.985]n(c) Microsoft Corporation。保留所有权利。nC:\Users\Administrator>ftpnftp> open 115.X36.XXX.XXn连接到 115.X36.XXX.XX。n220 (vsFTPd 3.0.3)n200 Always in UTF8 mode.n用户(115.X36.XXX.XX:(none)): chuanmein331 Please specify the password.n密码:n230 Login successful.nftp> binaryn200 Switching to Binary mode.nftp> get ftp服务器文件的路径 文件保存到本地的路径nftp> put 文件保存到本地的路径 ftp服务器文件的路径
nnnn

不同的是,用ssh登录FTP服务器,和本地与FTP交互一样,这次不是get/put,而是用的scp

nnnn
scp 操作文件路径 目标文件路径
nnnn

5、Linux和Unix

nnnn

内核是Linux操作系统的核心。Linux是Unix的克隆版本。但是,如果考虑可移植操作系统接口(POSIX)标准,则可以将Linux视为UNI,以下是部分区别:

nnnn
LinuxUnix
提供付费和免费分发不同级别的Unix使用不同的付费结构
Linux主要使用带有可选命令行界面的GUIUnix使用命令行界面
Linux OS是便携式的,可以在不同的硬盘中执行Unix OS不可移植
Linux由全球Linux社区开发Unix由AT&T开发人员开发
Linux是免费的。它是在GNU许可下通过互联网下载的大多数类似Unix的操作系统不是免费的
Linux用于家用PC,电话等Unix用于服务器系统
nnnn

6、Linux有几种shell ?

nnnn

五种。使用cat /etc/shells查看本机支持的shell类型。

nnnn
shell类别作用
C Shell(csh)类似于C语法,并提供拼写检查和作业控制
Korn Shell(ksh)是一种高级编程语言Shell
Z Shell(Zsh)它提供了一些独特的性质,例如观察登录/注销监视,文件名生成,启动文件,结束注释
Bourne Again Shell(bash)这是Linux发行版的默认设置
友好的交互式Shell(Fish)它提供基于Web的配置,自动建议等
nnnn

7、du 和 df 的定义,以及区别?

nnnn
n

ndf 显示磁盘使用情况,du 显示目录或文件的大小情况。
df 命令获得真正的文件系统数据,而 du 命令只查看文件系统的部分情况。
nnnn

df 显示每个文件所在的文件系统的信息,默认是显示所有文件系统。(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为 Meta Data【元数据】。)
du 命令是用户级的程序,它不考虑 Meta Data,而 df命令则查看文件系统的磁盘分配图并考虑 Meta Data。

nnnn

8、shell里的 ` ,是什么意思?

nnnn

`内有函数,"内是普通字符串,所以有区分。

nnnn

9、chmod命令的ugo?

nnnn

u:user,自己
g:group,自己所属的组
o:others,其他人
一般的我们对一个目标进行修改权限,使用chmod -R 520 文件全名。其中5的位置代表的是u的权限值,2的位置是所属组对这个目标拥有的权限值,类似地,0的位置代表的是其他人拥有这个文件的权限值。其中数值代表的是三位的二进制,这三位每一位表示的值为421。第一个5转二进制则是,101,就是4+1=5。
当然也可以使用chmod -R u=5 文件全名这种等其他样式修改。

nnnn

10、echo -eEn

nnnn
# -n:不在末尾输出换行符(不带-n,默认会在末尾输出换行符)n[root@localhost ~]$ echo -n "hello world"      nhello world[root@localhost ~]$n# -e 用于启用反斜杠转义,如 \n 会转换成换行n[root@localhost ~]$ echo -e "hello\nworld"     nhellonworldn# -E 用于禁用反斜杠转义,默认就是禁用n[root@localhost ~]$ echo -E "hello\nworld"     nhello\nworld
nnnn
#输出带背景颜色的字体necho -e "\033[40;37m 黑底白字 \033[0m"necho -e "\033[41;37m 红底白字 \033[0m"necho -e "\033[42;37m 绿底白字 \033[0m"necho -e "\033[43;37m 黄底白字 \033[0m"necho -e "\033[44;37m 蓝底白字 \033[0m"necho -e "\033[45;37m 紫底白字 \033[0m"necho -e "\033[46;37m 天蓝底白字 \033[0m"necho -e "\033[47;30m 白底黑字 \033[0m"
nnnn
#其他属性n\33[1m 设置高亮度n\33[4m 下划线n\33[5m 闪烁n\33[7m 反显n\33[8m 消隐n\33[30m — \33[37m 设置前景色n\33[40m — \33[47m 设置背景色n\33[nA 光标上移n行n\33[nB 光标下移n行n\33[nC 光标右移n行n\33[nD 光标左移n行n\33[y;xH设置光标位置n\33[2J 清屏n\33[K 清除从光标到行尾的内容n\33[s 保存光标位置n\33[u 恢复光标位置n\33[?25l 隐藏光标n\33[?25h 显示光标
nnnn

11、ping

nnnn

-w 要大于等于 -c,避免没有ping呢就超时了

nnnn
-d         :使用Socket的SO_DEBUG功能;n-c<完成次数>:设置完成要求回应的次数;n-f:极限检测;n-i<间隔秒数>:指定收发信息的间隔时间;n-I<网络界面>:使用指定的网络界面送出数据包;n-l<前置载入>:设置在送出要求信息之前,先行发出的数据包;n-n         :只输出数值;n-p<范本样式>:设置填满数据包的范本样式;n-q         :不显示指令执行过程,开头和结尾的相关信息除外;n-r         :忽略普通的Routing Table,直接将数据包送到远端主机上;n-R         :记录路由过程;n-s<数据包大小>:设置数据包的大小;n-t         :超时时间n-v         :详细显示指令的执行过程。n-W         : 等待时间
nnnn

12、/dev/null 和 /dev/zero

nnnn
    n
  • /dev/null:表示 的是黑洞文件,通常用于丢弃不需要的数据输出, 或者用于输入流的空文件n
      n
    • 将无用的输出流写入到黑洞丢弃。 curl -Iwww.baidu.com 2>/dev/null | head -l 错误信息定位到黑洞
    • nnnn
    • 清空文件 cat /dev/null > /home/omc/h.txt
    • nnnn
    • 在书写定时任务总,规范的写法就是将所有定时任务脚本结尾加上>/dev/null 2>&1,让所有的输出流(包括错误的和正确的)都定向到空设备丢弃。00 01 * * * /bin/sh/server/scripts/mysqlbak.sh >/dev/null 2>&1
    • n
    n
  • n
nnnn
    n
  • /dev/zero:当我们使用或者读取他的时候,她是会提供无限连续不断的空的数据流n
      n
    • 覆盖其他的文件信息
    • nnnn
    • 产生指定大小的空文件,如交换文件,模拟虚拟文件系统
    • n
    n
  • n
nnnn

13、六个重定向符号:> 、>!、>> 、<、<<、<<<

nnnn
    n
  • >
    覆盖:将文件b用文件a覆盖 a.txt > b.txt
  • nnnn
  • >!
    强制覆盖:将文件b用文件a强制覆盖 a.txt >! b.txt
  • nnnn
  • >>
    追加:将文件a追加到文件b a.txt >> b.txt
  • nnnn
  • <
    传参:将后面的元素变为前面的参数 ssh abcd.org.cg < login.txt
    login.txt 文件变为参数,可配置登录过程,如:user zhangjinke [回车] passwd 12345678
  • n
nnnn
    n
  • <<
    结尾符:指定末尾符匹配某个字符串后结束 cat << EOF > file1
    可分为cat << EOF > file1<< EOF > file1位置可互换)
    表示,输入一段字符,以"EOF"结束。当你输入EOF<< EOF,敲回车后,文件保存为file1> file1不一定是EOF这三个字母,可自定
  • nnnn
  • <<<
    高亮匹配:<<<前面的元素 在 <<<后面元素的哪个位置,如果在,会高亮 grep 'abc' <<< 'aaaabcccc'
  • n
n
最后更新于 2023-07-28