Linux常用命令

Posted WINNER_QIUQIU

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令相关的知识,希望对你有一定的参考价值。

首先说明:
Linux命令区分大小写。
按TAB键可以自动补全命令。
【】内为可选项,内为必选项。
echo “hello world” 输出hello word。

常用目录

boot 存放启动文件
dev 存放设备文件
etc  存放配置文件
home 普通用户家目录,以/home/\\$username的方式存放
media 移动存储自动挂载目录,以/media/\\$device_name的方式来存放
mnt 手动挂载目录
opt 三方软件安装目录
proc 内存系统文件
root 管理员家目录
run 里面的东西是系统运行时需要的,不能随便删除。但是重启的时候应该抛弃,下次系统运行时自动生成。
srv 服务相关数据
sys 系统文件
tmp 临时文件夹
usr 存放库文件、文档、命令、用户数据等
var 日志存放
lib 库文件

Linux命令

命令【命令选项】【参数】

注:使用【】为可选项,为必选项

ls:查看文件夹的东西
ls -a/tmp 等价于 ls --all/tmp

注:简写前用-,全称用–。其中/tmp为参数(/为根目录)

type命令
使用type命令来区分命令是内部还是外部命令:

【root@www~】# type type
type 是shell内嵌

注:说明type是内部命令

【root@www~】# type clear
clear 是/user/bin/clear

注:说明clear是外部命令

命令存在哪里

【root@www~】#echo$PATH
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin

区别:bin的命令任何人都可以使用,sbin的命令称为特权命令,只能管理员使用。

linux基本命令

清屏命令:clear  快捷键:Ctrl+l
帮助命令:man
进入文件夹命令:cd
列出当前目录内容命令:ls-a -l -d】
其中:ls -l 为列出详细信息
	  ls -a 为列出所有信息
	  ls -i 为列出结点
显示主机名:hostname
显示日期时间:date【-s %F】
显示日历:cal
计算器:bc
重启命令:reboot 或 shutdown -r 或 init 6(后两种仅为管理员可用操作)
注销命令:logout
关机命令:halt 或 shutdown -h 或 init 0(后两种仅为管理员可用操作)
显示当前操作系统和机器的信息:uname
显示当前路径:pwd
ls -a /tmp:列出/tmp的详细信息

如下所示:

注:其中,黑色字体为文件,蓝色字体为文件夹,绿色字体为可执行文件,蓝色字体前带‘.’的为隐藏文件。

man帮助命令
帮助命令 man命令后面可以加一个数字参数,表示具体的范围定位:

数字“1”表示用户命令
数字“2”表示系统调用
数字“3”表示C语言库函数
数字“4”表示设备或特殊文件
数字“5”表示文件格式和规则
数字“6”表示游戏及其他
数字“7”表示宏、包及其他杂项
数字“8”表示系统管理员相关的命令

ls列出当前目录内容命令

ls -F		文件夹后加/显示
ls -x 	按水平对齐方式列出档案
ls -m	以“,”隔开档案
ls -a		按时间排序档案
ls -l		显示详细信息,此命令等同于ll
ls -d		显示目录而不是其内容
ls -h		以K、M、B的形式进行显示
ls -R

cal日历

example
	cal 05 2005    显示2005年5月
	cal 2018		   显示2018年的12个月

bc计算器
浮点运算 scale 指定小数点位数

echo “scale=2;100/3”|bc

uname显示当前操作系统和机器的信息

#uname -a		显示所有信息
#uname -p		显示处理器类型
#uname -m		显示机器硬件信息
#uname -r		显示内核版本

注:如何查看你的Linux是否为稳定版
【root@www~】#uname -r
3 主版本号
10 次版本号 偶数为稳定版 奇数为开发版
0 派生版本号
693 修改次数

文件的创建及删除

新建文件和修改文件或文件的时间戳
命令语法:

touch 【选项】【文件名】

命令选项:

-a	只修改文件的access(访问时间)
-c	或--no-create 不创建不存在的文件
-d	使用指定的日期时间,而非现在的时间
-m	修改modify时间,而不修改access(访问)时间
-r	file使用指定file文件的时间戳(access,modify)更新文件的时间戳(access,modify)
-t	将时间修改为参数指定的日期,如:10011150代表10月8日11点55分

