Linux学习_新手常用命令大全

init 0   关机命令
init 3     命令行模式登陆
init 5     以图形界面登陆(如果系统有装图形界面)
init 6       重启系统 

run level  上次以及本地启动系统是以哪个级别启动的(0(关机)、1(单用户)、2(多用户)、3(命令行模式)、4(开发测试用)、5(图形模式)、6(重启))

uname -r 内核版本 

Ctrl+shift+n开启新的终端(图形界面中才可使用) 

 
Ctrl + c 终止进程(发送SIGINT信号给系统)可以在终端输入一个指令(还没发送)时直接终止掉,进入到下一个指令预备
Ctrl + z 挂起进程(发送SIGSTOP信号给系统)进程从前台进入后台并暂停。   

Ctrl + d 完成运行并退出(非信号,表示输入终止)

Shift + PageUP/PageDown 终端信息上下翻页

Ctrl + Shift + ↑/↓ 逐条信息上下翻动(个人觉得这样翻页比较舒服,不会太突兀)

bg 将后台暂停的命令变成继续执行(不是调到前台执行)

fg 将后台命令调到前台继续执行

jobs      查看当前有多少在后台运行的命令

 
man  命令名 查看某个命令的帮助信息,查看时按q可以退出(提示没有这个命令等问题-----> 待填充) 
命令名 --help 查看命令的帮助信息(命令名和"--"要有空格) 
区别 : --help只能查看shell内部的命令帮助信息,而外部命名的帮助信息就要通过man或者info查看了。

whereis  命令名字 只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

whick   命令名字 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

sudo 某个操作 可以在所有指令操作前面加上,代表是以系统管理员的身份执行命令(意味着以这个命令执行的指令都好像是root亲自执行)

