linux指令大全

ifconfig 查看 ip
sudo passwd root 重置管理员密码
su 切换用户
ssh 22 远程连接
启停服务
service sshd status #查看服务状态
service sshd start #开启服务
service sshd stop #停止服务
service sshd restart #重启服务
ls 查看当前路径下有那些文件
ls -al 查看权限,组,大小,日期
pwd 查看当前所在绝对路径
cd 切换路径
…/回到上级目录
cat 读文件

输入英文斜杠「/」,后面紧接需要搜索的字符串即可。

查找下一个相同字符串,就紧接着按小写字母「n」;

查找上一个相同字符串,就紧接着按大写字母「N」。

cd / 退到根目录下
cd … 回到上层目录

ls 浏览当前文件下的所有内容
-a 隐藏内容也显示
-l 显示文件的详细信息
–full-time 查看文件权限及日期和文件名

mkdir 创建目录
mkdir Linux windows
mkdir -p /agan/a/b/c/d (创建/agan/a/b/c/d)
pwd 查看目录

touch text1 (创建文件)
-t touch -t 201901151010.10 text1 (年月日时分.秒)

yum install tree -y(centos)
apt-get install tree(kali)
tree
-L 2 看两层
-D 只看文件

rm -rf linux (删除linux)

拷贝
cp
cp XXX / 拷贝到根目录下
-r 拷贝略过目录
cp -r * /XXX/

mv 移动和重命名文件
-f 直接覆盖
-i 询问是否覆盖
mv text1 text11 将text1 重命名为text11
第一个文件名后面加路径是移动

man
查看命令的帮助信息
man ls

–help
mv --help

vim
vim file +n 光标在n行
vim file + 光标在末尾
1.普通模式
0行首 $行尾 光标移至
gg首行G尾行
y复制
d删除
p粘贴
u撤销

:10 第10行
:w 保存
:q 退出
:wq 保存并推出
:w! 强制保存
:q! 不保存强制退出
:wq! 强制保存退出

:e /root/aa.txt 打开文件
:e! 重新打开当前文件
:x 保存退出(不重要)
:X 对文件进行加密

:w 存储到当前文件
:w /a.txt 另存为a.txt
:1,3 w a.txt 另存1-3行,生成a.txt
:r /etc/hosts 读入文件到光标后
:5 r /etc/hosts 读入文件第5行后到光标后

:1,4 s/root/123 把1-4行第一个root换成123
:% s/root/123/g %表示全文 g表示全局
😒 表示最后一行
:1,9 s/^#// 1-9行开头#全替换为空
:% s/^/#/ 给全文加#注释掉

set nu 显示行号 set nonu 取消设置行号
永久的设置环境(进入下面的文件中添加set nu)
~/.vimrc //影响当前用户
/etc/vimrc //影响所有系统用户

cat
-n 显示全部内容
-b 忽略空白行

编辑新文件
cat >text8<<EOF
aa
bb
cc
EOF (创建text8内容是aabbcc)
cat >text8<<EOF (一个>表示覆盖)
aa
bb
EOF (覆盖text8内容是aabb)
cat >>text8<<EOF
cc
dd
EOF (追加text8内容是ccdd)
cat text1 text2 text3 > new123(三合1)
cat /dve/null > text1 清空文件

more 查看文件带%
more +(-)5 file

less -p a /file
-p搜索的字符
-i不区分大小写

head/tail -n 5 指定显示前(后)五行(默认10)

文件的压缩和解压缩
tar -cvf new.tar . 压缩所有有后缀名的文件
tar -cvf new.tar * --exclude=6.jpg 排除6.jpg不进行压缩
unzip -r 1.zip 1.txt //把1.txt压缩名为1.zip

tar -xvf 1.tar //解压tar包
tar -xzvf 1.tar.gz //解压tar.gz包
tar -xvf 1.tar -C /XXX //解压到指定路径
unzip 1.zip /解压缩1.zip文件

过滤信息
grep agan text1.txt 找到agan信息
grep agan -i text1.txt -i不区分大小写

grep -E -i “agan|zhangsan” text1.txt -E =egrep
-v //排除某信息
-c //统计信息个数

重定向
x=‘grep -iz sf text2’ > 2;echo “sf在这$x” >>2

cd /etc/sysconfig/network-scripts/ 网卡配置文件
cat ifcfg-eth0

