linux 命令

原创
2021/12/06 00:35
阅读数 217

Linux:操作系统,提供了最底层的硬件控制与资源管理的完整架构
GUN:通用许可证
设备在Linux内的文件名
/dev/sd[a-p] USB硬盘机 闪存盘
/dev/vd[a-p] Virtl/IO
/dev/lp[0-2] 打印机
/dev/usb/lp[0-15] USB接口
分区表:记录整个硬盘分区的状态
MBR:可开机设备第一个扇区的开机记录区块(开机管理程序)
BIOS:开机主动执行的固件
目录树结构:根目录“/”
挂载:设备与磁盘分区对应的关系
command 指令 [-optioins] 选项 [paramenter] 参数
第一个被输入的数据是指令或者可执行的文件
/boot 启动目录,存放启动文件
/bin 二进制目录,存放许多用户级的GUN工具
/sbin 系统二进制目录,存放许多的GUN管理员级工具,放置在/sbin下面的为开机过程中所需要的,包括了开机、修复、还原系统
/dev 设备目录,Linux在这里创建设备节点
/etc 系统配置文件目录
/lib 库目录,存放系统和应用程序的库文件
/home 主目录,Linux在这里创建用户目录
/media 媒体目录,可移动媒体设备的常用挂载点
/mnt 挂载目录,另一个移动设备的常用挂载点
/opt 可选目录,常用于存放第三方软件包和数据文件
/proc 进程目录,存放现有硬件以及当前进程的相关信息。虚拟文件系统,数据在内存中。
/root root用户的主目录
/run 运行目录,存放系统运作时的运行时数据
/srv 服务目录,存放本地服务的相关文件
/sys 系统目录,虚拟文件系统,记录核心与系统硬件相关的信息。
/tmp 临时目录,可以在该目录中创建和删除临时工作文件
/usr 用户二进制目录,大量用户级的GUN工具和数据文件都存储在此
/var 可变目录,存放经常变化的文件,比如日志文件。
/sys/block 存放块设备,提供以设备名(如sda)到/sys/devices的符号链接
/sys/bus 按总线类型分类,在某个总线目录之下可以找到连接该总线的设备的符号链接,指向/sys/devices。某个总线目录之下的 drivers 目录包含了该总线所需的所有驱动的符号链接对应kernel中的 struct bus_type
/sys/class 按设备功能分类,如输入设备在 /sys/class/input 之下,图形设备在 /sys/class/graphics 之下,是指向 /sys/devices 目录下对应设备的符号链接对应kernel中的 struct class
/sys/dev 按设备驱动程序分层(字符设备/块设备),提供以major:minor为名到 /sys/devices 的符号链接对应kernel中的 struct device_driver
/sys/devices 包含所有被发现的注册在各种总线上的各种物理设备。所有的物理设备都按其在总线上的拓扑结构来显示,除了 platform devices 和 system devices 。platform devices一般是挂在芯片内部高速或者低速总线上的各种控制器和外设,能被CPU直接寻址。system devices不是外设,他是芯片内部的核心结构,比如CPU,timer等,他们一般没有相关的driver,但是会有一些体系结构相关的代码来配置他们对应kernel中的 struct device
关机
shutdown -h now 
poweroff立即关机
shutdown -r now 
reboot 立即重启
shutdown --help:
ifconfig --heip: 查看网卡信息
man shutdown打开命令说明书
目录切换cd
cd / 转到根目录
cd ~ 转到/home/user用户目录下
cd /usr转到根目录下的usr目录(绝对路径)
cd .. 返回上一级
pwd 显示目前目录路径
目录查看ls
ls -a 列举目录中的全部文件,包括隐藏文件
ls -f 直接列出结果,不进行排序
ls -r从后往前列举目录中内容
ls -R当前目录下所有子目录的内容
ls -t依事件排序
ls -s 按文件排大小
ls -1 长数据串行出,包含档案的属性与权限等数据
ls -d只查看当前目录下的目录文件 
复制档案或目录 cp
cp /usr/tmp/aaa  /usr   将/usr/tmp目录下的aaa目录复制到 /usr目录下面(拷贝)
-a 相当于pdr
-r 递归持续复制
目录的增删改查
mkdir 创建目录 -m配置文件的权限 -p直接将需要的目录递归建立起来
rmdir 删除目录  -p连同上层空的目录一起删除
rm -f   删除当前目录的的文件(不询问)
rm -r aaa    递归删除当前目录下的aaa目录
rm -rf aaa    递归删除当前目录下的aaa目录(不询问)
rm -rf *    将当前目录下的所有目录和文件全部删除
rm -rf /*    将根目录下的所有文件全部删除
mv aaa bbb    将目录aaa改为bbb(重命名)
mv /usr/tmp/aaa /usr  将/usr/tmp目录下的aaa目录剪切到 /usr目录下面(剪切)
cp /usr/tmp/aaa  /usr   将/usr/tmp目录下的aaa目录复制到 /usr目录下面(拷贝)
find 目录 参数 文件名称  例如find /usr/tmp -name 'a*'    查找/usr/tmp目录下的所有以a开头的目录或文件
文件的增删改查
touch 文件名 例如touch aa.txt 新建
rm -rf 文件名 删除
cat 查看文件 -n显示行号    tac从最后一行开始显示 -b -n -w  -b a  -b t  - n ln -n rn  -n rz 
less 翻页查看
more 百分比显示,一页一夜的显示档案内容
tail指定行数或者动态查看 tail -10 sudo.conf  查看/etc/sudo.conf文件的后10行
ctrl+D 退出cat
压缩文件操作
tar :-j 压缩/解压缩 -c 打包文件 -v 压缩时将处理的文件名显示出来 -t查看打包文档有哪些名字 
aa.tar 打包文件
b.gz 压缩文件
.tar.gz 打包压缩文件
tar -zcvf 打包压缩后的文件名 z调用gzip压缩命令进行压缩 c打包文件 v显示运行过程 f指定文件名
tar -zxvf 解压
grep命令
搜索数据
grep命令最大功能是在一堆文件中查找特定字符串
grep money test.txt在test.txt中查找money这个字符  grep sshd 查找ssh服务进程  grep sshd -c查找指定进程个数
find搜索文件
find  . -name "*.log" -ls  在当前目录查找以.log结尾的文件,并显示详细信息。 
find  /root/ -perm 600   查找/root/目录下权限为600的文件 
find  . -type f -name "*.log"  查找当目录,以.log结尾的普通文件 
find  . -size +100M  查找当前目录大于100M的文件
locate /etc/sh 搜索etc目录下所有以sh开头的文件 
whereis 定位可执行文件、帮助文件在文件系统中的位置   whereis ls 将和ls文件相关的文件都查找出来
ps -ef 查看所有正在运行的进程
kill 结束进程
netstat -an:查看当前系统端口    搜索指定端口命令:netstat -an | grep 8080
ping:查看与某台机器的连接情况
ifconfig:查看网卡信息   命令:ifconfig 或 ifconfig | more
chkconfig iptables off 关闭防火墙
service network restart 重启网络
data 显示日期与时间的指令
cal 日历 
bc 计算
“2015/05/29”   data +%Y/%m/%d   data +%H:%M
cal month year
Tab命令补全和文件补齐
ctrl+c 让当前的程序停掉  ctrl+d 键盘输入结束,有取代exit的意思
sync数据同步写入磁盘
su-切换身份
rwx    read write execute可执行
例子[-][rwx][r-x][r--]   [-]代表文件或目录,[rwx]拥有者权限可读可写可执行,[r-x]同群组使用者权限可读可执行,[r--]其他使用者权限可读。
/string向下搜素 ?String向上搜索string
文件属性
改变所属群组:chgrp 
改变文件拥有者:chown   chown bin install.log 将install.log的拥有者改为bin
改变权限:chmod   chmod 777 .bashrc   返回-rwxrwxrwx
设备与设备文件:device
区块:block
字符:character
数据接口文件:sockets
数据输送档:FIFO,pipe
可分享不可变动 /usr(与开机系统有关)  /opt
不可分享不可变动 /etc(配置文件) /boot(开机与核心档)
可变动可分享 /var/mail  /var/spool/news
不可分享可变动 /var/run   /var/lock
/var(与系统运行有关)
/usr/share/man:线上说明文档
/usr/share/doc:软件杂项文件说明
/usr/share/zoneinfo:时区有关的时区文件
绝对路径:根目录开始写的文件名或者目录名称
相对路径:开头不是/
.:代表当前的目录,也可用./表示
..:代表上一层目录,可用../表示
~:表示目前使用者身份所在的文件夹
-:表示前一个工作目录
PATH
将ls由/bin/ls移动成/root/ls
/root/ls
./ls
PATH=”$(PATH):/root”
mv/root/ls/bin
echo显示印出
head去除前面几行
tail只看尾巴几行
od以二进制方式读取文件内容
文件默认权限:umask
设置文件隐藏属性:chattr
显示文件隐藏属性:lsattr
文件特殊权限
:SUID,SGID,SBIT
SUID仅可用在binary program上,不能在shelll script上面。
SBIT:在该目录下使用者创建的文件只有自己与root可以删除。
which可执行文件
updatedb:根据/etc/updatedb.conf的设置区搜寻系统硬盘内的文件名,并更新/var/lib/mlocate内的数据库文件。
locate:依据/var/lib/mlocate内的数据库记载,找出使用者输入的关键字文件名
whereis:由一些特定的目录寻找文件名
ln -s [源文件] [目标文件] 创建软链接 源文件 使用绝对路径
ln [源文件] [目标文件] 创建硬链接 
man 获取命令或配置文件的帮助信息

-name filename:搜寻文件名称为filename的文件;
-size [+-]SIZE:搜寻比SIZE还要大或小的文件
-perm mode:搜寻文件权限“刚好等于”mode的文件
-perm -mode:“必须全部囊括”
-perm /mode:“包含任一mode的权限”

/dev/sd[a-p][1-128]:实体磁盘的磁盘文件名
/dev/vd[a-d][1-128]:虚拟磁盘的磁盘文件名
一个可被挂载的数据为一个文件系统而不是一个分区
权限和属性放置在inode,实际数据放置在data block区块中。超级区块superblock会记录整个文件系统的整体信息,包含inode/block的总量、剩余量,以及文件系统的格式与相关信息。inode记录文件的属性。block时间记录文件的内容。
data block数据区块,在Ext2文件系统所支持的block大小有1k,2k,4k。
block bitmap:区块对照表
inode bitmap:inode对照表
Dumpe2fs:查询Ext家族superblock信息的指令
mount point挂载点,挂载点一定是目录,该目录为进入该文件系统的入口。
XFS文件系统的配置
数据区data section 文件系统活动登陆区 log section 实时运行区 realtime section 
Linux的标准文件系统是ext2,增加日志功能的ext3/ext4。XFS日志文件系统(数据区、文件系统活动登录区、实时运行区)。
df列出文件系统的整体磁盘使用量
du评估文件系统的磁盘使用量
实体链接与符号链接ln
lsblk列出系统所有磁盘列表
blkid列出设备的额UUID等参数
parted列出磁盘的分区表类型与分区信息
磁盘分区gdisk/fdisk
/etc/filesystems:系统指定的测试挂载文件系统类型的优先顺序
/proc/filesystems:Linux系统已经载入的文件系统类型。
umount将设备文件卸载
开机挂载/etc/fstab  /etc/mtab
根目录/必须是挂载的,优先于其他mount point被挂载进来。其他mount point必须为已创建的目录。所有mount point在同一时间之内,只能挂载一次。所有partion在同一时间之内,只能挂载一次。如若进行卸载,必须先将工作目录移到mount point之外。
特殊设备loop挂载:镜像文件不烧录就挂载使用
打包指令 tar
文件系统备份 xfsdump
文件系统还原 xfsrestore
创造镜像文件 mkisofs
vi分为一般指令模式、编辑模式、指令列命令模式
双向重导向tee
ifconfig
显示激活的网卡信息
ifconfig -a显示所有的网卡信息
ifconfig -s显示简要的网卡信息
ifconfig etho down 关闭网卡
ifconfig etho up 启动网卡
ifconfig etho 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255  配置ip地址、子网掩码和广播地址
ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0 up
ifconfig eth0:1 192.168.2.100 netmask 255.255.255.0 up  单网卡添加多个IP地址
ifconfig etho del 192.168.1.100 ?删除IP地址
ipconfig
查看电脑的ip地址
ipconfig /all:显示本机TCP/IP配置的详细信息;
ipconfig /release:手工释放IP地址;
ipconfig /renew:重新获取ip地址;
ipconfig /flushdns:清除本地DNS缓存内容;
ipconfig /displaydns:显示本地DNS内容;
ipconfig /registerdns:DNS客户端手工向服务器进行注册;
ipconfig /showclassid:显示网络适配器的DHCP类别信息;
ipconfig /setclassid:设置网络适配器的DHCP类别。

mpstat -P ALL 2   mpstat 命令用来采集CPU的详细使用情况,参数值2,表示每2秒采集一次。
yum install sysstat 如果系统没有mpstat命令,需要单独进行安装,执行如下命令即可。
raskmgr 打开任务管理器
control 打开控制面板
kill -9 pid
sudo
b 在后台执行指令
-l 列出目前用户可执行与无法执行的指令。
-s 执行指定的shell。 
-H  将HOME环境变量设为新身份的HOME环境变量。
-k  结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。
-l  列出目前用户可执行与无法执行的指令。
-p  改变询问密码的提示符号。
-u  <用户>  以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。
-v  延长密码有效期限5分钟。 
-V  显示版本信息。
vim
vim -c cmd file: 在打开文件前,先执行指定的命令;
vim -r file: 恢复上次异常退出的文件;
vim -R file: 以只读的方式打开文件,但可以强制保存;
vim -M file: 以只读的方式打开文件,不可以强制保存;
vim -y num file: 将编辑窗口的大小设为num行;
vim + file: 从文件的末尾开始;
vim +num file: 从第num行开始;
vim +/string file: 打开file,并将光标停留在第一个找到的string上。
vim –remote file: 用已有的vim进程打开指定的文件。 如果你不想启用多个vim会话,这个很有用。但要注意, 如果你用vim,会寻找名叫VIM的服务器;如果你已经有一个gvim在运行了, 你可以用gvim –remote file在已有的gvim中打开文件。
free命令
显示系统内存的使用情况,包括物理内存、交换内存和内核缓冲区内存。
free -h
free -s 指定间隔的秒数
buffer/cache 两种类型的内存。buffer在操作系统中指buffer cache,缓冲区。cache在操作系统中指page cache,页高速缓存。缓存中的页来自对普通文件、块设备文件和内存映射文件的读写。
free命令中的信息都来自/proc/meminfo
pwd
显示当前所在工作目录的全路径,通过pwd查看当前目录的绝对路径。
-L 显示当前的路径,有连接文件时,直接显示连接文件的路径。
-p 显示当前路径,有连接文件,直接显示连接文件所指向的文件。
--help 显示帮助信息
--version显示版本信息
ps命令
输出运行在系统上的所有程序的信息
ps -A显示所有进程
  -e 显示所有进程
  -C cmdlist 显示包含在cmdlist列表的进程
  -j 显示任务列表
  -V显示版本号
  -L显示进程中的线程
  -M 显示进程的安全信息
  -l显示长列表
ps aux | grep chrome 与Chrome关联的列表
     a =为所有用户显示进程 u =显示进程的用户/所有者 x =还显示未附加到终端的进程
df 磁盘使用情况
du 显示某个特定目录的磁盘使用情况 -c 所有已列出文件总的大小 -h按用户易读的格式输出大小 -s显示每个输出参数的总计。
sort 排序 sort -n xxx 按照数字排序 
  -M 用三字符月份按月份排序  -r反序排序  -s指定内存大小
mount 挂载命令
输出系统挂载的设备列表
    mount -t auto /dev/cdrom /mnt/cdrom 把cdrom挂载在/mnt/cdrom目录中
-a 挂载/etc/fstab文件中指定的所有文件系统
-r只读
-w可读写的
umount 通过设备文件卸载设备
dmesg查看信息

export 命令用于设置或显示环境变量
     export -p列出当前的环境变量值
sed
利用脚本处理文件文本
   -e 脚本命令 将其后的脚本命令添加到已有的命令中
   -f 脚本命令文件 该选项会将其后文件中的脚本命令添加到已有的命令中
   -n sed会在所有的脚本指定执行完毕后,自动输出处理后的内容,该选项会屏蔽启动输出,使用print
   -i 直接修改源文件
mknod
:创建块设备或者字符设备文件
--version 显示命令版本信息
--help 显示帮助信息
-m 设置权限
-Z 设置SELinux的安全上下文呢
b块设备
c字符设备
u没有缓冲的字符设备
p fifo设备
   当类型为b,c,u时,必须同时指定主设备号和次设备号,为p时,必须省略它们
vi
vi   进入 
i插入
o插入新的一行
esc插入模式切换为命令行模式
:wq保存并退出
:q!强制退出
yum
常用命令:
   yum check-update 列出所有可更新的软件清单命令
   yum update更新所有软件命令
   yum install <> 仅安装指定的软件
   yum update <> 仅更新指定的软件
   yum list 列出所有可安装的软件清单指令
   yum search <> 查找软件包命令
   yum clean packages 清除缓存目录下的软件包
apt:
  sudo apt update 列出可更更新的软件清单指令
  sudo apt upgrade 升级软件包
  sudo apt install <> 安装软件包
  sudo apt remove <> 删除软件包 
sudo apt remove <> 删除软件包
sudo list --installed 列出所有已安装的包
sudo list --all-versions 列出所有已安装的包的版本信息
sudo apt-get clean/update/install
echo
echo -n xxx表示不换行输出
  echo -e输出转义字符
       \c 不换行输出,但是当”\c”后面仍然存在字符时,”\c”后面的字符将不会被输出
\n 换行
       \t 转以后表示插入tab
       \b 转义后相当于按退格,但前提是”\b”后面存在字符。

echo hello A
将字符串hello A输出到屏幕
echo hello A > tmp.txt
将字符串输出重定向,当前目录没有tmp.txt,则创建tmp.txt,并将字符串输出到tmp.txt文件中
tmp.txt内容:hello A
echo hello B > tmp.txt
将字符串输出重定向, 当前目录存在tmp.txt,则将tmp.txt内容替换成输出的字符串
tmp.txt内容:hello B
echo hello C >> tmp.txt
将字符串输出追加重定向,当前目录存在tmp.txt,则将tmp.txt的内容后面追加输出的字符串
tmp.txt内容:hello B hello C
cut 切割行内容
:~ $ echo "abcdef" | cut -b 1
a
 取第二个字节
~ $ echo "abcdef" | cut -b 2
b
:~ $ echo "abcdef" | cut -b 1-2
ab
#限定区间起始位置,不限定结束位置
~ $ echo "abcdef" | cut -b 1-
abcdef
 限定区间结束位置,但不限定起始位置
~ $ echo "abcdef" | cut -b -5
abcde
~ $ echo "abcdef" | cut -b 1,3,5
Ace

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部