注意:如果提醒用户不再sudoers file中需要手动修改/etc/sudoers文件添加权限(关于给用户添加sudo权限-----> 待填充

 
useradd 用户名  建立用户(管理员账号才可创建),默认无密码,但非系统用户无法直接登录(虽然没密码,但登录时会提示输入密码)
-p  在创建用户的时候指定密码(虽然两条命令合并起来变方便了,但是黑客可以通过history直接查看到用户设的密码)

-u   指定userid

-g  指定群组

-d 指定home目录

-c 描述信息
userdel   用户名        删除用户 (管理员账号才可创建) 一定要搭配-r删除 ,否则相关联的文件不会删除(意味着不能再新添加一个和删除用户同名的用户,因为被删除用户相关的配置文件还在,系统无法识别)
-f 强制删除一个用户,即使该用户还在登陆的状态(如果当前终端使用的是该用户则不可以强制删除) 
注意:强制删除的话用户的home目录还在,而且不会断开该用户已有的SSH连接。所以就算用户已经不存在了,但实际上还是登陆状态,并且是活跃用户,不过用户退出登录后就不能再登陆了。
所以这个选项使用起来会有一定风险,因为会导致你的系统进入不一致的状态。 
passwd  用户名   更改用户名密码

id   用户名 查看一个用户的id,属主和属组信息 

usermod   修改用户的权限信息

-g 改变用户的主组

-G 把用户添加到一个组里面,代表副组是什么(覆盖用户的副组信息)

-aG 不覆盖,追加副组,比如将组tom添加jack的副组里面:usermod -g tom jack

-L 锁定用户(非管理员用户无法登陆,即使有密码)
-U 解锁用户

groupadd 组名 添加一个组(可以到/ect/group手动添加) 

exit  退出当前登陆的用户
 
su    用户名  从当前用户切换到另外一个用户,root用户不用密码可以切换到其他账号,而其他用户切换到管理员用户是需要密码的
 
who  有什么用户登陆了系统
whoami  当前登陆的是哪个用户(当前终端中是用哪个用户发出指令)
 
ls  显示当前路径下有哪些文件
-l   展示出该目录下文件的类型、大小、修改时间、文件的名字以及文件相关权限
-a  展示路径下的隐藏文件
 
locate 文件名 查找一个文件所在的目录
locate 文件名或文件名一部分 * 星号模糊搜索路径:可以用文件名的一部分去搜索与之相关(名字中包括输入字符)的所有文件所在的目录
注意文件名一部分和*号之间需要有空格,否则意味着搜索名字为:文件名一部分 + *  的文件 
 
find  文件路径 -name "查找的文件名"  在某路径下通过文件名查找文件路径(包括所有子目录里面的文件)
find  文件路径 -name   "查找的文件名或文件名一部分*"   在某个路径下查找与之相关的所有文件(包括所有子目录里面的文件) 
注意使用find来进行模糊查询文件名和*号之间不能有间隔 
 
mkdir   文件路径/目录名 创建一个目录 
touch   文件路径/文件名字 创建一个文件


> 把左边的内容覆盖到文件里面的内容 例如echo 'hello' >> a.txt
>> 把左边的内容追加到右边的文件中 例如echo 'hello' >> a.txt

注意:(只要左边有输出就可以了)这两个命令相当于把文件数据读到左边再放到右边目标文件

cd   进入用户主目录
 
/ 代表根目录 
cd . 当前目录
cd .. 切换到上一级目录 
cd ../.. 切换到上两级目录 
cd -  返回进入当前目录前的那个目录(连续使用这个命令意味着循环从当前目录到进入此目录前的那个目录之间来回切换) 
pwd   回显(显示)用户当前所在的路径
vi /路径/文件名 可以查看到文件的内容,此时按a/o/i进入编辑模式,修改后按esc回到命令模式 并输入“:wq”,然后回车就可以保存退出。
如果不想保存而直接退出,则按下Esc键后,输入“:q!”,然后回车即可。“wq”表示Write和Quit,即保存退出;“q!”表示忽略修改强行退出。 

vim  /路径/文件名 vi的增强版,兼容vi的所有操作,新手只需要了解到的不同点就是vim支持无限制往上撤销命令  

如果提示没有vim则----->yum install vim


vi&&vim命令行模式 (也有说正常模式) 常用命令:

dd 删除光标所在这一行

ndd 删除光标下的固定行数(先按数字再按dd)
u 撤销上一步操作
ctrl+r 回复上一步操作
yy 复制光标所在那行
p 复制内容到当前行下一行
P 复制内容到当前行上一行
np 将复制的内容粘贴n行
dd+p 剪切
shift+$ 跳到行尾
0 跳到行首
G 跳到文件尾部
gg 跳到文件开头
nG 跳到某一行
H 屏幕最上那一行的第一个字符
M 屏幕中间那一行的第一个字符
L 屏幕最下那一行的第一个字符
/ 定位文件内容

vi&&vim扩展模式(也有说命令模式)常用命令:

在正常模式/命令行模式输入冒号,后面跟具体命令即是该模式,比如:w

w 保存写入内容

q 退出 

q! 强制退出

wq 保存并退出

wq! 强制保存并退出 

vi&&vim可视模式常用命令:

在正常模式/命令行模式按v(逐个字符选择文本)/V(逐行选择文本)/Ctrl + v(按照块的形式选择文本)即可进入可视模式 

d     删除选中文本

c     修改选中文本
r     替换选中文本
I     在选中文本前插入
A     在选中文本后插入
gu     选中区域转为小写
gU     选中区域转为大写
g~     大小写互调
>     向右缩进一个单位

<     向左缩进一个单位

cat  文件路径  查看文件全部内容

head  文件路径     查看文件的头10行信息

-数字   选择查看的是头几行的信息,比如"head -4 /文件路径" 查看的是文件头4行的信息

tail  文件路径   查看文件后面10行信息

-数字   选择查看的是后几行的信息 (同head的一样)

more  文件路径  查看当前查看了文件百分之几的信息

上面四条命令都可以在命令后面加-f,意思是动态监测文件内容增加(主要用来查看日志) 

clear  清除屏幕,快捷键是ctrl + L(clear相当于把终端信息翻了一页,可以翻页查看前面的命令)
reset  重新初始化终端,把页面的信息全部清除(在终端不小心打开了一些二进制文件或者混乱的时候很有用)
wc -l 统计文件有多少行 

rm 文件路径 删除一个文件

-f 强制删除(不提示是否删除 )

-r 递归删除(如果删除的是一个目录,会逐层将整个目录下面的文件都删除掉)

-rf 递归删除目录并不提示

mv  文件路径  需要移动到的路径 移动文件 

./文件路径 如果内容可执行将执行文件里面的内容(当文件对所有人都没有执行权限的话这种执行方法即使是root用户也不能执行文件)


ll -d  目录路径 查看目录的权限 

chmod  更改什么权限  需要修改权限的文件 更改针对文件层面的可读可写可执行权限(只有root用户或者文件属主才能更改权限)有四种更改权限的方式,第一种是赋值的形式,例如chmod u=rwx a.txt。 第二种是直接+,chomod u+rwx a.txt。   第三种是简写形式,比如要去掉组成员的全部权限:chmod g=- a.txt。   第四种是用数字表示(r=4 w=2 x=1)chmod g=4 a.txt 代表a.txt文件属组只有可读权限

-u 属主权限(2-4位)

-g 属组权限(5-7位)

-o 其他人权限 (8-10位)

注意:一个文件就算改成属主对文件没有任何操作但实际上不会影响属主对文件的操作且root用户不在权限的限制范围内

chown 属主.属组 文件路径 更改针对目录层面的权限,属主和属组之间的"."是固定格式,只改属主权限时可以不写
只改属主:chown 属主 文件路径
只改属组:chown .属组 文件路径
更改以某个文件路径为根下的所有文件和目录的属主和属组:chown -R 属主.属组 文件路径

注意:文件和目录权限是分离的

目录可写权限意味着是否能添加/删除/重命名文件,而对文件本身的操作(内容的修改)涉及的是文件权限。

文件名{firstNumber..endNumber} 在某个路径下创建以firstNumber开头,直到endNumber结束的文件,比如在根目录下创建名为1-100的文件:touch /{1..100}.txt

rm -f *  删除当前所在目录下的所有文件

在一个目录测试过后还可以这样删除:rm -f {1..100}.txt 

tar 参数 打包进的文件打包 打包哪个目录下的文件

-cf 创建归档文件并命名

-v 显示归档过程(打包进了哪些文件)
-tf 查看归档文件
-xf 解包(文件路径路径什么都不跟默认解到当前所在目录)
-C 指定解包的路径
-c zvf 打包完以gzip形式直接压缩
-cj vf 打包完以bz2形式直接压缩
f要在参数最后面,v要在参数中间
-xfv会报错,正确:-xvf
gzip 文件路径 会把源文件压缩(不会创建新文件),且源文件后缀会追加.gz
gunzip 文件路径 把压缩文件解压(压缩文件变回源文件) 默认解压缩在源文件目录
bzip2 文件路径
bunzip2 文件路径

fdisk -l 查看分区信息

dh -sh 文件路径 统计一个目录下所有文件的总大小


df -i 查看分区inode信息

df   -i   目录/文件路径 查看目录/文件的inode信息

ifconfig (interface config) 查看当前操作系统被激活网卡的信息

ifconfig 网卡名字 只查看一个网卡信息

ifconfig 网卡名字 要分配的ip地址 netmask 对应的子母掩码
ifconfig 网卡名字 要分配的ip地址/掩码数量
chkconfig 检查、设置系统的各种服务(查看每个登陆级别时服务处于什么状态)


service netwok restart 重启网络服务 

service network status 查看网络服务运行状态(配置的设备以及已经激活的网卡有哪些)

service NetworkManager stop   停止网卡的守护进程

chkconfig NetworkManager off   关闭自动启动 

service iptables stop 本地登陆过程关掉防火墙(有可能导致配置ssh服务连接不上) 

chkconfig iptables off 永久关闭防火墙

route add default gw 网卡ip 手动添加网关(临时) 


ifup 网卡名字 打开指定的网络接口

ifdown  网卡名字   关闭指定的网络接口

使用这两条命令也可达到重启网络的目的,先down(stop)后up(start),原理跟service network stop一样 

getenforce  查看selinux状态

setenforce  参数  临时设置selinux状态0代表关闭,1代表开启 

ping ip地址 测试主机之间网络的连通性,如果测试的网络主机没有问题,就会回应该请求信息  

route -n  查看路由状态 


rpm 通过rpm方式安装包(这个包其实就是文件,里面都是二进制,安装时不需要编译的过程 )

-i(install)

v 查看详细参数
h 安装进度
q 查询
ql 查询软件包位置(quart location)
a 全部(一般和q连用)
e 卸载(erase),可以直接用软件包名
i 获取软件包的详细信息
--force 强制安装(覆盖)
--nodeps 删除时忽略依赖性

yum yum方式安装包(在软件包设置好依赖关系,以递归的方式安装包) 

yum install *包名* 包括包名的全部包都安装
yum erase 卸载包
yum makecache 先缓存好yum源信息(依赖性关系),这样下次安装就直接加载以及缓存好的yum源信息
yum clean all 清除缓存

echo '内容'   需要回显(显示)在屏幕的内容

 
alias 命令   查看命令的别名,比如指令ll的别名是ls -l
-p   显示已经设置的命令别名
alias  原生命令 = '别名'  可以给一个命令指定别名(可以将很长的指令提取关键字母简化记忆)
unalias   别名  删除别名
用alias设置命令设置别名作用域仅限于本次登陆的操作,若想使别名每次登陆都(永久)生效,需要定义系统的环境变量(将指令添加到bash的初始化文件中)
系统变量位于etc/profile中,但文件开头提示“Functions and aliases go in /etc/bashrc”。所以我们到/etc/bashrc中定义别名,最后一行添加定义信息
 例如:alias la=ls-a 注意=号前后与-a前不能有空格
定义完成后通过  “source  文件路径”  的方式使刚才修改的配置文件立马生效(使shell读入路径的shell文件并依次执行文件中所有的命令,用于重新执行刚修改的系统初始化文件,使之立即生效,不需要重新登陆)也可以在  etc/profile.d/  中新建一个任意命名的.sh文件,最后source 文件路径使其生效。 
关于shell:https://www.cnblogs.com/pkufork/p/linux_source.html
 
 
history  查看本地登陆执行过的历史命令
-c    清除所有的历史命令
 
top 硬件性能分析( 动态查看, 一般不会用top查看系统状态,因为需要实时刷新,占用资源多
free 查看内存信息
-m 以M为单位
-h 以G为单位

pstree 查看进程树

 

ps 报告系统当前的进程状态

 

猜你喜欢

转载自www.cnblogs.com/neural-net/p/9047934.html