【Python之路】第一篇--Linux基础命令

时间:2022-12-18 17:42:10

pwd 命令  查看”当前工作目录“的完整路径

pwd -P # 显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径

.    表示当前目录

..   表示上级目录

/   表示根目录

 

ls 命令  ls [选项] [目录名]

-a  列出目录下的所有文件,包括以 . 开头的隐含文件

-l   除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。

-h  –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)

-a  :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来~ 
-A  :全部的档案,连同隐藏档,但不包括 . 与 .. 这两个目录,一起列出来~
-d  :仅列出目录本身,而不是列出目录内的档案数据
-f  :直接列出结果,而不进行排序 (ls 预设会以档名排序!)
-F  :根据档案、目录等信息,给予附加数据结构,例如:
*  :代表可执行档; /:代表目录; =:代表 socket 档案; |:代表 FIFO 档案;
-h  :将档案容量以人类较易读的方式(例如 GB, KB 等等)列出来;
-i  :列出 inode 位置,而非列出档案属性;
-l  :长数据串行出,包含档案的属性等等数据;
-n  :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在账号管理提到!)
-r  :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
-R  :连同子目录内容一起列出来;
-S  :以档案容量大小排序!
-t  :依时间排序
--color=never :不要依据档案特性给予颜色显示;
--color=always :显示颜色
--color=auto :让系统自行依据设定来判断是否给予颜色
--full-time :以完整时间模式 (包含年、月、日、时、分) 输出
--time={atime,ctime} :输出 access 时间或 改变权限属性时间 (ctime)
而非内容变更时间 (modification time)

注:  ll -h  =  ls -lh

【Python之路】第一篇--Linux基础命令

 

  • 如何判断是文件,还是文件夹?
  • 开头为d  代表:文件夹

 

  • vim .[文件名]  .开头
  • vim .test        创建一个隐藏文件

 

cd 命令  cd [目录名]

cd /root/Docements # 切换到目录/root/Docements
cd .
/path # 切换到当前目录下的path目录中,“.”表示当前目录
cd ..
/path # 切换到上层目录中的path目录中,“..”表示上一层目录

 

mkdir 命令  mkdir [选项] 目录名...

 -m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
-v, --verbose 每次创建新目录都显示信息 
  • mkdir  -p   test1/test2/test3
  • mkdir  -m  777  test3

 

rm 命令  rm [选项] 文件

rm是一个危险的命令,使用的时候要特别当心 不可恢复!

-f :就是force的意思,忽略不存在的文件,不会出现警告消息
-i :互动模式,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数

rm filename    (删除无法找回    建议移到/tmp   把tmp当成回收站)  或者  >文件名

>filename    清空文件内容

 

mv 命令  mv [选项] 源文件或目录 目标文件或目录

  • 用来移动文件或者将文件改名(move (rename) files)
-f : force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i : (可以用来改名) 若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u : 若目标文件已经存在,且比目标文件新,才会更新
-t : 指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

mv dir1 dir2   (文件->目录 如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中。)

mv file1 file2    (文件->文件 file2 内容被覆盖)

mv -i log1.txt log2.txt

mv -t /opt/soft/test/test1/   log1.txt log2.txt log3.txt

mv * ../  移动当前文件夹下的所有文件到上一级目录

