我的博客:https://blog.itwk.cc
自己总结的一些Linux基础操作命令,适用于小白,大佬请绕道,如有疑问或者不足之处请联系我及时为您解答。
查看命令全路径
which [命令] #查看命令的全路径
查看文件
ls [路径] <参数>
ls #列出当前目录所有文件名字
ls /tmp #列出tmp目录中所有文件名字
ls -l /tmp #列出tmp目录中所有文件名字 数列
ls -l /tmp |grep ^d #显示列出tmp目录中所有目录
ls -a/l /tmp #列出目录中所有文件(包括隐藏文件)
ls -alt /tmp #将文件依建立时间之先后次序列出
ls -Z / #类型显示安全行文配置
!ls #执行上一次执行成功的ls的命令
"-" #普通文件
"d" #目录 directory
"l" #链接文件 (软链接、快捷方式)
"b" #块设备文件 block
"c" #字符设备,例如终端
"s" #套接字文件( xxx.socket)
d-rwx r-x r-x. 1 root root
第一个rwx 文件拥有者的访问权限 属主
第二个rwx和文件拥有者同一个组的用户的访问权限 属组
第三个rwx其他人的访问权限 其他
1是这个文件夹有一个子目录
第一个root 文件的创建组或者拥有者
第二个root 文件的属组权限
r:read读
w: write写
x:excute 执行
切换目录
cd [绝对路径]
cd /tmp #切换目录,切换到tmp目录
cd ~ #切换到家目录
cd / #切换到根目录
cd .. #返回到上一级目录
pwd #显示当前所在目录
创建文件夹
mkdir [目录名] <参数>
mkdir dir #在当前目录下创建dir文件夹
mkdir -p /dir1/dir2/dir3/dir4 #递归连续创建文件夹
删除目录
rmdir [目录名] <参数>
rmdir /tmp #删除/tmp文件夹 (原则上只能删除空文件夹)
rmdir -p /tmp/tmp1 #连续删除文件夹
生成空文件,修改时间记录值,如果已存在现有文件,执行touch会篡改时间戳
touch [文件名] <参数>
touch -a #改变文件件的读取时间记录
touch -m #改变文件的修改时间记录
touch -d 20210101 [文件名]
touch -d # 改变文件的日期时间
查看文件信息
stat [文件名]
Access 访问时间 cat|less|more 查看文件
Modify 修改时间 echo|vim |nano 修改文件
Change 状态改变时间 chmod|chown 修改权限
如果重新touch已有文件三个时间都会同步!
Amin | Mmin | Cmin 分钟
移动文件
mv [文件名] <参数>
mv -b 当目标目录存在时, 执行覆盖前会创建一个备份
mv -i 执行移动的源目录或者文件与目标的目录文件同名会先询问是否覆盖
mv -f 指定移动的源目录文件或者文件与目标目录的目录或者文件名重名不会询问直接覆盖旧文件
查看文件内容,显示文件内容
cat [文件名] <参数>
cat xxx.txt #查看xxx.txt文件内容
cat -n #查看文件 跟行号
cat xxx.txt >> hebing.txt
cat xxx.txt | # more 逐页显示文件内容
cat xxx.txt |less # 翻看文件内容 :q 退出
cat /dev/null > xxx.txt 清空文件 "null"丢弃一切写入数据
复制文件
cp [文件名] <参数>
cp -r /tmp #如果复制整个目录,则要+ -r
cp -f #覆盖已经存在的文件不提示,反之 -i
cp -p # 除了复制为文件内容外,把权限与修改时间也复制到新文件中
cp -d #复制时保留链接 快捷方式
cp -a #组合使用 d p r 参数
cp -rfvp # 常用组合
查看文件前几行
head [文件名] <参数>
head -n 10 xxx.txt #查看文件前十行内容
head -10 xxx.txt #与上同理
head -c xxx.txt #显示出字节数
查看文件后几行
tail [文件名] <参数>
tail -10 xxx.txt #查看文件后十行内容
tail -f xxx #显示实时输出
逐页显示文件内容
more [文件名]
more xxx.txt
#空格键翻屏 从上往下
#b键 从下往上返回
翻页显示文件内容
less
[文件名]
less xxx.txt
q退出
上下键翻滚屏幕
查找关键字 筛选
cat [文件名] | grep [查找关键字]
cat /inttab |grep runlevel
#查看inttab文件 查找runlevel所在行的所有内容
连续筛选
cat [文件名] | grep [查找关键字1]|[查找关键字2]|[查找关键字3]
cat xxx.txt |egrep 123|456|789
egrep 'home/student|ask_pass|devops|host_key_check|become' ansible.cfg
#查看xxx文件 查找关键字 123 456 789 所在行所有内容并输出
以树状图的形式列出文件目录结构
tree [参数] <查询的目录>
-d 显示目录名称并非内容
-L 限制目录限制层级
-f 显示完整的相对路径
-p 显示权限表示
-s 列出文件或目录大小
查看使用手册
man [命令] #查看ls命令的使用手册
帮助命令
[命令] --help #通过命令后面跟 --help 查看命令的使用帮助
创建链接文件
ln -S [当前文件绝对目录][链接文件]
#不加S就是硬链接 加S就是软链接
显示设定系统日期时间
date -d #显示datestr所设定时间
-s # 将系统时间设置为datestr所设定的时间
date 252110122021 #设置时间为2021年11月9日21:25
hwclock -w 将系统时间写入bios
root@foundation0 tmp]# timedatectl
Local time: Wed 2021-11-10 05:27:18 CST
Universal time: Tue 2021-11-09 21:27:18 UTC
RTC time: Tue 2021-11-09 21:27:18
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
[root@foundation0 tmp]#
timedatectl set-time [年-月-日 小时:分钟:秒] #配置时间
timedatectl list-timezones 显示所有时区
timedatectl set-timezone Aisa/Shanghai #配置时区
查看当前系统有哪些用户登录
[root@foundation0 tmp]# w
05:32:48 up 2:26, 1 user, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 172.25.254.1 03:07 0.00s 0.11s 0.03s w
[root@foundation0 tmp]#
user:用户
tty:终端 (pts从远程终端登录)
查看用户登录信息的其他命令
who -f #开启或关闭用户从何处登录系统
-h #不显示各栏位的标题信息列
查看用户登录信息的其他命令
[root@foundation0 tmp]# last
root pts/1 172.25.254.1 Wed Nov 10 03:07 still logged in
root pts/1 172.25.254.1 Wed Nov 10 03:07 - 03:07 (00:00)
reboot system boot 4.18.0-193.el8.x Wed Nov 10 03:06 still running
root pts/3 172.25.254.1 Tue Nov 9 04:37 - 05:35 (00:57)
root tty2 tty2 Tue Nov 9 04:31 - down (01:03)
reboot system boot 4.18.0-193.el8.x Tue Nov 9 04:31 - 05:35 (01:04)
kiosk pts/2 172.25.254.188 Mon May 10 18:50 - 18:50 (00:00)
kiosk tty2 tty2 Mon May 10 18:47 - down (00:03)
reboot system boot 4.18.0-193.el8.x Mon May 10 18:46 - 18:50 (00:04)
kiosk tty2 tty2 Mon May 10 17:42 - down (01:02)
reboot system boot 4.18.0-193.el8.x Mon May 10 17:41 - 18:45 (01:03)
kiosk tty2 tty2 Mon May 10 12:04 - down (05:37)
reboot system boot 4.18.0-193.el8.x Mon May 10 12:02 - 17:41 (05:38)
kiosk tty2 tty2 Mon May 10 09:18 - down (01:43)
reboot system boot 4.18.0-193.el8.x Mon May 10 09:16 - 11:01 (01:45)
查看,配置主机名 FQDN
/etc/hosts 文件含有ip地址跟fqdn的对应关系
hostname [-参数]
foundation0.ilt.example.com #FQDN(完全限定域名)
-i #显示主机IP
-f #所在的域
-d #域名
基于systemd的配置主机名的命令
hostname #显示系统信息
foundation0.ilt.example.com
[root@foundation0 tmp]# hostnamectl
Static hostname: foundation0.ilt.example.com
Icon name: computer-vm
Chassis: vm
Machine ID: 1b69907e0dfd4ba0a41c139dc2a718b1
Boot ID: 1e469fd285fe4a12b7cac5867b96f810
Virtualization: vmware
Operating System: Red Hat Enterprise Linux 8.2 (Ootpa)
CPE OS Name: cpe:/o:redhat:enterprise_linux:8.2:GA
Kernel: Linux 4.18.0-193.el8.x86_64
Architecture: x86-64
[root@foundation0 tmp]# uname -an
Linux foundation0.ilt.example.com 4.18.0-193.el8.x86_64 #1 SMP Fri Mar 27 14:35:58 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux #显示系统信息
hostnamectl sethostname [主机名]
查看系统各分区占用情况使用率
[root@foundation0 tmp]# df -Th
#文件系统 #文件系统格式 #大小 #已使用 #剩余 #已使用率 #挂载点
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 3.9G 9.8M 3.9G 1% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/nvme0n1p3 xfs 92G 38G 54G 42% /
/dev/loop1 iso9660 428K 428K 0 100% /content/rhel8.2/x86_64/rhcsa-practice
/dev/loop2 iso9660 3.7G 3.7G 0 100% /content/rhel8.2/x86_64/rhel8-additional
/dev/loop0 iso9660 7.9G 7.9G 0 100% /content/rhel8.2/x86_64/dvd
/dev/nvme0n1p1 xfs 1014M 769M 246M 76% /boot
tmpfs tmpfs 795M 1.2M 794M 1% /run/user/42
tmpfs tmpfs 795M 4.0K 795M 1% /run/user/0
df -Th [文件名] #查看文件所在的文件系统的使用情况
查看文件的占用空间
du [文件名] <参数>
-a #显示目录中所有文件大小
-k #以K字节显示文件大小
-m #以MB为单位显示文件大小
-g #以GB为单位显示文件大小
-h #以易读方式显示文件大小 --常用
-s #仅显示统计
-sh #显示易读的方式显示文件大小 --常用
显示CPU的信息参数
lscpu #显示CPU的信息参数
cat /proc/cpuinfo |grep proce |wc -l
4 #查看有几颗CPU
查看系统内存 交换空间
free -h #以读懂的方式显示 系统内存交换空间
tar 指定文件或者目录打包成一个大的文件(默认情况下不压缩)
tar 打包不具备压缩的功能 需要用压缩命令把打包的文件进行压缩
压缩命令不具备把多个打包文件压缩成单个文件
tar <参数> [dir] [dir]
-c #创建一个tar文件(打包文件)
-C #进行解压缩+执行目录(不指定目录默认当前目录)
-v #显示运行过程中信息
-f #指定文件名
-z #调用gzip压缩命令进行压缩
-x #解开tar 文件
-j #压缩成为bzip2格式的文件
-J #压缩成为xz格式的文件
tar -zcvf test.tar.gz /tmp/* #将tmp目录所有文件打包压缩
tar -ztvf [test.tar.gz ] #查看压缩包里的内容
tar -zxvf [test.tar.gz] [需要打压缩的目录] #打包并压缩
tar -zxvf [test.tar.gz] -C /[解压目录]
如果有许多文件需要压缩,zip可以支持压缩成一个文件
zip <参数> [打包文件名][文件][文件][文件]
-r # 把目录里的子目录子文件全部添加
unzip <参数> [压缩包]
-d #指定解压目录
.gz文件由此产生,常用的linux中的压缩格式
gzip只能只能对单文件进行压缩,源文件不在了
gzip 1.txt #自动生成1.txt.gz文件
gunzip 1.txt.gz #解压缩
cut [参数] "" -f 1 /etc/passwd #列出文件第一列的内容
-d #把一行当中以什么作为分隔符
-f #指定输出第N列
实例:
cut -d ":" -f 1 passwd #查看所有行的第一列
cut -d ":" -f 1,2,3 passwd # 查看所有行的1,2,3列
利用脚本处理文本文件,
sed
-n #只显示出有变化的一行
实例
sed -i '1,5s/\/bin\/bash/\/sbin\/nologin/g' passwd
awk -F ":" '{print$1}' [file] #列出第一列内容
awk -F ":" 'NR==1{print$2}' [file] #以:分隔符把第一行中第一列内容筛选出来
awk -F ":" 'NR==1' [file] #以:分隔符把第一行内容筛选出来
awk -F ":" 'NR==1{print$(NF)}' passwd #列出第一行最后一列
awk -F ":" 'NR==1{print$(NF-5)}' passwd #列出第一行最后5列
awk列出IP地址
ip addr show eth0 | awk 'NR==3{print$2}' |cut -d "/" -f1