注:三个时间戳如下:
atime:访问时间
mtime:修改文件内容后时间才会变化
ctime:修改时间节点后时间会变化,例如修改文件名字
删除文件
命令语法:

rm 【options】 name

命令选项:

-i	删除前逐一询问确认
-f	即使原档案属性设为唯读,亦直接删除,无需逐一确认
-r	将目录及以下档案亦逐一删除(递归删除)

文件改名
命令语法:

mv old_file new_file

文件查看

-	普通文件
d	目录
l	链接文件
b	设备文件
c	字符设备
s	套接字文件
p	管道文件

Linux文件颜色的意义
绿色文件:可执行文件,可执行的程序
红色文件:压缩文件或包文件
蓝色文件:目录
白色文件:一般性文件,如文本文件、配置文件、源码文件等
浅蓝色文件:链接文件,主要是使用ln命令建立的文件
红色闪烁:表示链接的文件有问题
黄色:表示设备文件
灰色:表示其他文件
粉色:套接字文件

文件移动和拷贝

文件移动
命令语法:

mv 【选项】 源文件或目录  目标文件或目录

命令选项:

-b	若需覆盖文件,则覆盖前先行备份
-i	若指定目录已有同名文件,则询问是否覆盖旧文件
-f	force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-u	若目标文件已经存在,且source比较新,才会更新(update)

拓展:mv src dsT
	改名 dsT是一个文件夹的时候  执行是移动
		 dsT不是一个文件夹的时候  执行改名

文件拷贝
命令语法:

cp 【options】 源文件或目录  目标目录

命令选项:

-a	此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
-d	复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式
-f	覆盖已经存在的目标文件而不给出提示
-i	在覆盖目标之前给出提示,要求用户确认是否覆盖,回答y时目标文件将会被覆盖
-p	除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r	若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
-l	不复制文件,只是生成链接文件

查看文件内容

cat命令
用于连接文件并打印到标准输出设备上。
命令语法:

cat 【选项列表】【文件列表】

命令选项:

-n 或 --number				由1开始对所有输出的行数编号
-b 或 --number-nonblank		和-n相似,不过对空白行不编号
-s 或 --squeeze-blank		当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting	使用^和M-符号,除了LFD和TAB之外
-E 或 --show-ends			在每行结束处显示$ 
-T 或 --show-ends			将TAB字符显示为^l
-A 或 --show-all			等价于 -vET
-e							等价于 -vE
-t							等价于 -vT

输出文件开始部分
命令语法:

head 【OPTION】【FILE】

命令选项:

-c,--bytes=SIZE		打印起始的SIZE字节
-n,--lines=NUMBER	显示起始的NUMBER行,而非默认的起始10行
-q,--quiet,--silent	从不显示给出文件名的首部
-v,--verbose		总是显示给出文件名的首部
--help				显示帮助后退出
--version			输出版本信息后退出

输出文件尾部部分
命令语法:

tail 【OPTION】【FILE】

命令选项:

-f			循环读取
-v			显示详细的处理信息
-c<数目>	显示的字节数
-n<行数>	显示文件的尾部n行内容
tail -n +5	从第5行开始打到最后

文件夹

文件夹管理

mkdir	新建文件夹
rmdir	删除空文件夹
rm -r	删除不为空的文件夹(递归删除)
mv		文件夹改名
ls		文件夹查看

建立目录
命令语法:

mkdir 【选项】 目录

命令选项:

-v	显示信息
-p	递归创建

删除空目录
命令语法:

rmdir 【options】directory

命令选项:

-p	递归删除空目录

文本界面文本编辑器vim

命令语法:

vim 文件名

四种模式
进入命令模式(默认):可以输入命令来进行文件存盘、移动光标、删除字符、撤销命令和重复命令
插入模式:删除字符、插入字符
末行模式:进行文件保存、退出vim、进行查找和替换等操作
替换模式:替换字符

光标的移动

