Linux 基础知识及命令(一)

一、基础知识
1.1 快捷键
——ctrl +z 将正在运行的程序送到后台
——ctrl +d 退出当前终端
——ctrl +c 在终端上终端命令或进程
——ctrl +L 清屏
——ctrl + A 移动光标到行首
——ctrl +U 擦除从当前光标位置到行首的全部内容
——ctrl +k 擦除从当前光标位置到行尾的全部内容
——ctrl +w 擦除光标位置前的单词
——ctrl +y 粘贴
——ctrl +p 查看上一个命令或者用 上键
——ctrl +R 搜索历史命令
——alt + . 复制上一条命令的参数
——ctrl +m 相当于回车键
——ctrl +shift +t 切换终端
++++++++++++++++++++++++++++++++++++++++++++++++++
1.2 特殊符号
—— ~ 用户主目录
—— ` 反引号,用来命令替换
—— # 注释
—— $ 变量取值
—— & 后台进程工作
—— ? 代表任何单一字符
—— * 代表任何字符
—— - 普通文件
—— d 目录文件
—— l 符号链接文件
—— p 管道文件
—— s socket 文件
—— b 块设备文件
—— c 字符设备文件
++++++++++++++++++++++++++++++++++++++++++++++++++
1.3 常识
1.3.1 man 手册页组成的内容说明
——HEADER 标题
——NAME 命令/函数的功能描述
——SYNOPSIS 命令/函数 用法的简单描述
——AVAILABILITY 可用性说明
——DESCRPTION 命令/函数的详细说明
——OPTION 该命令的所有可选项说明
——RETURN VALUE 列出函数返回值
——ERRORS 列出出错的值和引起错误的原因
——BUGS 已知的错误和警告
——example 示例
+++++
1.3.2 命令替换: “ $()” 和 “ 两个反引号”
命令1 $(命令2)
+++++++
1.3.3 Linux 系统结构中的常见的目录
—— /home 包含Linux系统上个用户的主目录,子目录默认以该用户名命名
—— /root 是root用户的主目录
—— /bin 包含常用的命令文件
—— /sbin 包含系统管理员和root用户所使用的命令文件
—— /dev 包含大部分的设备文件,比如磁盘、光驱等
—— /lib 包含Linux系统的共享文件和内核模块文件
—— /lib64 包含64位版本Linux系统的共享文件和内核文件
—— /tmp 包含一些临时文件
—— /mnt 手动为某些设备(比如硬盘)挂载提供挂载目录
—— /boot 包含Linux 系统的内核文件和引导装载程序(GRUB)文件
—— /opt 包含某些第三方应用程序的程序安装文件
—— /media 由系统自动为某些设备(一般为光盘、U盘设备)挂载提供挂载目录
—— /var 该目录存放不经常变化的数据,如系统日志、打印队列、DNS数据队列等
—— /etc 包含Linux系统上大部分的配置文件,建议修改前配置文件之前先备份
—— /usr 包含可以供所有用户使用的程序和数据
—— /srv 存储一些服务启动之后所需要取用的资料目录
—— /run 一个临时文件系统,一些程序或者服务启动以后,会将它们的PID放置在该目录中
—— /sys 在Linux 系统提供热插拔能力的同时,该目录包含所检测到的硬件设置,转换成/dev目录中设备
—— /proc 是一个虚拟的文件系统,由内核在内存产生的,用于提供系统的相关信息。
++++++++
1.3.4 文件颜色代表含义:
绿色 ——可执行文件
红色 ——压缩文件
深蓝色 ——目录
浅蓝色 ——链接文件
黄色 ——设备文件包括块设备文件和字符设备文件
白色 ——一般文件
灰色 —— 其他文件
红色闪烁 ——链接文件有问题
++++++
1.3.5 文件类型的标记
/ ——目录
@ ——符号链接文件

  • —— 可执行文件
    | ——管道文件
    = 表示 socket 文件
    没有标记 ——普通文件
    ++++++
    1.3.6 硬/软链接
    硬链接文件的限制:不允许给目录创建硬链接;只有在统一文件系统中文件之间才能创建链接。
    硬链接记录的是目标的inode,硬链接像是备份
    软连接也叫符号链接,类似与快捷方式,软链接记录是目标的路径,可以跨区的链接
    使用 ln 命令创建
    ++++++
    1.3.7 文件和目录的属性
    —— a : 只允许在这个文件内容后面追加数据,不允许任何进程覆盖或截断该文件
    ——c :设定文件经压缩再存储,读取时需要经过自动解压操作
    ——d :当dump程序执行时,该文件或目录不会被dump备份
    ——i :文件不能被删除、改名、不能创建文件链接,同时不能写入或者新增neir
    ——s :当一个文件被删除后,其块清零并写回磁盘
    ——S : 当一个文件被修改时,立即将更改同步写入磁盘
    ——u :当删除一个文件时,系统会保留其数据块以便以后能过够恢复这个文件,用来防止意外删除文件或目录
    ——A :设置文件或目录被访问时,它的最后访问时间atime不会被修改
    ——X :可以直接访问压缩文件的内容
    ++++++++++++
    1.3.8 服务端口文件 /etc/services
    小于1024端口启动时,启动者必须是root身份
    常用服务端口:
    ftp 20(数据端口) 21(控制端口)
    ssh 22
    telnet 23
    DNS 53
    http(web端) 80
    https 443
    tomcat 8080访问web的端口,8005 t omcat本身自己的端口,8009 与http等服务器建立连接的端口
    ntp 123
    nfs 2049
    smaba 137,138,139/tcp
    rsyslog 514 tcp/udp
    pop3 110/tcp
    pop3s 995/tcp
    postfix 25
    smtp 25/tcp
    smtps 465/tcp
    imap 143/tcp
    imaps 993/tcp
    dhcp 使用bootps协议 67/udp
    iscsi 3260
    redis 6379
    memcached 3360
    mysql 3306
    zabbix-server 10051
    zabbix-agent 10050
    snmp 使用udp 161
    php-fpm 9000
    rsync 873
    nginx 80
    +++++++++++++
    1.3.9 /etc/passwd /etc/shadow 文件中各字段的含义
    #cat /etc/passwd | head -1
    root❌0:0:root:/root:/bin/bash
    用户名:密码:用户标识号UID:组群标识号GID:用户名全称:主目录:登陆shell
    ]# cat /etc/shadow | head -1
    root: 6 6 6SQ/CJGMV$FJJHph/msPt0SyIgSPpjLcivChjzCTkBj8vRAp1eDRO2wHiD06gKJfb3cdse7ctSwnYbUwcT9G4luzzGKOsZ50:18045:0:99999:7:::
    用户名:加密密码:用户最后一次更改密码的日期(从1970年1月1号算起):密码允许更换前的天数:密码需要更改的天数:密码更换前警告的天数:账户被取消激活前的天数:用户账户过期日期:保留字段
    ++++++++++++++++
    1.3.10 /dev/shm 是Linux中的一个共享内存设备,使用的是tmpfs文件系统,是一个内存文件系统,存储再tmpfs文件系统的数据会放在内存中。

++++++++++++++++++++++++++++++++++++++++++++++++++
1.4 常用命令
w 列出所有登录过系统的用户

查看linux内核版本 #uname -r
列出cpu 信息 # lscpu
列出内存大小及空闲情况 # cat /pro/meminfo

++++
查看计算机系统启动后进入的默认模式: # systemctl get-default
(grahical.target 图形化界面;multi-user.target 字符界面)
修改系统启动进入的模式: # systemctl set-default 界面模式
++++
关闭/重启 系统
—— shutdown [选项] 时间 警告信息
[选项]: -k 并不执行shutdown,只是发出警告信息
-r 重新启动
-h 关闭系统
-c 取消运行的shutdown
立即关闭系统: # shutdown -h now
—— halt [选项]
- w 不是真的关闭系统,知识写入/var/log/wtmp日志文件中
- d 关闭系统,不记录
- f 强制关闭系统
—— reboot 重启 (选项跟hatl 一样)
使用systemctl [选项] [系统命令] 也可以重启或者关闭系统
【系统命令】:halt 关闭和停止系统
poweroff 关闭并切断电源
reboot 重启
+++
显示当前用户:#whoami
查看哪些是bash 内置命令 #which echo
全局配置;/etc/bashrc
用户自定义配置: ~/.bashrc
+++
历史命令:# history 【选项】
-c 清除历史记录
-w 将当前的历史命令写入 .bash_history 文件中
-a 将目前新增的history历史记录写入.bash_history文件
n 显示最近n个命令
-r 读取历史文件内容
!命令xx :执行最近一次以xx开头的历史命令
++++++
命令别名:#alias 【别名】=【被定义的命令】
取消别名:#unalias 别名
要想别用永久有效,写进 /etc/bashrc 或 $HOME/.bashrc
+++++
stat 命令查看文件信息(文件inode、权限、时间属性、文件大小、所有者、链接数及文件类型)
-L 跟踪链接
-f 显示文件或者目录所在的文件系统的状态信息
-t 以简明格式显示文件或者目录信息
-c <有效的文件格式> 使用指定的格式代替默认值。
++++++++
ls 命令查看文档属性
-l :以长格式显示
-A :显示指定为目录下的所有子目录和文件,包含隐藏文件,但是不列出 “.” 和" …"
-d :显示目录本身的属性
-h :提供单位 常与 l 连用
-F : 显示文件类型
-a : 显示目录下的所有文件包括隐藏文件

+++++
pwd :显示工作目录路径
-L : 目录链接时,输出链接路径
-P : 输出物理路径
+++++++
cd : 更改工作目录路径
cd - : 返回进入此目录之气所在的目录
cd … :返回上一级目录
cd ~ :代表”目前用户身份“ 所在的主文件夹
++++++
touch :创建空文件、更改文件时间
-a :只更改访问时间atime
-m :更改文件的修改时间记录mtime
-c :假如目标文件不存在,不会建立新的文件
-r <文件> 使用指定文件的时间属性而非当前时间
++++++
mkdir : 创建目录
-m :对新创建的目录设置权限,默认是755
-v :每次创建新目录时都设置信息
-p :父目录子目录一起创建
rmkdir : 删除空目录
-p :若父目录为空时,递归删除
-v :输出处理的牡蛎详情
+++++
cp : 复制文件和目录
-a : 等于-dpr ,在复制目录时保留链接、文件属性、并递归地复制
-d :复制是保留链接
-f :在复制前不给确认提示信息
-i : 复制前给提示信息
-l : 只做链接文件
-r : 递归复制
++++++
mv :文件或目录改名、移动文件和目录路径
-i : 覆盖前询问
-f :覆盖前不询问
-n :不覆盖已存在的文件
-u :只有在源文件比目标文件新或者目标文件不存在时才移动
+++++++
rm :删除文件或目录
-f :强制删除
-r :递归删除目录及其内容
-i :删除前需要确认
+++++++
file :查询文件类型
(file可以识别目录、shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件以及DOS可执行文件)

++++++++++++
du :显示目录或文件的磁盘占用量
-a : 输出所有文件的磁盘用量,不仅仅是目录
-c :显示总计信息
-h :以KB\MB\GB 为单位显示
-L :找出任何符号链接指示的真正目的地
++++++++++
wc :统计文件行数、单词数、字节数和字符数
-l :统计行数
-w :统计单词数
-c :统计字节数
-m :统计字符数
-L :统计文件中最长行的长度
++++++++
ln :创建链接文件
软连接 : ln -s /路径/源文件 /路径/快捷方式的名字
硬链接: ln /路径/源文件 /路径/快捷方式的名字
-i :删除文件前进行确认
-s :创建符号链接文件即软链接
-d :允许超级用户创建指向目录的硬链接
-f :强行删除任何已存在的目标文件
-L : 将硬链接创建为符号链接引用
-t <目录> :在指定目录中创建链接
-v :链接前先列出每个文件的名称
+++++++
lsattr 查看文件或目录属性
-a 列出目录中所有文件,包括以”.“开头的文件
-d 以和文件相同的相同的方式列出目录,并显示其包含的内容
-R 递归地列出目录及内容属性
-v 列出文件的版本/生成号码

chattr :设置文件和目录的属性
-R 递归改变目录其内容的属性
-V 显示命令执行过程
-f 禁止大多数错误消息

  • <属性> 添加属性
  • <属性> 删除属性
    = <属性> 指定属性
    ++ +++++++++
    cat :显示文本文件
    -n : 对输出的所有行进行编号
    -b : 对非空输出行编号
    -s : 当遇到连续两行以上的空白行,就替换为一行的空白行
    -E :在每行结束处显示$
    ***: 使用cat 命令创建mm.txt 文件:

cat >mm.txt <<EOF

-> hello
-> EOF 输入EOF结束输入
+++++++++++
more 分页显示文本文件
less 回卷显示文本文件
head :显示指定文件的前若干行
head -n<数字> :显示每个文件的前数字行内容
-c <数字> :显示每个文件的前数字字节内容
-v 总是显示包含给定文件名的文件头
tail :查看文件末尾数据
-n<数字> :显示每个文件的最后数字行
-c <数字> :显示每个文件的最后数字字节内容
-f :即时输出文件变化后追加的数字
++++
sort :对文件中的数据进行排序
-m 如果给定的文件已经排好序,那么合并文件
-u 对排序后认为相同的行只留其中一行
-d 按字典顺序排序
-f 将小写字母与大写字母同等对待
-M 作为月份比较
-r 按照逆序输出排序结果
-c 检查给定文件是否已经排行序,若没有打印一个错误信息,返回值为1;
++++
uniq :将重复行熊输出文件中删除
-c 显示输出中在每行行首加上本行在文件出现的次数
-d 只输出重复行
-D 显示所有重复的行
-u 只显示文件不重复的行
-s 数字 :比较时跳过前数字个字符
-w 数字 : 对每行第数字个字符以后的内容不做对照
-f 数字 :比较时跳过前数字列
-i :比较的时候不区分大小写
+++++++++
cut :从文件每行中输出选定的字节、字符或字段
用法:cut [选项]… [文件]…
-b, --bytes=列表 只选中指定的这些字节
-c, --characters=列表 只选中指定的这些字符
-d, --delimiter=分界符 使用指定分界符代替制表符作为区域分界
-f 列表 :指定文件中设想被定界符(默认情况下为制表符)隔开的字段的列表
-n :取消分割多字节字符,仅和-b一起使用
-s :不打印没有包含分界符的行
参数格式:(仅使用-b 、-c 、-f选项时带参数)
N 从第1 个开始数的第N 个字节、字符或域
N- 从第N 个开始到所在行结束的所有字符、字节或域
N-M 从第N 个开始到第M 个之间(包括第M 个)的所有字符、字节或域
-M 从第1 个开始到第M 个之间(包括第M 个)的所有字符、字节或域

+++++++++++++++++++++++++
locate :在数据库中查找文件
-q :安静模式
-r :使用正则表达式
-i :匹配模式时忽略大小写
-c :显示找到的条目数
-w :匹配完整路径名
]# locate httpd.conf
+++++++++++++++++++++++++++++
whereis :查找指定文件、命令和手册页的位置
whereis 选项 名称
-b 只搜索二进制文件
-m 只搜索 man 手册
-u 搜索不常见记录
++++++++++++++++++++++++++++
创建用户账户 ]# useradd --help
用法:useradd [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
++++++++++++++++++++
修改账户:]# usermod --help
选项:
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中, 并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
++++++++++++++++++
删除用户:用法:userdel [选项]
-r, --remove 删除用户同时,删除主目录和邮件池
-f, --force 强制删除
+++++++++++++++++
群组:一个用户只能属于一个主群组即登录后所属的组,其他的组是附加组,可以由多个附加组。
/etc/group 文件是组群的配置文件,内容:组群名:组群密码:GID:组群成员。GID=0 ,是root群组。
管理组群账户命令:
创建组群账户:用法:groupadd [选项]
选项:
-f, --force 如果组已经存在则成功退出
并且如果 GID 已经存在则取消 -g
-g, --gid GID 为新组使用 GID
-h, --help 显示此帮助信息并推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
修改组群账户:用法:groupmod [选项]
选项:
-g, --gid GID 将组 ID 改为 GID
-h, --help 显示此帮助信息并推出
-n, --new-name NEW_GROUP 改名为 NEW_GROUP
-o, --non-unique 允许使用重复的 GID
-p, --password PASSWORD 将密码更改为(加密过的) PASSWORD
-R, --root CHROOT_DIR chroot 到的目录
+++++++++
id 可以显示用户UID及所属组的GID
su 可以切换到其他用户账户进行登录。


history 历史命令
#历史的操作记录在用户的目录下的.bash_history文件中,
]# cat ~/.bash_history
或 #history
]# echo $HISTSIZE //默认情况下记录1000条
1000
修改记录条数:sed -i ‘s/^HISTSIZE=1000/HISTSIZE=200/’ /etc/profile
]# source /etc/profile
]# echo $HISTSIZE
200
或者:编辑/etc/bashrc文件,添加以下四行:
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT=’%F %T ’ //定义了时间格式,操作记录会显示正确的时间
export HISTTIMEFORMAT


lsattr 查看文件属性
-a :列出目录的所有的文件
-d :显示指定目录的属性
-R :以递归的方式列出目录下所有文件及子目录以及属性值
-v: 显示文件或目录版本


chattr 锁定系统一些重要的文件或目录

  • :追加参数
  • : 移除参数
    = : 更新为指定参数
    -i :immutable ,设定文件不能删除、修改、重命名、设定链接等,页不能写入或新增内容
    -s :安全地删除文件或者目录,就文件被删除后全部收回硬盘空间
    -u :系统会保留器数据块以便以后能够恢复删除这个文件
    -c :设定文件是否经压缩后再存储。
    -a :只能向文件添加数据不能删除,常用于日志文件安全。
    chattr 不能保护/ 、/dev 、/tmp 、/var 等目录

pidof 查找正在运行的进程PID
]# pidof sshd
1894 959


host :用来查询DNS记录,后面接域名的话,命令返回该域名的IP
host[必要参数] [选择参数][名字][服务器]
功能 host命令:用于查询DNS的工具,它通过常转换指定主机名称的主机名称为IP地址。
必要参数:
-a 等同于“-v -t”
-C 在需要认证的域名服务器上查找SOA记录
-d 等同于“-v”
-l 列出一个域内所有的主机
-i 反向查找
-N 改变点数
-r 不使用递归处理
-R 指定UDP包数
-T 支持TCP/IP模式
-v 运行时显示详细的处理信息
-w 永远等待回复
-W 指定等待回复的时间
-4 用于IPv4的查询
-6 用于IPv6的查询


traceroute : 检测数据包是如何经由路由器的程序
]# traceroute -n -m 5 -q 4 -w 3 www.baidu.com
-n 显示IP地址,不查主机名; -m 设置跳数 ; -q 4每个网关发送4个数据包 ;
-w 把对外发探测包的等待响应时间设置为3秒


mpstat 报告CPU状态的工具
每一秒统计一次CPU状态,一共统计3次
#mpstat 1 3
#LANG=c ##将时间从12小时制转换为24小时制
查看多核CPU的使用情况:
#mpstat -P ALL 1 1
·%user:用户态程序 ·%nice:优先级调整 ·%sys:内核态消耗 ·%iowait:磁盘等待 ·%irp:硬件中断 ·%soft:软件中断 ·%steal:处理hyperviosr的消耗 ·%guest:虚拟机消耗掉的CPU ·%idle:CPU空闲


]# cat /proc/meminfo 查看所有的内存的相关信息


vmstat 提供丰富的系统信息
procs : 中b 表示 不可中断睡眠的进程
system : in 每秒中断的次数;cs 每秒上下文切换数
CPU: st 指强制等待虚拟cpu的时间


iostat 主要用于监控系统设备的IO负载情况
iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
常见用法:
iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB)
iostat -d -m 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB)
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态
输出信息的意义:
tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输"意思是"一次I/O请求”。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read:读取的总数据量;
kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。


istop 用来监控磁盘的I/O的情况
参数:
-o:只显示有I/O操作的进程和线程。
-P:只显示进程数。默认是显示进程和线程。
-k:以千字节显示


ulimit 显示(或设置)用户可以使用的资源的限制(limit)
ulimit -a 来显示当前的各种用户进程限制。
/etc/security/limits.conf 常用的配置文件
ulimit -u 10240 ##linux用户的最大进程数设为10000个
ulimit -n 4096 将每个进程可以打开的文件数目加大到4096
其他建议设置成无限制(unlimited)的一些重要设置是:
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 时间:ulimit -t unlimited
虚拟内存:ulimit -v unlimited


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值