cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。
语法:cat(选项)(参数)
选项:
-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
实例:
cat m1 m2 (同时显示文件ml和m2的内容)
cat m1 m2 > file (将文件ml和m2合并后放入文件file中)
chgrp是英语单词“change group”的缩写,用于变更文件或目录的所属群组。
chmod命令的英文原意是“change the permissions mode of a file”,我们简称为“change mode”,意为用来改变文件或目录权限的命令。
实例——给所有用户添加可执行权限:
chmod +x file
chown 命令可以将指定文件的拥有者改为指定的用户或组。
diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录 。
实例:
diff file1 file2
file命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型。
实例:
$ file omdc.txt
omdc.txt: UTF-8 Unicode C++ program text
find命令可以根据给定的路径和表达式查找的文件或目录。
语法:find path -option [-print] [-exec -ok command] {}
常用参数:
参数 | 说明 |
---|---|
-name | 按名称查找 |
-size | 按大小查找 |
-user | 按属性查找 |
-type | 按类型查找 |
-iname | 忽略大小写 |
-cmin | 在过去 n 分钟内被修改过 |
-ctime | 在过去n天内被修改过的文件 |
-type | 文件类型。(d: 目录;f: 一般文件;l: 符号连结;s: socket) |
实例: |
// 将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
find . -name "*.c"
find . -name -regex *.c (使用正则表达式 regex)
// 将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
find . -ctime 20
// 查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} \;
// 查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
find / -type f -size 0 -exec ls -l {} \;
// 只输出文件名字,不携带路径
find . -name '*.bz2' -printf '%f\n'
全称是“link”,即链接。功能是为某一个文件在另外一个位置建立一个同步的链接。
语法格式: ln [参数] [源文件或目录] [目标文件或目录]
实例:
-->$ touch f1 # 创建一个测试文件f1
-->$ ln f1 f2 # 创建f1的一个硬连接文件f2
-->$ ln -s f1 f3 # 创建f1的一个符号连接文件f3
-->$ echo "12345678901234567890" > f1 # 写入数据
-->$ ls -l
total 8
-rw-rw-r-- 2 21 Mar 11 12:02 f1 # f1 和 f2 大小一样
-rw-rw-r-- 2 21 Mar 11 12:02 f2
lrwxrwxrwx 1 2 Mar 11 11:58 f3 -> f1
浏览文字档案的内容,用less命令显示文件时,PageUp键向上翻页,PageDown键向下翻页,要退出less程序,应按Q键。
查找符合条件的文档,速度比 find -name 快。
原因在于它不搜索具体目录,而是搜索一个数据库 /var/lib/slocate/slocate.db 。
语法:locate [参数] [文件]
数据库升级:updatedb
mv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。
读取所给予的文件的内容,并将其内容以八进制字码呈现出来。
把每个文件以列对列的方式,一列列地加以合并 ,形成新的文件。
注意:paste默认粘贴方式以列的方式粘贴,但是并不是不能以行的方式粘贴,加上-s选项就可以行方式粘贴。
语法:paste [参数] [文件1] [文件2]
常用参数:
参数 | 含义 |
---|---|
-d | 默认域的分隔符是空格或tab键,设置新的域分隔符 |
-s | 将每个文件粘贴成一行 |
删除一个目录中的一个或多个文件或目录。
将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件 。
语法:split [参数] [切割文件][文件名]
参数:-b 指定每多少字节切成一个小文件
实例:
将文件file每6行切割成一个文件:split -6 file
两个功能:一是创建新的空文件,二是改变已有文件的时间戳属性。
语法:touch [参数] [文件]
在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
实例:
$ which goto
alias goto='/usr/local/bin/ssh_ftsso -p32000 -lops '
/usr/local/bin/ssh_ftsso
$ [neilnie@gzqc6-null-204-null ~]$ which git
/usr/bin/git
$ which bash
/bin/bash
复制文件或目录。
用来定位命令的二进制程序、源代码文件和man手册页等相关文件的路径。
在一个数据库中查询,通过执行updatedb命令更新
scp是 secure copy的缩写,基于ssh登陆进行安全的远程文件拷贝命令。
awk命令是一种编程语言,用于在linux/unix下对文本和数据进行处理。
语法:awk [参数] [文件]
参数: -F 指定输入时用到的字段分隔符
实例:
打印每一行的第二和第三个字段:
awk '{ print $2,$3 }' file
全称“context split”,用于将一个大文件分割成小的碎片,并且将分割后的每个碎片保存成一个文件。
csplit命令是split的一个变体,split只能够根据文件大小或行数来分割,但csplit能够根据文件本身特点来分割文件。
语法:csplit [参数]
参数:-f 制定文件名前缀
实例:
将文本文件filename以第 2 行为分界点切割成两份:
csplit filename 2
将文本文件textfile以120行为分界点切割成2份,并指定输出文件名的前缘为fileName位数为3:
csplit -f fileName testfile 120
将文本文件 filename 以每20行为单位分割:
csplit filename 20 {*}
作用是在文件内查找指定的字符串。
语法:grep [参数]
参数:
-i:忽略大小写
-c:只输出匹配行的数量
-n:列出所有的匹配行,显示行号
作用是在文件内查找指定的字符串。
egrep执行效果与grep -E相似。不同点:
语法:egrep [参数] [文件]
参数:见grep
实例:
筛选包含“a”一个或一个以上的字符:
egrep 'a+' linux265.txt
筛选字符串包含abc或123的字符:
egrep 'abc|123' linux265.txt
依照脚本的指令来处理、编辑文本文件。
语法:sed [-e
参数说明:
动作说明:
替换标记:
字符集:
实例:
在testfile文件的第四行后添加一行,并输出:
sed -e 4a\newLine testfile
删除/etc/passwd第三行到末尾的数据,并把bash替换为blueshell:
nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'
对文件进行排序,并将排序结果标准输出。
语法:sort [参数] [文件]
参数:
实例:
sort -nk 2 -t: sort.txt
作用是用来去除文本文件中连续的重复行,中间不能夹杂其他文本行。
语法:uniq [参数] [文件]
参数:
实例:
# uniq -c testfile
3 test 30
4 Hello 95
2 Linux 85
统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
语法:wc [参数] [文件]
参数:
df命令的英文全称即“Disk Free”,用于显示系统上可使用的磁盘空间。
语法:df [参数] [指定文件]
参数:
du命令的英文全称是“Disk Usage”,即用于查看磁盘占用空间的意思。与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,而不是某个分区。
语法:du [参数] [文件]
参数:
实例:
du -sh *
“make directories”的缩写,用来创建目录。
语法 : mkdir [参数] [目录]
参数:
实例:
在目录/usr/linux265下建立子目录dir,并且设置文件属主有读、写和执行权限,其他人无权访问:
mkdir -m 700 /usr/linux265/dir
递归创建目录:
mkdir -p linux265/dir
删除空的目录,英文全称:“remove directory”。
注意:rmdir命令只能删除空目录。当要删除非空目录时,就要使用带有“-R”选项的rm命令。
显示文件或文件系统的详细信息。
语法:stat [参数]
参数:
用于以树状图形式列出目录的内容。
语法:tree[参数]
参数:
实例:tree -A -L 2
用于加载文件系统到指定的加载点。
作用是卸载已安装的文件系统、目录或文件。
用于连接目录内容。执行lndir命令可以把源目录底下的文件和子目录统统建立起相互对应的符号连接。
语法:lndir [参数][源目录][目的目录]
实例:
给目录下所有的文件或者子文件目录建立链接:
lndir /home/uptech abc
执行telnet指令开启终端机阶段作业,并登入远端主机。
语法: telnet [参数][主机]
实例:
// 登录本机 9991 端口
telnet 127.0.0.1 9991
telnet 0 9991
全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。
语法:ifconfig [参数]
参数:
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
语法:netstat [参数]
参数:
实例:
// 查看9991端口连接信息
netstat -anp|grep 9991
主要用来测试主机之间网络的连通性。
语法:ping [参数] [目标主机]
参数:
实例:
// 检测与linux265网站的连通性:
ping www.linux265.com
// 连续ping4次:
ping -c 4 www.linux265.com
用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。
traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。
语法: traceroute [参数] [域名或者IP]
参数:
实例:
// 追踪本地数据包到www.linuxprobe.com的传输路径:
traceroute www.linuxprobe.com
// 把探测包的个数设置为值4:
traceroute -q 4 www.linuxprobe.com
// 把对外发探测包的等待响应时间设置为3秒:
traceroute -w 3 www.linuxprobe.com
linux上的抓包工具,嗅探器。可以打印出所有经过网络接口的数据包的头信息。
语法: tcpdump [参数]
参数:
实例:
// 监视指定网络接口的数据包:
tcpdump -i eth0
// 监视指定主机的数据包:
tcpdump host linux265
// 截获主机192.168.10.10 和主机192.168.10.20 或192.168.10.30的通信:
tcpdump host 192.168.10.10 and \ (192.168.10.20 or 192.168.10.30 \)
// 抓取80端口的HTTP报文,以文本形式展示:
tcpdump -i any port 80 -A
mbd为Samba服务器程序,可分享文件与打印机等网络资源供Windows相关的用户端程序存取。
语法: smbd [参数]
实例:
// 启动Samba服务器:
smbd -D
用于新增使用者帐号或更新预设的使用者资料。
adduser 与 useradd 指令为同一指令(经由符号连结 symbolic link)。
语法: adduser [参数] 用户名
参数:
添加用户: useradd -m 用户名
设置密码: passwd 用户名
删除用户: userdel -r 用户名
实例:
// 建立名为test123的用户账号:
adduser test123
// 建立账号并指定有效期为2023年3月12日:
adduser -e 3/12/23 test123
// 为新添加的用户指定/home目录:
useradd -d /home/test test123
用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记 。
语法: date [选项] [+输出形式]
参数:
实例:
// 显示当前时间:
$ date
Sun Mar 12 20:25:03 CST 2023
$ date '+%c'
Sun 12 Mar 2023 08:25:06 PM CST
$ 获取系统时区
$ date +%z
+0800
// 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
$ date +%s
1678624136
// 将时间戳转换成日期格式:
$ date -d @1678624136
Sun Mar 12 20:28:56 CST 2023
// 显示当前时间年月日小时分秒
$ date +"当前时间为:%Y/%m/%D %H:%M:%S"
当前时间为:2023/03/03/14/23 17:20:15
用来退出当前的shell或退出终端 ,并返回给定值。
语法:exit [状态值]
参数:
用来将目前动作延迟一段时间, 直到达到参数所指定的时间或是被信号所中断。
语法: sleep [参数]
参数:
实例:
// 休眠5分钟:
sleep 5m
// 显示目前时间后延迟 1 分钟,再次显示时间:
date ; sleep 1m ; date
用来删除执行中的程序或工作。
kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。
语法: kill [参数] [进程号]
显示近期用户或终端的登录情况。
执行last命令时,它会读取/var/log目录下名称为wtmp的文件,并把该文件记录的登录系统或终端的用户名单全部显示出来。
语法: last [选项]
参数:
实例:
// 显示近期用户或终端的登录情况:
last
// 显示两行,并省略主机列:
last -R -2
last -R -n 2
ps命令是“process status”的缩写,用于显示当前系统的进程状态。
语法:ps [参数]
参数:
实例:
// 把所有进程显示出来:
ps -aux
ps -A
// 查找特定进程信息:
ps -ef | grep ssh
ps -aux | grep ssh
用于调整进程的执行优先级。
语法:nice [参数] [命令]
参数:
是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。
语法:top [参数]
参数:
实例:
// 显示完整命令
top -c
// 表示更新两次后终止更新显示
top -n 2
// 更新周期为3秒
top -d 3
pstree命令的英文全称是“process tree”,即将所有行程以树状图显示。
重新启动计算机。
系统关机命令。
语法: shutdown [选项] [参数]
参数:
实例:
// 现在立即关机:
shutdown -h now
用于切换当前用户身份到指定用户或者以指定用户的身份执行命令或程序。
语法: su [选项] [用户名]
sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。
用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。
uname命令的英文全称即“Unix name”。
语法:uname [参数]
参数:
用于打印当前登录用户信息,包含了系统的启动时间 、 活动进程 、 使用者 ID、使用终端等信息。
w 命令也可以显示已经登陆系统的用户列表。
语法: who [参数] [选项]
参数:
显示真实有效的用户ID(UID)和组ID(GID)
语法:id [参数] [用户名]
清除屏幕。
用于改变根目录。
语法: chroot [参数]
实例:
// 改变根目录:
chroot /mnt/ls
作用调整 RTC 时间。RTC是电脑内建的硬件时间,执行这项指令可以显示现在时刻,调整硬件时钟的时间,将系统时间设成与硬件时钟之时间一致,或是把系统时间回存到硬件时钟。
语法: clock [参数]
参数:
实例:
// 同步时间:
clock --hctosys
crontab是英文“cron table”的简写。该命令被用来提交和管理用户的需要周期性执行的任务。
语法:crontab [参数]
参数:
实例:
// 创建、编辑计划任务:
crontab -e
// 查看当前计划任务:
crontab -l
crond服务设置任务的参数格式(如果没有设置,则需要使用星号(*)占位 ):
minute hour day month week command 顺序:分 时 日 月 周 命令
用于检查和控制内核的环形缓冲区。
语法: dmesg [参数]
用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。
一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。
语法:export [参数]
参数:
实例:
// 列出当前所有的环境变量:
export -p
// 定义环境变量赋值:
export MYENV=7
// 删除指定的变量
export -n MYENV
设置环境变量三种方法
- 临时(只对当前shell有效):上文;
- 对单一用户生效(永久的):在用户目录 .bash_profile 中添加变量。
// 添加变量 export CLASSPATH=变量值 // 马上生效 source ~/.bash_profile
- 对所有用户生效(永久的):/etc/profile文件中增加变量。立即生效:source /etc/profile
用于管理Linux 下软件包的软件,包含了五种基本功能:安装、卸载、升级、查询和验证。
rpm命令是Red-Hat Package Manager(RPM软件包管理器)的缩写。
语法: rpm [参数] [软件包]
参数:
实例:
// 列出所有安装过的包:
rpm -qa
// 直接安装软件包:
rpm -ivh packge.rpm
// 忽略报错,强制安装:
rpm --force -ivh package.rpm
// 卸载rpm包:
rpm -e package.rpm
// 升级软件包:
rpm -U file.rpm
用于设置用户的认证信息,包括用户密码、账户锁定、密码失效等。直接运行passwd命令修改当前的用户密码。
语法:passwd [参数]
参数:
用于测量特定指令执行时所需消耗的时间及系统资源等消息。
实例:
// 显示命令date的时间统计结果:
$ time date
Sun Mar 12 22:56:35 CST 2023
real 0m0.005s
user 0m0.000s
sys 0m0.000s
用于设置指令的别名。使用alias时,用户必须使用单引号 ‘ ’ 将原来的命令引起来,防止特殊字符导致错误。
alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件 /etc/bashrc中。
语法: alias [参数]
参数:
实例:
// 查看系统已经设置的别名:
alias -p
// 给命令设置别名 :
alias lx='ls'
.bashrc是Linux系统/home/对应用户名/.bashrc目录下的一个shell文件,用于储存用户的个性化设置。在bash每次启动时都会加载.bashrc文件中的内容,并根据内容定制当前bash的配置和环境。
linux启动后环境变量加载顺序:
/etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → /etc/bashrc
-->$ vim ~/.bashrc
# 定义别名
alias ll = "ls -lha"
# 定义别名:快速打开文本
alias get='_get(){ if [ $1 ]; then cat ~/ip/$1.txt; else ls ~/ip; fi };_get'
# 定义别名:快速跳转
alias gotoss='goto 100.81.18.112'
# 环境变量:用来定义命令行提示符的参数
export PS1='-->\$ '
source ~/.bashrc
用于取消命令别名。
语法: unalias [参数] [别名]
参数:
实例:
unalias lx
.bz2文件格式的压缩程序。
bzip2命令的英文是“bunzip2”。
bzip2命令采用新的压缩演算法,比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
语法: bzip2 [参数] 文件系统
参数:
实例:
// 压缩并删除源文件
bzip2 a.txt
// 压缩并保留源文件。
bzip2 -k a.txt
用来修复损坏的.bz2文件。
bzip2是以区块的方式来压缩文件,每个区块视为独立的单位。因此,当某一区块损坏时,便可利用bzip2recover,试着将文件中的区块隔开来,以便解压缩正常的区块。通常只适用在压缩文件很大的情况。
语法: bzip2recover [参数]
参数:
实例:
// 修复.bz2文件:
bzip2recover col.bz2
// 解压foo:
bzip2recover -d foo.gz
用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为”.gz”。
gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip命令单独完成。
语法: gunzip [参数]
实例:
// 解压文件:
gunzip ab.gz
// 解压,显示详细执行过程:
gunzip -v ab.gz
gzip命令的英文是“GNUzip”,是常用来压缩文件的工具,gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。
语法: gzip [参数]
参数:
实例:
// 把当前目录下的每个文件压缩成.gz文件:
gzip *
// 把上例中每个压缩的文件解压,并列出详细的信息:
gzip -dv *
// 递归地解压目录:
gzip -dr xxx.gz
zip程序将一个或多个压缩文件与有关文件的信息(名称、路径、日期、上次修改的时间、保护和检查信息以验证文件完整性)一起放入一个压缩存档中。可以使用一个命令将整个目录结构打包到zip存档中。
语法:zip [参数] [文件]
参数:
实例:
// 把/home目录下面的mydata目录压缩为mydata.zip:
zip -r mydata.zip mydata
用于.zip格式文件的解压缩工具。
语法: unzip [参数] [文件]
参数:
实例:
// 把/home目录下面的mydata.zip解压到mydatabak目录里面:
unzip mydata.zip -d mydatabak
用于建立或者还原备份档的工具程序,cpio命令可以复制文件到归档包中,或者从归档包中复制文件。
语法: cpio [参数]
实例:
// 将/etc下的所有普通文件都备份到/opt/etc.cpio:
find /etc –type f | cpio –ocvB >/opt/etc.cpio
dump命令用于备份文件系统 ,dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。
restore命令用来还原由dump操作所备份下来的文件或整个文件系统(一个分区)。