h j k l	对应左下上右
home	光标移到本行开头
end		光标移到本行末尾
G		光标移到末尾
gg		光标移到开头
w		光标移动一个单词
ZZ		保存并退出
page up	上翻一页
page down	下翻一页

文本修改

yy		复制一行
nyy		复制n行
p		粘贴到一行后
P		粘贴到一行前
x		向后删除字符
X		向前删除字符
dd		删除一行
ndd		删除n行
dw		删除一个单词
u		撤销上一步操作

文本查找

/查找内容

注:若查找内容中本身包含 / / /,要使用转义字符$$对其进行转义
模式切换

从命令行模式进入输入模式
a	从光标所在位置后开始输入资料,光标后的资料随增加的资料向后移动
A	从光标所在行最后面的位置开始输入资料
插入
i	从光标所在位置前开始插入资料,光标后的资料随新增资料向后移动
I	从光标所在行的第一个非空白字符前面开始插入资料
开始
o	在光标所在行下新增一行并进入输入模式
O	在光标所在行上方新增一行并进入输入模式
退出输入模式
esc

末行模式

在命令模式下输入":"即可进入末行模式。在末行模式下,可以进行保存文件、退出vim、进行查找和替换等操作。

退出vim

:q		退出
:q!		强制退出不保存
:w		保存不退出
:wq		保存并退出

替换

:s/old/new			只替换光标所在行的第一个old string
:%s/old/new			替换全文所有行的第一个old string
:s/old/new/g		将本行(光标)的所有old string替换为new string g global n代表一个行号
:%s/old/new/g		将文本中所有的old string替换为new string
:1,2s/old/new/g		替换1到2行中的old string替换为new string
:.,2s/old/new/g		.代表光标行到第二行中的old string替换为new string
:2,$s/old/new/g		2到最后一行中的old string替换为new string

其他命令

:set nu		显示行号
:set nonu	不显示行号
:!command	在vim编辑器中执行一条命令不需要退出当前的编辑

注:当同时编辑多个文件时,因为同一时间只能显示一个文件夹,所以在vi中切换打开的文件可以使用N或n。

:n	切换下一个文件
:N	切换上一个文件

相关配置文件

~/.viminfo		存储vim的历史编辑命令
~/.vimrc		个人定制文件

注:个人定制文件只能针对一个用户,文件带行号

用户和组

Linux用户
普通用户:UID大于999;权限较小,可以登录;只能用bin目录下的命令
系统用户:UID小于1000;系统服务管理用户,一般不允许登录系统
管理员:root

组是一个用户容器,用来装用户,没有其他意义
默认情况下,新建用户的同时,系统会创建一个同名组装载该用户
在linux中的每个用户必须属于一个组,不能独立与组外
在linux中每个文件有所有者、所在组、其他组的概念
新建用户
命令语法:

useradd 【选项】用户名
其中用户名不能超过32个字符

命令选项:

-c,--comment			描述
-d,--home				HOME_DIR家目录
-e,--expiredate			EXPIRE_DATE过期时间
-f,--inactive			INACTIVE是否启用过期机制
-g,--gid				GROUP指定组ID号
-G,--groups				GROUP1[,GROUP2,...[,GROUPN]]附加组
-m,--create-home		建立家目录
-M						不建立家目录
-N,--no-user-group		不指定用户同名组
-r,--system				指定该账号是系统账号
-s,--shell				SHELL指定登录shell
-u,--uid				UID指定用户ID号
-U,--user-group			指定用户创建用户同名组
-o						创建用户是可以uid重复

eg:新建用户user01-user04
user01 UID 1500 附属于root组 家目录 /tmp/user01 登录shell/bin/bash

useradd -u 1500 -G root -d /tmp/user01 -s /bin/bash user01

user02系统用户,不要家目录,不允许交互登录

useradd -r -M -s /bin/nologin user02

user03 启用过期,过期时间为2019-04-01

useradd -f 3 -e 2019-04-01 user03
注:过期缓冲期为3天,即到2019-04-04彻底过期不允许登录

user04 UID为0,GID为0

