linux 常用命令参考

编程入门 行业动态 更新时间:2024-10-03 19:22:31

linux <a href=https://www.elefans.com/category/jswz/34/1768749.html style=常用命令参考"/>

linux 常用命令参考

文章目录

  • 系统信息
    • 时间和日期
    • 磁盘信息
    • 进程信息
    • 硬件信息
  • 查看或切换目录
    • cd 切换目录
    • ls 列出信息
      • 通配符
  • 拷贝和移动文件
    • cp 复制命令
    • mv 移动或重命名命令
  • 创建和删除操作
    • mkdir 创建文件夹
    • touch 创建文件与更新时间戳
    • rm 删除命令
  • 文本处理
    • cat 查看文件所有内容
    • more 分配显示文件内容
    • grep 搜索文本筛选内容(正则表达式)
    • echo 文字内容,结合重定向
    • 重定向>和>>
  • 用户权限
    • chgrp 更改文件或目录的属组
    • chmod 更改用户/组对文件或目录的权限
    • chown 更改文件或目录的属主与属组
  • 用户和群组
    • root 超级管理员
    • 组管理(创建/删除/确认)
      • 创建一个新用户组
      • 删除一个用户组
      • 重命名一个用户组
      • 确认组信息
      • 修改文件/目录的所属组
    • 用户管理
      • 添加新用户
      • 设置用户密码
      • 删除一个用户
      • 确认用户信息
      • 查看用户信息
      • 主组和附加组
      • dash 切换 bash 进行Shell登录
  • 远程管理
    • 关机和重启 shutdown
    • 网卡和网络 ifconfig ping
    • --help man 查询命令帮助
  • 其他命令
    • find 查找内容
    • 软连接 ln 快捷方式
    • 管道 | 至少两个命令
    • 打包和压缩 tar gz bz bz2 z zip
      • tar
      • gz命令
      • .tar.gz 和 .tgz
      • bz2命令
      • .tar.bz2(bzip2)
      • bz命令
      • .tar.bz
      • z命令
      • .tar.z
      • zip命令
    • 软件安装
    • file
    • history 查看历史
    • 关闭某个被占用的端口
  • 参考

系统信息

时间和日期

date 显示系统日期 cal 显示当前月份的日历cal -y 当前年的日历cal 2019 显示2019年的日历表

磁盘信息

df -h 显示磁盘剩余空间 disk freedu -h [目录名] 显示目录下的文件大小 disk usagehdparm -tT /dev/sda 在磁盘上执行测试性读取操作

进程信息

进程:当前正在执行的一个程序

命令作用
ps auxprocess status 查看进程的详细状况
ps au查看终端上进程的详细状况(推荐)
ps a显示终端上的所有进程,包括其他用户的进程
ps u显示进程的详细状态
ps x显示没有控制终端的进程
ps显示当前用户通过终端启动的应用程序
top动态显示运行中的进程并且排序,推出按q
htopsudo apt install htop 比top美观
kill [-9] 进程代号PID终止指定代号的进程,-9表示强行终止

硬件信息

arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc/mounts 显示已加载的文件系统 lspci -tv 罗列 PCI 设备 lsusb -tv 显示 USB 设备lscpu  显示 cpu 信息lsblk  列出除RAM外的块设备

查看或切换目录

cd 切换目录

  • 绝对目录:/或~ 根目录或家目录 如/home/johnny
  • 相对目录:相对当前目录 .
pwd 查看当前目录cd /home 进入 '/ home' 目录cd .. 返回上一级目录(. 表示当前目录)cd ../.. 返回上两级目录 cd 进入当前用户的主目录 (/home/用户目录)cd ~ 进入当前用户的主目录 (/home/用户目录)cd - 返回上次所在的目录 ,最近两次目录切换

ls 列出信息

ls 查看目录中的文件 ls -F 显示目录条目时,在目录后加一个/ls -f 查看目录中的文件ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls -h 将文件容量以较易读的方式(GB,kB等)列出来  ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来  经常组合使用,多个参数,没有顺序
ls -lah

通配符

通配符含义实例
*任意个数个字符ls *.txt
任意一个字符ls 1?3.txt
[]可以匹配字符组中的任意一个ls [12345].txt
[abc]匹配a\b\c中任意一个ls [12345]23.txt
[a-f]匹配a到f范围内的任意一个字符ls [1-5]23.txt

拷贝和移动文件

cp 复制命令