ifconfig 网卡名 IP netmask 子网掩码
ifconfig 网卡名 IP netma sk 255.255.255.0

ss命令
ss -1显示本地打开的所有端口
ss -t -a显示所有tcp socketss
-u -a显示所有的UDP Socekt
ss -s列出当前已经连接,关闭,等待的tcp连接
ss -l 列出当前监听端口
ss -pl列出每个进程名及其监听的端口
ss src 192.168.60.200:http列出至192.168.60.200,80端口的连接

DNS客户端
cat/etc/resolv.conf
修改主机名
cat/etc/hostname 配置文件 nmtui命令图形化修改
需要重启

配置用户登陆提示
cat/etc/motd

查看selinux状态
sestatus 查看状态
setenforce 临时关闭
/etc/selinux/config 修改 SELINUX=disable 永久关闭(重启才能生效)

用户登录终端前显示信息的文件
/etc/issue

用户登录系统后显示提示信息
/etc/motd

linux文件属性
查看命令
ls -hi
查看所有 ls -hli或者ll -hi
-i 文件节点号
-h人类友好显示
.ipm 系统二进制软件包文件
.tra.gz 压缩包文件
.she Shell脚本文件,通过shell语言开发的程序
.conf 系统服务的配置文件。

ln 原始文件 目标文件 硬链接 俩文件相同(备份)
ln -s 原始文件 目标文件 软链接 实体文件的存亡
ll查看

var/log/wtmp:data 文件包含登录信息

awk ‘NR=2’ agan.txt
awk ‘NR2,NR6{print NR,$0}’ agan.txt
awk -F “:” ‘{print $1, 3 , 3, 3,NF}’ agan,txt 打印第1列第3列和最后1列
(-F 指定分隔符)

sed
\n代表换行 加多行文本可以使用
p 打印相关的行,配合-n选项使用 sed -n’2,3p’ cat
a 在行后面另起一行新增行 sed ‘2a sdadasdasd’ cat
i 在行的前面另起一行插入行
c 替换指定的行
d 删除指定的行 sed ‘2,5d’ cat
s 替换匹配的字符串 //s实现替换功能,g替换文件中所有字符串
sed 's##****#g’ cat 将替换为*****

123.txt整个文件的内容附加在abc.txt的第一行内容之后
sed ‘1r 123.txt’ abc.txtI
把abc.txt的第一行拷贝到123.txt文件
sed ‘1w 123.txt’ abc.txt
注意:此时会覆盖文件123.txt原本的内容
输出所有的偶数行
nl / etc/passwd | sed -n ‘{n;p}’
备注: sed -n '{n;p}就可以表示先跳到下一行,然后再开始打印。
输出所有的奇数行
nl /etc/passwd | sed -n ‘{p:n}’

组的配置文件
/etc/group 存储组相关信息
1组名 2组密码 3组ID 4组成员
/etc/gshadow(了解)存储组密码信息
1组名 2组密码 3组管理员 4用户组成员

groupadd 添加组
-g 修改用户组的GID
groupadd -g 1111 z 指定组id 1111 组名z
-f 新增一个强制覆盖已存在组

gpasswd [选项] [U] [G] 将已存在的用户加入到组
-a 添加一个用户
-M 添加多个,还会覆盖
gpasswd -M u1,u2 zu //将用户u1,u2 加入组zu里面
-d 从组删除用户

修改组信息
groupmod
-n 新名 旧名 (修改组名)
-g GID 组名 (修改组id)
-p 更改组密码

删除组的命令
groupdel 【组名】

用户切换身份
su -【用户】 有-切换到用户的家

为普通用户提权
etc/sudoers
user1 All=(all) /bin/ls,/usr/sbin/useradd (能访问管理员的家和创建用户)
user的命令前面要加入sudo

UGO 普通用户U 组G 其他人O
赋予权限命令 chmod
chmod u+x file1//属主增加执行
chmod a+rwx file1/所有人读写执行
chmod a=- file1 所有人没有权限
chmod ug=rw,o=r file1//属主属组等于读写,其他人只读
chmod 664 file1 //使用数值法赋予权限

chown弄到别的组或用户
-R 传递性 去上层目录使用下层目录全部一样
chown用户名 文件名或目录名 /修改文件或目录的所属用户。
chown:组名 文件名或目录名 /修改文件或目录的所属组
chown用户名:组名 文件名或目录名 /修改文件或目录的所属用户和