useradd -o -u 0 -g 0 user04

将用户账号切换到user01

su -user01

密码设置
命令语法:

passwd 【选项】用户名
注:以上为管理员给用户设定密码
用户为自己设定密码:passwd即可

命令选项:

-l		锁定用户
-u		解锁用户
-d		删除账户的密码
-S		给定账户的密码状态信息

删除用户
命令语法:

userdel 【选项】用户名

命令选项:

-f,--force
-r,--remove		删除主目录及邮箱

修改用户账户
命令语法:

usermod 【选项】用户名

命令选项:

-a,--append
-L,--lock
-U,--unlock
-m,--move-home with -d
eg: usermod -G root -a user02

更改用户密码过期信息
命令语法:

chage 【选项】用户名```

命令选项:

```powershell
-h,--help display this help message and exit
-m		密码可更改的最小天数。为0时代表任何时候都可更改密码
-M		密码保持有效的最大天数
-W		用户密码到期前,提前收到警告信息的天数
-E		账号到期的日期。过了这天,此账号将不可用
-d		上一次更改的日期
-I		停滞时期。如果一个密码已过期这些天,此账号将不可用
-l		列出当前的设置。由非特权用户来确定他们的密码或账号何时过期

用户查看
命令语法:

/etc/passwd
显示分别为:【用户名】:【密码】:【UID】:【GID】:【身份描述】:【主目录】:【登录shell】
/etc/shadow  影子文件
用户名:这是用户登录系统时使用的名字,在系统中唯一
口令:此字段存放加密口令
最后一次修改的时间:标识从某一时刻起到用户最后一次修改口令的天数
最小时间间隔:两次修改口令之间的最小天数
最大时间间隔:口令保持有效的最多天数,即多少天后必须修改口令
警告时间:从系统开始警告到口令正式失效的天数
不活动时间:口令过期多少天后,该账号被禁用
失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
标志:未使用

组创建
命令语法:

groupadd 【选项】组名

命令选项:

-g,--gid GID		指定GID
-r,--system			创建一个系统组
-o,--non-unique		此选项允许添加一个使用非唯一GID的组
注:组名最长为32个字节

eg:创建一个组,组名为admin

groupadd admin

eg:创建一个组,组名为ayitula,GID为4433

groupadd -g 4433 ayitula

查看组信息

vim /etc/group
小于1000为系统组,大于1000为普通用户组

修改组信息
命令语法:

groupmod 【选项】组名

命令选项:

-g,--gid GID
-n,--new-name NEW_GROUP 	给组改名,如groupmod test -n test1
-o,--non-unique

eg:将user01添加到ayitula组

usermod -G ayitula user01

删除组
命令语法:

groupdel 【选项】组名

组配置文件

/etc/group
显示分别为:【组名】:【密码域】:【GID】:【组员列表】
/etc/gshadow
显示分别为:【组名】:【口令】:【组管理者】:【组内用户列表】

组密码与组切换

gpasswd命令,为组设置密码
-a,-add USER			将用户添加到组里
-d,--delete USER		将用户从组中移除
-r,--remove-password	去除组密码
-R,--restrict			限制非该组成员的用户登录该组
-M,--members USER		列出该组时间
-A,--administrators	ADMIN	列出该组的管理员
newgrp命令,用户临时切换组身份
vim /etc/gshadow		查看密码
gpasswd -A user04 ayitula	将user04作为管理员,一个组中的管理员只能有一个

组密码的作用:可以临时切换到其他组
相关配置文件

/etc/passwd		用户账户信息
/etc/shadow		安全用户账户信息
/etc/group		组账户信息
/etc/gshadow	安全组账户信息
/etc/default/useradd	账户创建的默认值
/etc/skel/		包含默认文件的目录
/etc/login.defs	shadow密码套件配置

以上内容根据路飞学城linux入门视频整理。

以上是关于Linux常用命令的主要内容,如果未能解决你的问题,请参考以下文章

linux常用命令多少个

Linux文本操作常用命令

Linux部署项目常用命令

linux系统基础常用命令

Linux常用命令

Linux常用命令都有哪些?