Linux最最最基础命令,拿走不谢!!!

Linux最最最基础命令,拿走不谢!!!

linux–>内核 auto.iso
CentOS Redhat
www.centos.org
命令提示符
[root@localhost 桌面]#
代表登录的用户,root 管理员
主机名
桌面 -->当前所在的目录 ~–>用户的家目录–>/root

–>代表用户的身份 # 管理员(超级用户)

​ $ 普通用户

命令的格式:

命令关键字 [选项] 参数
选项引导方式:
短格式引导: -l -a = -la
长格式引导: --help

命令:

1.ls 查看目录下内容

-a all 所有,查看隐藏文件
-l long 长格式显示,文件信息更详细
-h human 以人类可读的方式显示文件大小,通常与-l合用

ls -l = ll

2.cd 切换目录

cd 返回用户的家目录
cd … 返回上一级目录 . 当前目录
cd - 返回上一个工作的目录

[root@localhost /] cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cd
[root@localhost ~] cd -
/etc/sysconfig/network-scripts

3.pwd 打印工作路径

4.mkdir 创建目录

-p 嵌套创建目录
-v 详细信息

5.touch 创建文件(更新文件时间戳)

6.cp 复制

格式 cp 源路径 目标路径
选项:
-r 复制目录

7.mv 移动(剪切)或重命名

mv 源路径 目标路径
重命名:源路径与目标路径相同

8.rm 删除

-r 删除目录
-f 强制删除

绝对路径:从根目录开始写
相对路径:从当前目录开始

9.帮助命令:

help:只能查看内置命令的帮助信息
man:查看命令的帮助信息
info:

10.find 查找文件

格式:find 查找路径 查找条件
查找条件:
-name 指定名字查找文件 Linux系统下一切皆文件
-type 指定类型查找文件
f 代表普通文件 (file)
d 目录 directory
b 块设备文件 block
c 字符设备文件 character
l 链接文件 link
s 套接字文件 socket
p 管道文件 pipeline
-size 指定大小查找文件

11.which 查找命令所在的绝对路径

[root@localhost ~]# which cd
/usr/bin/cd

-a and 两个条件同时为真
-o or 两个条件有一个为真

12.wc 统计 (word count) 字符数不一定等于字节数

[root@localhost ~]# wc a.txt
 6 12 72 a.txt

-l 统计行数
-w 统计单词数
-c 统计字节数

13.cat 查看文件内容,一次将文件内容全部输出

tac 倒着输出文件
nl 带行号显示文件内容,忽略空行。cat -n空行也有行号
more 分页显示文件内容,空格向下翻一页,回车向下翻一行,
退出输入q
less 可以向上或向下翻页查看文件内容,page up向上翻页,
page down 向下翻页;
搜索匹配: /word 在文件中从上向下匹配word,
输入n跳到下一个匹配的单词
?word 在文件中从下向上匹配word.
退出输入 q
head 显示文件的前几行,默认前10行
-n 指定行数
tail 显示文件的后几行,默认后10行
-n 指定行数

14.通配符

? 通配任意一个字符

  • 通配任意所有字符

清屏:ctrl+l 或clear

15.grep 过滤,在文件中以行为单位进行过滤

格式:grep 关键字 文件名
-i 不区分大小写
-v 取反(反向过滤)
正则表达式:
^ 以…开头
$ 以…结尾

[root@localhost ~]# grep  root  /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# grep ^root  /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# grep bash$  /etc/passwd
root:x:0:0:root:/root:/bin/bash
xuyanlong:x:1000:1001:xuyanlong:/home/xuyanlong:/bin/bash
排除空行:
[root@localhost ~]# grep -v ^$  /etc/passwd

16.管道符 |

作用:用于两个命令的连接使用,将前一个命令的结果作为
后一个命令的执行目标

grep root /etc/passwd | wc -l

17、du 查看文件或目录占用磁盘空间的大小

-h 以人类可读的方式显示

变量:用于存放值的地方
用一串字母,来表示一个长的值

18.vi/vim编辑器

命令模式-i/I,a/A,o/O->输入模式
i 在当前光标处插入 o 在当前光标新起下一行开始写