特殊的权限有t和s权限
t权限是当有最高权限时,也不能删除我的文件,只有所属的主人可以删除我的文件,t权限仅能给目录赋予。
chmod a+t agan 将t权限赋给目录agan
s权限是通过修改二进制文件,更改普通用户的权限。s权限只能赋予系统内的二进制文件。

ACL设置基本权限:可以是多个用户,多个组和其它人
赋予ACL权限使用: setfacl命令查看ACL权限使用:getfacl命令
设置ACL权限:
[root@gj~]# setfacl -m u:agan:rw file1//增加用户agan权限
[root@gi~]# setfacl -m g:hr:r file1//给hr组赋权限
[root@gi~]# setfacl -m o::- file1
/其它人没有权限。注:“:“表示没有特指其它人
查看ACL权限:
[root@gi~]# ll /abc /test.txt
-rw-rw-r–+ 1 root root 0 10-26 13:59/abc/test.txt
//带有”+"号,表示设置了ACL权限
getfacl /gj/test.txt//查看gi目录下test.txt文件的ACL权限

删除ACL权限:
[root@gj~]# setfacl -x u:agan file1 //删除用户agan的ACL权限
[root@gi~]# setfacl - g:hr file1 //删除组hr的acl权限
[root@gi~]# setfacl-b ftp //删除所有acl权限
[root@gj ~]# setfacl -b-R ftp
//删除abc目录以及下面的子目录、子文件的ACL权限
临时降低用户或组(除属主和其他人)的权限:(针对目录) , mask权限用户临时降低用户或组的权限
[root@gi~]# setfacl -m m::rx ftp//权限被降为rx权限设置默认继承权限:(针对目录)
[root@gj ~]# setfacl -m d:u:agan:rwx ftp//在ftp目录在新建文件时,文件的权限默认被继承下去。
备注:d:针对新建的文件生效,对已有的文件不生效

进程掩码的作用:
1)新建文件、新建目录的权限由系统默认权限和默认权限掩码共同确定。
2) Linux系统中目录的最大权限是777,文件的最大权限是666。
3)默认权限掩码告诉系统当创建一个文件或目录时不应该赋予哪些权限。

实例:修改shell umask值(临时)
[root@gj~]# umask 000
实例:修改shell umask值(永久)
[root@gj ~]# vim /etc /bashrc
[root@gj ~]# source /etc/bashrc
[root@gj ~]# vim /etc/profile
[root@gj ~]# source / etc/profiler
备注:修改普通用户的掩码权限

什么是进程?
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
已分配内存的地址空间;安全属性;程序代码的一个或多个执行线程,多个线程可以构成一个进程,多个进程构成一个程序;进程状态
程序:二进制文件,例如:/usr/sbin/httpd,进程:是程序运行的过程,是动态的,有生命周期及运行状态。
进程与程序是有区别的,进程不是程序,虽然它由程序产生,程序只
是一个静态的命令集合,而进程是一个随时都可能发生变化的、动态的,使用系统运行资源的程序,而一个程序可以启动多个进程。

ps 查看进程
ps -aux 查看所有进程
-u显示进程的详细信息,包括CPU和内存的使用率;
-a显示终端上的所有进程,包括其他用户的进程;
-x显示没有控制终端的进程;

%MEM占用的内存使用率;5、VSZ占用的虚拟内存大小;6、RSS占用的内存大小; 7、TTY终端的次设备号码;8、STAT该进程的状态:D不可中断的休眠(通常表示该进程正在进行I/0动作)R正在执行中;S休眠状态;T暂停状态;Z不存在但暂时无法消除;W没有足够的内存分页可分配;<高优先顺序的进程;N低优先顺序的进程;L有内存分页分配并锁在内存内。
9、START进程开始时间;10、TIME执行的时间;11、COMMAND所执行的命令

使用pgrep命令。pgrep能查找当前正在运行的进程并列出符合条件的进程
ID。
pgrep -u root sshd查看指定用户指定进程sshd的PID号
[root@gj ~]# pgrep sshd//指定进程为sshd [root@gj~]# pidof sshd //指定进程为sshd
[root@gj ~]# pstree /查看进程树//动态查看进程top
[root@gj ~]# top -u user1
查看指定用户user1的进程
[root@gj ~]# top -b -n 2 > top.txt
//将最近2次top信息写入到文件注明: - n2表示更新2次后退出;-b以批处理模式显示程序信息