mv test3/*.txt test5  把当前目录的一个子目录里的文件移动到另一个子目录里

 

cp 命令  作用复制,参数如下:

-a :将文件的特性一起复制
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-r :递归持续复制,用于目录的复制行为
-u :目标文件与源文件有差异时才会复制

编辑示例:

cp app.log test1/

cp -p -r test1 test2

 

touch 命令  touch [选项]... 文件...

用来修改文件时间戳,或者新建一个不存在的文件。

-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t  使用指定的日期时间,而非现在的时间。 [[CC]YY]MMDDhhmm[.SS]

touch 2016app.log

touch -t 201611142234.50 2016app.log

 

cat 命令  cat [选项] [文件]...  用来显示文件内容

-A, --show-all           等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
-s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-t 与 -vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

tac log.txt  最后一行到第一行反向在萤幕上显示出来!

 

more 命令  

cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读

命令参数:
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
常用操作命令:
Enter   向下n行,需要定义。默认为1行
Ctrl
+F   向下滚动一屏
空格键   向下滚动一屏
Ctrl
+B  返回上一屏
=   输出当前行的行号
:f  输出文件名和当前行的行号
V   调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more

more +3 2016.log  显示文件中从第3行起的内容

more -5 2016.log   设定每屏显示行数

ls -l  | more -5       列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来 

 

less 命令  命令用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

 less [参数]  文件 
-b  <缓冲区大小> 设置缓冲区的大小
-e  当文件显示结束后,自动离开
-f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g  只标志最后搜索的关键词
-i  忽略搜索时的大小写
-m  显示类似more命令的百分比
-N  显示每行的行号
-o  <文件名> 将less 输出的内容在指定文件中保存起来
-Q  不使用警告音
-s  显示连续空行为一行
-S  行过长时间将超出部分舍弃
-x  <数字> 将“tab”键显示为规定的数字空格
/字符串:  向下搜索“字符串”的功能
?字符串:  向上搜索“字符串”的功能
n:  重复前一个搜索(与
/ 或 ? 有关)
N:  反向重复前一个搜索(与
/ 或 ? 有关)
b   向后翻一页
d   向后翻半页
h   显示帮助界面
Q   退出less 命令
u   向前滚动半页
y   向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页

 

grep 命令

文本搜索工具

-n   --line-number   #在显示符合样式的那一行之前,标示出该行的列数编号。

grep    [-n]    xxx(内容)    install.log

 

vim 命令

vim    install.log    +100    (跳到第100行)

 

ping 命令  用于确定主机与外部连接状态

ping [参数] [主机名或IP地址]
-d 使用Socket的SO_DEBUG功能。
-f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。
-n 只输出数值。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R 记录路由过程。
-v 详细显示指令的执行过程。
<p>-c 数目:在发送指定数目的包后停止。
-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
-I 网络界面:使用指定的网络界面送出数据包。
-l 前置载入:设置在送出要求信息之前,先行发出的数据包。
-p 范本样式:设置填满数据包的范本样式。
-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。
-t 存活数值:设置存活数值TTL的大小。

 

ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置:

 ifconfig [网络设备] [参数]

up   启动指定网络设备
/网卡。
down 关闭指定网络设备
/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。
arp 设置指定网卡是否支持ARP协议。
-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包
-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包
-a 显示全部接口信息
-s 显示摘要信息(类似于 netstat -i)
add 给指定网卡配置IPv6地址
del 删除指定网卡的IPv6地址
<硬件地址> 配置网卡最大的传输单元
mtu
<字节数> 设置网卡的最大传输单元 (bytes)
netmask
<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。
tunel 建立隧道
dstaddr 设定一个远端地址,建立点对点通信
-broadcast<地址> 为指定网卡设置广播协议
-pointtopoint<地址> 为网卡设置点对点通讯协议
multicast 为网卡设置组播标志
address 为网卡设置IPv4地址
txqueuelen
<长度> 为网卡设置传输列队的长度

 

which 命令  会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果

which 可执行文件名称 
-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p  与-n参数相同,但此处的包括了文件的路径。
-w  指定输出时栏位的宽度。
-V  显示版本信息

 

tree 命令  显示树形的层级目录结构,非原生命令,需要安装tree

tree bin  显示bin目录结构

tree .     显示当前目录

 
df 命令
检查linux服务器的文件系统的磁盘空间占用情况
 
-T 文件系统类型
-h 方便阅读方式显示-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
 
【Python之路】第一篇--Linux基础命令
 
 
top 命令  top [参数]

Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器:   q退出

top [参数]
-b 批处理
-c 显示完整的治命令
-I 忽略失效过程
-s 保密模式
-S 累积模式
-i<时间> 设置间隔时间
-u<用户名> 指定用户名
-p<进程号> 指定进程
-n<次数> 循环显示的次数

idle  cpu空闲率

us    user使用的cpuwa(iowait)    

cpu  等待io的时间比sy(system)    

linux   系统本身占用cpu

Mem    内存

空闲    =    free + buffers(正准备用) + cached 

【Python之路】第一篇--Linux基础命令
 
 
free 命令  显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer:
-b  以Byte为单位显示内存使用情况。 
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-g 以GB为单位显示内存使用情况。
-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。

【Python之路】第一篇--Linux基础命令

 
find 命令
find [PATH] [option] [action]

# 与时间有关的参数:
-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;
-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;
-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;
-newer file : 列出比file还要新的文件名

# 例如:
find
/root -mtime 0 # 在当前目录下查找今天之内有改动的文件

# 与用户或用户组名有关的参数:
-user name : 列出文件所有者为name的文件
-group name : 列出文件所属用户组为name的文件
-uid n : 列出文件所有者为用户ID为n的文件
-gid n : 列出文件所属用户组为用户组ID为n的文件

# 例如:
find
/home/hadoop -user hadoop # 在目录/home/hadoop中找出所有者为hadoop的文件

# 与文件权限及名称有关的参数:
-name filename :找出文件名为filename的文件
-size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
-tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、
目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);
-perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
-perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
-perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示

# 例如:
find
/ -name filename # 查找文件名为filename 的文件 (精确查询)
find
/ -name *xxxx* (按文件名模糊查询 *匹配字符)
find .
-perm 0755 # 查找当前目录中文件权限的0755的文件
find .
-size +12k # 查找当前目录中大于12KB的文件,注意c表示byte
find
/ -size +10M |xargs ls -slh ( |管道符 把前面的结果当作后面的输入) 
 
useradd 命令  添加用户账号
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ][-u ][用户帐号] 

-c #<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。 
  
-d #<登入目录>  指定用户登入时的启始目录。
  
-D # 变更预设值.
  
-e # <有效期限>  指定帐号的有效期限。
  
-f # <缓冲天数>  指定在密码过期后多少天即关闭该帐号。
  
-g # <群组>  指定用户所属的群组。
  
-G # <群组>  指定用户所属的附加群组。
  
-m # 自动建立用户的登入目录。
  
-M # 不要自动建立用户的登入目录。
  
-n # 取消建立以用户名称为名的群组.
  
-r # 建立系统帐号。
  
-s # 指定用户登入后所使用的shell。
  
-u # 指定用户ID。

userdel 命令  删除用户:

userdel [options] LOGIN
-f # 强制删除,包括用户的一切相关内容,这个参数是危险的参数,不建议大家使用。详细说明看MAN
-r # 删除用户的家目录和用户的邮件池
passwd 命令  设置用户的密码:
passwd [OPTION...] <accountName>
-k, --keep-tokens keep non-expired authentication tokens
-d, --delete delete the password for the named account (root only)
-l, --lock lock the named account (root only)
-u, --unlock unlock the named account (root only)
-f, --force force operation
-x, --maximum=DAYS maximum password lifetime (root only)
-n, --minimum=DAYS minimum password lifetime (root only)
-w, --warning=DAYS number of days warning users receives before password expiration (root only)
-i, --inactive=DAYS number of days after password expiration when an account becomes disabled (root only)
-S, --status report password status on the named account (root)

 

chown 命令  改变文件所有者:
cat    /etc/password  查找系统所有用户信息
chown    user1.user1    yum/    (用户,属主) (用户组,属组)  设置yum目录用户属组
 
权限解释 
r     read         4
w    write        2
x    excute      1
-                    0
 
【Python之路】第一篇--Linux基础命令
rwx        r-x        r-x
用户    用户组     其他
 
755    一般为目录
644    一般为文件
 
chmod 命令
chmod [-R] xyz 文件或目录
-R:进行递归的持续更改,即连同子目录下的所有文件都会更改
chmod    777    yum/
chmod    755    yum/
 
ip a  命令  查看服务器ip
【Python之路】第一篇--Linux基础命令
 
du 命令
查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看
-h  --human-readable  以K,M,G为单位,提高信息的可读性。
-s   --summarize  仅显示总计,只列出最后加总的值。
【Python之路】第一篇--Linux基础命令
 
tar 命令  用于压缩解压:
-c :新建打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件 (指定压缩文件)
-C dir :指定压缩/解压缩的目录dir
压缩:tar -zcvf filename.tar.gz   要被处理的文件或目录名称
查询:tar
-ztvf filename.tar.gz
解压:tar
-zxvf filename.tar.gz -C 欲解压缩的目录 

使用示例:

打包:tar    zcvf    demo.tar.gz    ./    (当前所有文件)

解包:tar  zxvf    demo.tar.gz

 
sz    demo.tar.gz    (下载文件)   安装   yum -y insyall  lrzsz
 
【Python之路】第一篇--Linux基础命令