cp file1 file2 复制file1文件为file2cp dir/* . 复制一个目录下的所有文件到当前工作目录 cp -a file1 file2  连同文件的所有特性把文件file1复制成文件file2 cp -i file1 file2 若目标文件已经存在时,在覆盖时会先询问操作的进行 y ncp -r dir1 dir2 递归持续复制,用于目录的复制行为 cp -f file1 file2 强制复制cp -rf  dir1 dir2 强制递归复制

mv 移动或重命名命令

mv dir1 new_dir 重命名/移动 一个目录mv -i dir1 new_dir 若目标文件已经存在,就会询问是否覆盖mv -f dir1 new_dir force强制的意思,如果目标文件已经存在,不会询问而直接覆盖mv -u dir1 new_dir update若目标文件已经存在,且比目标文件新,才会更新  mv dir/* new_dir 移动所有文件

创建和删除操作

mkdir 创建文件夹

mkdir test 创建test文件夹mkdir -p a/b/c 创建多级子文件夹

touch 创建文件与更新时间戳

将文件的访问和修改时间更新为当前时间。touch命令只会在文件不存在的时候才会创建它。如果文件已经存在了,它会更新时间戳,但是并不会改变文件的内容。

touch hello.pytouch a/b/c.txt

rm 删除命令

rm  file1 删除rm -r dir 递归删除文件夹,删除文件夹必须加-rrm -f file1 强制删除一个叫做 'file1' 的文件' rm -i file1 在删除前会询问用户是否操作  rmdir dir1 删除一个叫做 'dir1' 的目录' rm -rf dir1 删除一个叫做 'dir1'
的目录并同时删除其内容 ,r代表递归删除rm -rf dir1 dir2 同时删除两个目录及它们的内容 rm -rf * 删除当前目录所有东西,谨慎使用

文本处理

cat 查看文件所有内容

cat 123.txt cat -b 123.txt 对非空输出行编号
nl 123.txt 同上cat -n 123.txt 对输出的所有行编号

more 分配显示文件内容

内容多使用more查看,分屏查看

more 123.txt  只会显示当前页的内容,剩下的内容折叠
操作键功能
空格显示手册页的下一屏
回车一次滚动手册页的一行
b回滚一屏
f前滚一屏
q退出
/word搜索word字符串

grep 搜索文本筛选内容(正则表达式)

grep he 123.txt 在123.txt文件中搜索关键词he并输出对应的内容grep -v he 123.txt 在123.txt文件中搜索不含关键词he并输出对应的内容grep -n he 123.txt 在123.txt文件中搜索关键词he并输出对应的内容和行号grep -i he 123.txt 不区分大小写在123.txt文件中搜索关键词he/He/hE/he并输出对应的内容grep -vn或-in 可以连用grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug" 
grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇 
grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行 
grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug" 
参数含义实例
^bengin行首,搜寻以begin开头的行grep ^begin 123.txt
end$行尾,搜寻以end结尾的行grep end$ 123.txt

echo 文字内容,结合重定向

echo hello

重定向>和>>

echo hello > 123.txt  将hello写入123.txt文件,覆盖所有内容echo hello >> 123.txt  将hello写入123.txt文件,写到最后,相当于追加ls -lh > 123.txttree >> 123.txt

用户权限

  • chgrp 是更改文件或目录的属组
  • chmod 是更改文件或目录的权限
  • chown 是更改文件或目录的属主与属组

chgrp 更改文件或目录的属组


sudo chgrp 属组 文件/文件夹sudo chgrp root 999 将999文件夹的所属组改成rootsudo chgrp root 999/888.txt 将999文件夹内人888.txt文件的所属组改成rootsudo chgrp -R root 999 将999文件夹及文件夹里的内容的所属组改成root-R 递归遍历

chmod 更改用户/组对文件或目录的权限

-rw-rw-r--  文件权限
drw-rw-r--  文件夹权限
lrw-rw-r--  链接权限文件所有者的权限(属主) | 与文件所有者同一组的用户的权限(属组) |不与文件所有者同组的其他用户的权限(其他用户)sudo chmod +/- rwx 增加删除权限,只能简单设置sudo chmod +x start.sh 赋予start.sh可执行权限sudo chmod 777 start.sh  赋予start.sh 所有者,组员,其他 全部权限sudo chmod 755 start.sh 代表属主有读,写,执行权限。属组和其他用户有读,执行权限sudo chmod -R 744 start.sh  赋予属主有读,写,执行权限。属组有读权限,其它用户有读权限sudo chmod 740 start.sh 代表属主有读,写,执行权限。属组有读权限,其它用户没有任何权限sudo chmod -R 666 start.sh  赋予所有用户都有读,写权限sudo chmod -R 644 start.sh 代表属主有读,写权限。属组有读权限,其它用户有读权限-R 递归遍历
-拥有者-==+其他+
rwxrwxrwx
421421421
权限二进制值八进制值描述
0000没有任何权限
–x0011执行权限
-w-0102写入权限
-wx0113写入和执行权限
r–1004读取权限
r-x1015读取和执行权限
rw-1106读取和写入权限
rwx1117全部权限

rwx 421

chown 更改文件或目录的属主与属组

sudo chown 属主 文件/文件夹sudo chown root dir 修改dir文件夹属主关系sudo chown -R root dir 修改dir文件夹及文件夹内文件属主关系sudo chown root.root dir 修改dir文件夹属主和属组关系
sudo chown root:root dir 同上sudo chown -R root.root dir 修改dir文件夹及文件夹内文件属主和属组关系
sudo chown -R root:root dir 同上

用户和群组

root 超级管理员

sudo -i   切换root账户设置root密码
sudo passwd root

组管理(创建/删除/确认)

创建一个新用户组

sudo groupadd group_name  

删除一个用户组

sudo groupdel group_name 

重命名一个用户组

sudo groupmod -n new_group_name old_group_name 

确认组信息

cat /etc/group  cat -n /etc/group | grep 用户名 

修改文件/目录的所属组

chgrp 组名 文件/目录名 

用户管理

添加新用户

sudo useradd -m -g 组 新建用户名  
-m 自动建立用户家目录
-g 指定用户所在的组,已存在的组,没有此参数会建立一个和用户名同名的组sudo useradd 用户名    创建新用和新组户但没有家目录,这样不能单纯删除组,需要删除用户则组会一起被删除

默认使用useradd添加的用户是没有权限使用sudo以root身份执行命令的,可以使用下面的命令将用户添加到sudo附加组中,具体请查看后面

usermod -G sudo 用户名

设置用户密码

passwd 用户名 
普通用户直接用passwd可以修改自己的账户密码

删除一个用户

userdel -r user1  
-r 自动删除用户家目录,如果创建了家目录请一起删除

确认用户信息

cat /etc/passwd
cat -n /etc/passwd | grep 用户名

查看用户信息

命令作用
id [用户名]查看用户UID和GID信息
who查看当前所有登录的用户列表
whoami查看当前登录用户的账户名

主组和附加组

  • 主组:passwd中的GID
  • 附加组:其他的组,附加权限,如可以使用sudo权限
命令作用实例
sudo usermod -g 组 用户名修改用户的主组
sudo usermod -G 组 用户名修改用户的附加组sudo usermod -G sudo python

dash 切换 bash 进行Shell登录

Shell:登录之后使用的终端命令
ubuntu默认是dash,而常用为bash修改用户登录shell
usermod -s /bin/bash 用户名

远程管理

关机和重启 shutdown

shutdown 一分钟之后关机shutdown now  立刻关机shutdown -h now 彻底断电关机,应该同上shutdown 21:00 今天21:00关机shutdown +10 在十分钟后关机shutdown -c 取消之前指定的关机计划shutdown -r 重新启动
reboot 同上logout 注销

网卡和网络 ifconfig ping

ifconfig 查看网卡ifconfig | grep inetping 192.168.1.1 检测ip连接是否正常hongwei@hongwei--ubuntu16:~$ ping 192.168.50.11
PING 192.168.50.11 (192.168.50.11) 56(84) bytes of data.
64 bytes from 192.168.50.11: icmp_seq=1 ttl=64 time=0.385 ms
64 bytes from 192.168.50.11: icmp_seq=2 ttl=64 time=0.159 ms发送56字节到目标ip,目标ip返回64字节,时间间隔为time,time越小网速越快ping 127.0.0.1 检查本地网卡是否工作正常

–help man 查询命令帮助

command --help
如 ls --helpman ls 查询用法手册,man为manual缩写
操作键功能
空格显示手册页的下一屏
回车一次滚动手册页的一行
b回滚一屏
f前滚一屏
q退出
/word搜索word字符串

其他命令

find 查找内容

特定的目录下搜索符合条件的文件

find [路径] -name "*.py" 查找所有.py结尾的文件,包括子目录find -name "*.txt"find /etc/ -name passwd      ##查找/etc/下名称中带有passwd的文件
find /etc -maxdepth 1 -name passwd     ##查找/etc/下名称中带有passwd的文件,查找一层。
find /etc -name *.conf       ##查找/etc/下名称中带有*.conf的文件(下面显示的是部分)
find /etc -maxdepth 2 -name *.conf  ##查找/etc/下名称中带有*.conf的文件,且查找两层,包括一层(下面显示的是部分)
find /etc -maxdepth 2 -mindepth 2 -name *.conf  ##查找/etc/下名称中带有*.conf的文件,且只查找第二层
find /mnt -group tony             ##查找/mnt中所有组是tony用户的文件
find /mnt -user student -group student  ##查找/mnt中所有人和所有组都是student的文件
find /mnt -not -user student      ##查找/mnt中所有人不是student用户的文件
find /mnt -not -user student -o -group tony   ##查找/mnt中所有人不是student用户或者所有组是tony用户的文件
find /mnt -size 20K       ##查找/mnt文件大小近似20k的文件
find /mnt -size +20K      ##查找/mnt文件大小大于20k的文件
find /mnt -size -20K      ##查找/mnt文件大小小于20k的文件
find /mnt -type d         ##按type查找/mnt中目录
find /mnt -type f         ##按type查找/mnt中文件
find /mnt -cmin 10        ##查找/mnt中十分钟左右修改的
find /mnt -cmin +10       ##查找/mnt中十分钟以上修改的
find /mnt -cmin -10       ##查找/mnt中十分钟以内修改的
find /mnt -ctime 10       ##查找/mnt中十天左右修改的
find /mnt -ctime +10      ##查找/mnt中十天以上修改的
find /mnt -ctime -10      ##查找/mnt中十天以内修改的
find /mnt/ -perm 444      ##查找/mnt文件权限为444的文件
find /mnt/ -perm -444     ##查找/mnt中user有读的权限且group有读的权限且other有读的权限的文件。(三个条件,u.g.o至少要读的权限即r--r--r--)
find /mnt/ -perm -004     ##查找/mnt中other有读权限的文件(一个条件,o至少有读的权限)
find /mnt/ -perm -644     ##查找/mnt中user有读写的权限且group至少有读权限且other有读的权限的文件。(四个条件,rw-r--r--)
find /etc/ -name *.conf -exec cp -rp {} /mnt \;   ##把/etc/目录下名称中带有.conf的文件递归复制到/mnt下
find /mnt -name "*.conf" -exec rm -fr {} \; ##删除/mnt名称中带有.conf的文件
find / -group mail -exec cp -rp {} /mnt \; ##把/目录下的组属于mail的文件复制到/mnt

软连接 ln 快捷方式

ln -s 被链接的源文件 链接文件必须加-s ,没有-s选项建立的是一个硬链接文件源文件需要使用绝对路径,不能使用相对路径,方便移动sudo ln -s /home/johnny/Desktop/python/py1.py py1

硬链接:有多少种方式可以访问到文件或者目录,使用ls -l 命令,可以看不到权限后面的数字就是硬链接个数

管道 | 至少两个命令

  • more 分屏显示
  • grep 搜索文本
ls -l | morels -a | grep *.py

打包和压缩 tar gz bz bz2 z zip

tar

解包
tar -xvf filename.tar打包
tar -cvf filename.tar )

gz命令

解压1
gunzip filename.gz解压2
gzip -d filename.gz压缩
gzip filename

.tar.gz 和 .tgz

解压
tar -zxvf filename.tar.gz解压到指定路径(路径必须存在)
tar -zxvf 打包文件.tar.gz -C 目标路径压缩
tar -zcvf filename.tar.gz 文件或目录(可多个)压缩多个文件
tar -zcvf filename.tar.gz dirname1 dirname2 dirname3.....

bz2命令

解压1:bzip2 -d filename.bz2
解压2:bunzip2 filename.bz2
压缩:bzip2 -z filename

.tar.bz2(bzip2)

解压:tar -jxvf filename.tar.bz2
压缩:tar -jcvf filename.tar.bz2 dirname

bz命令

解压1:bzip2 -d filename.bz
解压2:bunzip2 filename.bz

.tar.bz

解压:tar jxvf filename.tar.bz

z命令

解压:uncompress filename.z
压缩:compress filename

.tar.z

解压:tar zxvf filename.tar.z
压缩:tar zcvf filename.tar.z dirname

zip命令

解压:unzip filename.zip
压缩:zip filename.zip dirname

软件安装

apt:Advanced Packaging Tool

安装
sudo apt install 软件包卸载
sudo apt remove 软件包更新源及/etc/apt/sources.list
sudo apt-get update 更新已安装的包
sudo apt upgrade

file

file 222.txt  列出编码类型222.txt: ASCII text

history 查看历史

history   显示了在终端中所执行过的所有命令的历史

关闭某个被占用的端口

查找被占用的端口
netstat -tln | grep 4000查看被占用端口的PID
sudo lsof -i:4000
netstat -tunlp | grep 4000
netstat -nap | grep 4000kill掉该进程
sudo kill -9 PID

参考

Linux常用命令大全(非常全!!!)

linux最常用的20个命令

更多推荐

linux 常用命令参考

本文发布于:2024-02-28 05:34:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768598.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:常用命令   linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!