常用信号[root@gj ~]# kill -l
信号 数值 描述
sighup 1 挂起(从终端发迁的结束信号)
sigint 2 中断信号
sigquit 3 退出信号
sigkill 9 强制杀死进程
sigterm 15 Kil命合默认的终止信号
sigchld 17 子进程终止或停止
sigstop 19 停止执行
kill -9 1331 杀死进程 1331

主要提供三种格式的包:rpm格式、二进制格式、源码格式
rpm格式:例libjpeg-devel-6b-33.x86_64.rpm , //rpm格式很好区分,使用rpm/yum命令进行安装
二进制包: mysql-3.23.58-pc-linux-i686.tar.gz
│/二进制格式的包名字很长,有版本号、适应平台、适应的硬件类型等,已编译好,解压后即可使用,不需要安装。
源码包:Iphp-5.2.14.tar.gz
/而源码格式仅仅就是一个版本号的tar包。源码。
包安装步骤:
1、解压2、./configure 3、 make4、make install
备注:源码包严格来讲是三大步骤,分别为2/3/4
注:./configure用来检查环境变量及配置编译选项的;make是用来将源代码编译成二进制文件的;而make install则会将make编译出来的文件安装到指定位置(或默认位置)。

RPM包默认安装路径
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置
源码包安装在指定位置中,一般是/usr/local/软件名/
rpm -ivh
i 安装软件
-v 表示在安装过充值显示详细信息
-h 显示进度水平
-U 升级安装
-e 表示删除
-a 显示所有的软件包
额外选项: --nomd5//不检验软件包的签名
–force / /强制安装软件包
–nodeps //忽略依赖关系。
软件包的卸载:rpm -e rpm包文件名
例:[root@gi ~]# rpm -e ntfs-3g --nodeps
软件的查询: rpm -qa
查询单个软件包:rpm -qa包名
实例:rpm -qa / wc -l //统计软件包的安装个数

[root@gi ~]# yum clean all /清空缓存及其它文件
[root@gi~]# yum makecache //清空缓存
[root@gi~]# yum repolist //查询可用的源
[root@gi~]# yum list mysql-server /查询包是否安装
[root@gi~]# yum info mysql //查询包的信息
[root@gi~]# yum search mysql //查询包名和描述中带有mysql字符串的包
[root@gi~]# yum provides php
//查询指定的文件属于哪个包,没有安装也可以查询
[root@gi ~]# yum -y install mysql-server/安装包
[root@gi ~]# yum -y install http:// redhat.com/soft/ntfs-3g-2011.4.12-5.el6.x86_64.rpm
//例如指明包的所再网址来安装包
[root@gi~]# yum -y reinstall mysgl-server //重新安装
[root@gi~]# yum -y update mysql1 /升级单个包
[root@gij~]# yum -y remove mysql-server //卸载包

crontab命令作用周期性执行任务
周期性计划任务创建步骤:
1)使用vim先创建一个任务文件;
文件格式:分钟 小时 日期 月份 星期几 执行命令
2)文件创建完成后,(crontab文件名]执行编辑的
3)查看等待执行的任务(crontab -l )查询任务
4)如不想执行时(crontab -r)删除任务
25 10 13 1 3 命令(1月13 10点25分 周3执行命令)

查看新设备是否发现
ll /dev/sd* //查看Kernel识别到的硬件设备
fdisk -l //查看现有磁盘分区列表
分区工具fdisk用法介绍,命令参数介绍p、打印分区表。
n、新建一个新分区。d、删除一个分区。q、退出不保存。
w、把分区写进分区表,保存并退出。

fdisk /dev /sd*/要分区的磁盘
Linux下常用文件系统:Ext4,XFS
格式化: mkfs.文件系统具体的磁盘
例如:[root@gj ~]# mkfs.ext4 /dev/sdc1
挂载与卸载磁盘
[root@gj ~]# mount /dev/sdc1 /mnt/disk1
[root@gj ~]# mount查看挂载信息
[root@gj ~]# umount /dev/sdc1
//卸载