输入模式-Esc->命令模式
命令模式下的操作:
剪切(删除):dd
剪切(删除)多行:#dd (#代表删除的行数)
粘贴:p
复制:yy
复制多行:#yy (#代表删除的行数)
跳转:
gg 跳到文件的第一行
G 跳到文件的最后一行
home键 跳到该行的第一个字符
end键 最后一个字符
x 删除一个字符
u 撤销
Ctrl+r 恢复

命令模式- : / ? ->末行模式
:
w 保存
wq 保存退出
q 退出
q! 强制退出
wq! 强制保存退出

:set nu 显示行号
:set nonu 取消行号
:10 跳到第10行
:1,5 s/old_word/new_word/g (%代表全文)
将1到5行中的old_word替换成new_word

/word 在文件中从上向下匹配word,输入n跳到下一个匹配的单词
?word 在文件中从下向上匹配word.

19.gzip/gunzip 压缩/解压缩—>.gz

gzip -9 指定压缩比
1-9 数字越大,压缩比越大,压缩完的文件越小,耗时越长

gunzip == gzip -d 解压缩

20.bzip2/bunzip2 压缩/解压缩—>.bz2

21.tar 制作或释放归档文件

选项:

-c   创建归档文件
-v   输出详细信息
-j   调用bzip2压缩格式
-z   调用gzip压缩格式
-f   指定归档文件
-x   释放归档文件
-C   指定释放归档文件存放的路径

/etc 存放配置文件
/var 可变长文件(以日志文件为主)
/var/log/message 是系统的日志文件

软件包的封装类型:
1.rpm -->yum
2.deb -->apt
3.源码包(tar包)

22.rpm

rpm -q  包名 查询该软件包是否安装
rpm -qa     列出所有已安装的软件包
rpm -qi      查询已安装的软件包的信息
rpm -ql      查询软件包里包含哪些文件
rpm -qf      查看指定文件属于哪个文件


23.umount 卸载

[root@master01 ~]# umount /dev/sr0

24.mount 挂载

[root@master01 ~]# mount /dev/sr0 /media/
/dev/sr0 挂载源    /media  挂载点

[root@master01 Packages]# 
[root@master01 Packages]# pwd
/media/Packages
[root@master01 Packages]# rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm 
-i   安装
-v   显示详细信息
-h   以#号显示安装进度
-e   卸载
-U   升级

如果想安装httpd-2.4包,需要httpd-tools等包
依赖关系:一个包依赖其他的软件包
方法一:根据提示,一个包一个包的装
方法二:使用yum安装rpm包

25.yum 解决依赖关系安装rpm包

配置本地yum源:

umount /dev/sr0 
mount /dev/sr0 /media
cd /etc/yum.repos.d/
mkdir bak
mv C* bak    将所有以C开头的文件,移动到当前目录的bak目录下
vim local.repo
[local]     //指定yum源名称
name=local   //指定yum源名称
baseurl=file:///media //指定软件包存放的路径,也就是光盘挂载路径
gpgcheck=0    //是否启用检查认证,0不启用,1启用
enabled=1     //是否启用该yum源,0不启用,1启用
yum clean all  清除yum缓存
yum makecache  建立新的yum缓存
yum -y install 软件包名  安装软件包
yum -y remove  软件包名  卸载软件包
yum list                 列出所有的软件包
yum list installed       列出已安装的软件包
yum info 软件包名	     查看软件包的信息
yum grouplist            列出包组
yum -y groupinstall      安装包组
yum -y groupremove       卸载包组
yum provides route		 查看route是否安装

源码包安装(tar ball)

