linux 常用命令参考

系统信息

时间和日期

date 显示系统日期 

cal 显示当前月份的日历

cal -y 当前年的日历

cal 2019 显示2019年的日历表

磁盘信息

df -h 显示磁盘剩余空间 disk free

du -h [目录名] 显示目录下的文件大小 disk usage

hdparm -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文件为file2

cp dir/* . 复制一个目录下的所有文件到当前工作目录 

cp -a file1 file2  连同文件的所有特性把文件file1复制成文件file2 

cp -i file1 file2 若目标文件已经存在时,在覆盖时会先询问操作的进行 y n

cp -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.py

touch a/b/c.txt

rm 删除命令

rm  file1 删除

rm -r dir 递归删除文件夹,删除文件夹必须加-r


rm -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.txt

tree >> 123.txt

用户权限

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

chgrp 更改文件或目录的属组


sudo chgrp 属组 文件/文件夹

sudo chgrp root 999 将999文件夹的所属组改成root

sudo chgrp root 999/888.txt 将999文件夹内人888.txt文件的所属组改成root

sudo 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 inet

ping 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 --help

man 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 | more

ls -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 4000

kill掉该进程
sudo kill -9 PID

参考

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

linux最常用的20个命令

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值