df
df -h/查看磁盘使用情况(文件系统容量已用可用已用%挂载
点)
查看某个目录的大小: du -hs / home
查看目录下所有目录的大小并按大小降序排列: du -sm /etc/*lsort -nr | less
查看磁盘使用情况(文件系统的使用情况): df -h
备注: sort命令是帮我们依据不同的数据类型进行排序
-n依照数值的大小排序。
-r以相反的顺序来排序。

du 统计磁盘上的文件大小
参数 含义
-b 以Byte为单位统计文件
-k 以KB为单位统计文件
-m 以MB为单位统计文件
-h 按照1024进制以最适合的单位统计文件
-H 按照1000进制以最适合的单位统计文件
-s 指定统计目标(比如统计某个指定的文件夹)

检测CPU
cat/proc/ cpuinfo
显示出主机CPU详细参数,如内核、频率、型号等检测内存
cat/proc/ meminfo
查看主机内存信息,如内存大小、交换空间、高速缓存等

dd功能说明:读取,转换并输出数据。
语法:
dd[bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=<字节数>][if=<文件>][obs=<字节数>][of=<文件>][seek=<区块数>][skip=<区块数>][–help][–version]
if=xxx从xxx读取,如if=/dev /zero
of=xxx向xxx写出,可以写文件,可以写裸设备。
bs=8k每次读或写的大小,即一个块的大小。
count=xxx读写块的总数量
磁盘读写速度
dd if=/ dev/zero of=test bs=64k count=4k of=dsync
dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync

带宽测试步骤:
1)下载speedtest-cli
https:/ /github.com/sivel/speedtest-cli
//解压*.zip的文件unzip *.zip2) cd speedtest-cli
./ speedtest.py
附加:
把下载的软件上传到电脑里[root@agan gi]# yum install lrzsz.-ysz命令发送文件到本地:sz filename
rz命令本地上传文件到服务器:rz filename

uname 内核信息获取
参数 含义
-a 显示内核所有信息
-v 内核的编译版本号
-r 内核的release发行号
-n 主机名
lsmod 列出内核模块

shell的第一个脚本
#!/bin/bash
#1st program
echo "hello world”

脚本执行方式
执行方式 含义
chmod +x test.sh 赋予执行权限
./test.sh 执行脚本
bash test.sh 通过bash调用执行脚本
sh text1.sh 可以直接执行或者bash的

快捷键列表
种类 解释
Ctrl+c 强制终止当前命令
Ctrl+l 清屏
Ctrl+a 光标移动到命令行首
Ctrl+e 光标移动到命令行尾
Ctrl+u 从光标所在位置删除到行首
Ctrl+z 把命令放入后台
Ctrl+r 在历史命令中搜索
Tab 命令补全/文件名补全

用户自定义变量
变量定义:变量名=变量值
变量调用: echo $变量名
变量查看: set(显示全部变量)
set / grep变量=变量名
变量删除:unset变量名

环境变量
设置环境变量:export变量名=变量值
查看环境变量: set(显示全部变量)
env(只能看到环境变量)

常用的环境变量
变量 含义
HOSTNAME 主机名
SHELL 当前的shell
TERM 终端环境
HISTSIZE 历史命令条数
SSH_CLIENT 当前操作环境是用ssh链接的,这里记录客户端ip
SSH_TTY ssh连接的终端时pts/1
USER 当前登录的用户
PATH 系统查找命令的路径

位置参数变量
$n n为数字,$0代表命令本身,$1- 9 代 表 第 一 到 第 九 个 参 数 , 十 以 上 的 参 数 需 要 用 大 括 号 包 含 , 如 9代表第一到第九个参数,十以上的参数需要用大括号包含,如 9{10}
∗ 这 个 变 量 代 表 命 令 行 中 所 有 参 数 , * 这个变量代表命令行中所有参数, *把所有的参数看成一个整体(参数1个)
@ 这 个 变 量 代 表 命 令 行 中 所 有 参 数 , 不 过 @ 这个变量代表命令行中所有参数,不过 @@把每个参数区分对待(参数n个)
$#
这个变量代表命令行中所有参数的个数

预定义变量
$?
最后一次执行的命令的返回状态。如果这个变量的值为O[具体数字由命令本身决定),证明上一个命令正确执行;如果这个变量的值非0,则证明上一个命令执行不正确。
$$
当前进程的进程号(PID)
$!
后台运行的最后一个进程的进程号(PID)

全局变量的使用
vim /etc/profile.d/gs.sh 在这个文件中写入命令(需要重启)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值