编译环境:yum -y install gcc gcc-c++ make 
1.解包  tar xf nginx-1.6.0.tar.gz -C /usr/src/
2.配置  cd /usr/src/nginx-1.6.0/
		[./configure --prefix=/usr/local/nginx
3.编译  [root@localhost nginx-1.6.0]make
4.安装  [root@localhost nginx-1.6.0]# make install
错误1:C compiler is not found 
原因:没有编译环境
解决方法:yum -y install gcc gcc-c++ make

错误2:

./configure: error: the HTTP rewrite module requires 
the PCRE library.You can either disable the module by 
using --without-http_rewrite_module option, or 
install the PCRE library into the system, or build 
the PCRE library statically from the source 
with nginx by using --with-pcre= option.

错误原因:缺少pcre库
解决方法:

yum -y install pcre-devel

错误原因:缺少pcre库
解决方法:yum -y install pcre-devel

错误3:

./configure: error: the HTTP gzip module requires the zlib 
library.You can either disable the module by using 
--without-http_gzip_module option, or install the zlib 
library into the system, or build the zlib library
statically from the source with nginx by using 
--with-zlib= option.

错误原因:缺少zlib库
解决方法:

yum -y install zlib-devel

错误原因:缺少zlib库
解决方法:

yum -y install zlib-devel

虚拟机与物理机互相传文件:
方法一:安装lrzsz软件包(只可以用在xshell或CRT)
rz 物理机传入虚拟机
sz 虚拟机传入物理机
方法二:利用Vmware tools直接拖
方法三:利用U盘挂载

mount /dev/sdb4 /mnt
cd /mnt

把需要的文件复制到虚拟机中

配置IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0 网卡配置文件
TYPE=Ethernet    //类型是以太网
BOOTPROTO=static   //以静态方式获取IP地址
NAME=eth0
DEVICE=eth0
ONBOOT=yes      //启用这块网卡
IPADDR=192.168.1.10  
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114

systemctl restart network   //重启网络服务
yum provides 未找到的命令			//查看命令由那个软件包生成的

26.ifconfig 查看网卡信息

ifconfig eth0 192.168.2.10/24 临时设置IP地址
Linux系统一个多用户多任务的操作系统

用户分类
超级用户:root uid=0
程序用户:不能登录系统的用户 默认 uid 1-1000
普通用户:默认uid >1000

27、useradd 添加用户(adduser)

选项:

-u  指定uid
-g  指定用户组
-s  指定用户登录的shell(/bin/bash ,/sbin/nologin)
-M  不为用户创建家目录
-d  指定用户家目录位置,默认/home/用户名
/etc/passwd   --> 存放用户信息的文件
root:x:0:0:root:/root:/bin/bash

root 第一段 用户名
X 第二段 密码占位符
0 第三段 UID
0 第四段 GID
root 第五段 描述,备注(可以为空)
/root 第六段 用户家目录
/bin/bash 第七段 用户登录的shell

/bin/bash 代表该用户可以登录系统,
其他的(/sbin/nologin)代表该用户不可以登录系统

shell解释器:是用户和内核沟通的桥梁

计算机两个
硬件系统:cpu(控制器,运算器),内存,硬盘 ,网卡
软件系统:操作系统 应用程序
操作系统: 内核 shell

用户–>shell–>内核–>硬件 结果–>内核–>shell -->用户

28.passwd 为用户修改密码(不接用户名,修改当前登录用户的密码)

passwd 用户名 
echo "123123"|passwd --stdin test2  不交互为用户创建密码
选项:
-l  锁定用户
-S  查看用户是否锁定
-u  解锁用户

passwd -l aaa
usermod -U aaa

29.userdel 删除用户

格式:userdel 用户名
-r 删除用户的同时删除用户的家目录

30.usermod 修改用户属性

格式:usermod 选项 用户名
-L  锁定用户
-U  解锁用户
-c  为用户添加备注
-l  修改用户名
-u  修改uid
-s  修改用户登录的shell

/etc/shadow (影子)
root:$6$Q2Lt/.FYAXa3rOea$CDmzcDjl.IYKgB0lCU.dm9qpGEV
i1SezTP829/YqykudLl6jUKrHTQS32ojv9kjPDBZ774VlYD9B8Q.YZrFxc0
::0:99999:7:::

root 第一段 用户名
第二段 加密后的密码
第三段 上一次密码修改的时间距1970年1月1日过了多少天
第四段 密码最短有效天数,经过多少天以后可以再次修改密码
第五段 密码最长有效天数,此次修改密码后多少天必须修改密码
第六段 密码过期前多少天警告
第七段 密码过期之后多少天内禁用该用户
第八段 账号失效时间
第九段 保留

31.groupadd 添加用户组

32.groupdel 删除用户组

私有组(主要组)
公共组(附加组)
一个用户只有一个主要组,可以属于多个附加组。
一个用户组中可以包含多个用户。

root用户 -->主要组 root
a组 root
b组 root
c组 root a b c 组为用户root的附加组

/etc/group  存放用户组的信息
root:x:0:

root 第一段 用户组
x 第二段 用户组密码
0 第三段 gid
第四段 附加用户

33.gpasswd 为用户组添加密码

-a 将指定用户添加到组中

34.查看用户登录信息的命令

w 用户登录的信息
who 用户登录的信息
whoami 查看当前登录的用户
user 查看当前登录的用户
id 查看指定用户的uid,gid以及用户组信息
groups 查看当前用户的用户组

文件权限:r 读 w 写 x 执行
如何查看文件的权限: ll = ls -l
rw-r–r--
文件权限分三组:
第一组 用户 u rw-
第二组 用户组的权限 g r–
第三组 其他用户的权限 o r–

35.chmod 修改用户权限

格式:

chmod u/g/o/a +/-/= rwx 文件名

-R 递归

八进制: r–4 w–2 x–1 - 0

rw-r–r-- -->644
rwxrwxr-x -->775

36.chown 修改文件归属

chown 用户名 文件
chown :用户组 文件
chown 用户:用户组 文件
选项: -R 递归

37.umask 查看或设置权限掩码

touch创建一个新文件默认的权限是 644=777-111-022
目录 755=777-022

文件 r cat/tac/nl/more/less/head/tail w vim x(命令或者脚本)
目录 r ls w touch rm mkdir mv x cd

磁盘管理:
block 块设备文件
磁盘接口与磁盘命名:
IDE --> hda hdb hdc
SATA/SAS/SCIS -->sda sdb sdc

硬盘类型:
HDD 机械硬盘
SSD 固态硬盘

38.fdisk为磁盘划分分区

fdisk 磁盘
选项:
-l 列出磁盘以及磁盘分区的详细信息

39.mkfs 创建文件系统 (make filesystem)

.指定文件系统
-t 指定文件系统

ext4 CentOS6 默认的文件系统
xfs CentOS7 默认的文件系统

40.mount 挂载 格式:mount 挂载源 挂载点

41.umount 卸载 指定挂载源或挂载点都可以

交换分区:类似于虚拟内存 大小:一般设为内存的2倍

42.mkswap 创建交换分区

43.swapon 激活交换分区

-s 查看当前使用的交换分区

44.swapoff 关闭交换分区

( ) 或 ‘ ‘ 先 执 行 ()或`` 先执行 ()()命令 或者是 提取命令的结果

系统启动的引导过程:

1.bios开机加电自检

2.MBR引导 MBR 主引导记录,位于硬盘的第一个扇区,512字节。

​ 4个分区记录,每个16字节,=64字节
​ (一块硬盘可以划分四个主分区或扩展分区)
​ 446字节的引导程序,2字节校验字节。

3.grub菜单

4.加载Linux内核

5.初始化systemd进程 (CentOS6 中初始化init 进程)

每个进程都有一个非负整数的进程ID(PID,进程号)
负责产生进程的进程,称为该进程的父进程
centos7中systemd是所有进程的父进程,其pid为1

systemd 可以管理系统中的服务、设备等。
centos6 服务的启动使用的是
service 服务名称 start/stop/restart/status/reload等
设置服务开机自启动使用的命令是:
chkconfig 系统运行级别 服务名称 on/off

CentOS7中服务的启动管理使用的是:
systemctl start/stop/restart/status/reload 服务名称
设置服务开机自启动的命令是:
systemctl enable/disable/is-enabled 服务名称

systemctl start httpd #启动httpd服务
systemctl status httpd #查看httpd服务运行状态
systemctl stop httpd #关闭
systemctl status httpd

systemctl enable httpd #设置httpd服务开机自启动
systemctl is-enabled httpd #查看httpd服务是否开机自启动
systemctl disable httpd #禁止httpd服务开机自启动
systemctl is-enabled httpd

系统运行级别:

0 关机
1 单用户模式
2 无网络的字符界面多用户模式
3 完整的字符界面多用户模式
4 未启用
5 完整的图形界面多用户模式
6 重启

45.init 切换系统运行级别

init 0 关机 poweroff halt shutdown -h +10 10分钟后关机
init 6 重启 reboot shutdown -r
init 3 切换字符界面
init 5 切换图形界面

46.runlevel 查看系统运行级别

/etc/inittab 系统启动的默认级别配置文件

LVM逻辑卷 :动态调整分区大小

逻辑卷创建过程:
先创建物理卷 pvcreate /dev/sd[bcd]
再创建卷组 vgcreate vg0 /dev/sd[bcd]
最后创建逻辑卷 lvcreate -L 30G -n test vg0
mkfs.xfs /dev/vg0/test
mount /dev/vg0/test /data
扩容 lvextend -L +10G /dev/vg0/test

47.df 查看磁盘使用情况

选项:
-T 文件系统类型
-h human 以人类可读的方式显示大小

48.刷新文件系统大小

resize2fs /dev/vg0/test ext4文件系统
xfs_growfs xfs 文件系统

程序:可执行代码,静态
进程:运行中程序,动态,
每个进程都有一个非负整数的进程ID(PID)

49.ps 查看进程状态

-aux
-ef
ps -o user,stat,pid,ppid 指定输出内容

50.top 动态查看进程状态

僵尸进程 :僵尸进程是当子进程比父进程先结束,
而父进程又没有回收子进程,释放子进程占用的资源,
此时子进程将成为一个僵尸进程。
结束僵尸进程:杀死其父进程或重启系统
ps -ef |grep [Zz]
kill -9 杀死僵尸进程的父进程

 1 // zombie.c
  2 /*  create a zombie proess*/
  3 #include 
  4 //#include 
  5 #include 
  6 #include 
  7 
  8 int main()
  9 {
 10     if(!fork()) { //create child proess   
 11         if(fork()) { //child
 12              while(1) {
 13                   sleep(5);
 14                       //    break;
 15                       }
 16                    }
 17                 }
 18                 return 0; 
 19} 

gcc 文件名 -o 生成文件名 ./生成文件名

gcc 文件名 -o 生成文件名 ./生成文件名

51.kill 根据pid杀进程

kill -9 pid=kill -s SIGKILL pid 强制杀死进程

52.pgrep 根据条件查找pid

-u 指定用户

53.pkill 根据特定条件杀进程

-u 指定用户或UID杀进程

54.killall 根据进程名杀进程

55.tree 查看目录树

-L 目录级别

56.pstree 查看进程树

任务调度:
& 程序后台运行
jobs 查看后台运行任务
fg 将后台运行的任务调度到前台
Ctrl+z 将前台运行的任务暂停放到后台
bg 让后台暂停的任务继续运行
Ctrl+c 终止当前程序

57.date 查看系统日期

格式化输出:
%Y 年
%m 月
%d 日
%H 时
%M 分
%w 周

计划任务(定时任务)
一次性计划任务 —>atd
at 设置一次性计划任务
atq 查看未执行的一次性计划任务
atrm 删除一个一次性计划任务

周期性计划任务 —>crond
crontab
分 时 日 月 周 执行的命令
特殊时间:

  • 每,任意时间
    / 指定时间间隔

  • 指定连续时间范围
    , 指定不连续的时间

最小单位是 分钟
常用选项:
-e 编辑周期性计划任务
-l 查看周期性计划任务

忘记root用户密码解决方法:
方法一:通过grub菜单进入单用户模式
输入e 进入编辑,在Linux16该行的行尾添加rd.break,然后Ctrl+x
启动系统;
进入命令行后,mount -o remount,rw /sysroot 以读写模式重新挂
载目录,chroot /sysroot 将根目录切换到/sysroot

passwd root 修改密码
如果系统开启了selinux,创建文件touch /.autorelabel

开机自动挂载
/dev/sr0 /media iso9660 defaults 0 0
挂载源 挂载点 文件系统类型 挂载参数 是否备份 是否检测

交换分区不需要挂载

ping 测试网络连通性

-c 指定发送数据包个数

route -n		查看路由表

ip r			查看路由表
hostname 新名字		查看或修改主机名

/etc/hostname	主机名配置文件

bash			生效

inode 元数据,里面保存了文件的权限,归属,创建时间等

block 块,存放的文件的内容。默认一个块4K

文件名记录在目录的block

硬链接和软链接

硬链接:相当于文件的另一个入口

软链接:类似于window下的快捷方式

硬链接于软链接的区别:

1,硬链接inode号相同,软链接不同

2,硬链接删除源文件对硬链接没有影响,软链接不可用

3,硬链接不能跨文件系统(分区),软链接可以

4,目录不能创建硬链接但是目录自带硬链接分别是"." “…”,可以创建软链接

ln			创建硬链接

ln -s		创建软链接(符号链接)

每个文件就都有一个inode,至少占用一个block

你可能感兴趣的:(Linux)