Linux基础学习笔记

Linux常用命令介绍


文章目录

      • Linux常用命令介绍
        • 写在前边的话
        • 1.基本命令
          • 1.命令提示符
          • 2.命令格式
          • 3.查看目录
          • 4.系统命令
        • 2.文件处理命令
          • 1.目录处理命令
            • 1.建立目录
            • 2.切换目录
            • 3.查询目录所在位置
            • 4.常用目录的作用
            • 5.删除空目录
            • 6.删除文件或目录
            • 7.复制命令
            • 8.剪切或改名命令
          • 2.文件处理命令
            • 1.创建文件
            • 2.复制文件
            • 3.查看文件全部内容
            • 4.分页查看文件内容
            • 5.查看文件的前n行
            • 6.查看文件的后n行
          • 3.链接命令
            • 1.链接命令 ln
        • 3.文件搜索命令
          • 1.文件搜索命令locate
          • 2.命令搜索命令whereis与which
          • 3.文件搜索命令find
          • 4.字符串搜索命令grep
          • 5.find命令与grep命令的区别
        • 4.帮助命令
          • 1.帮助命令man
          • 2.其他帮助命令
        • 5.压缩与解压缩命令
          • 1. `.zip` `.gz` `.bz2`
          • 2. `tar.gz` `tar.bz2`
        • 6.关机和重启命令
          • 1.shutdown命令
          • 2.其他关机命令
          • 3.其他重启命令
          • 4.系统运行级别
          • 5.退出登录命令
        • 7.其他常用命令
          • 1.挂载命令
            • 1.查询与自动挂载
            • 2.挂载命令格式
          • 2.用户登录查看和用户交互命令
        • 8.shell基础
          • 1.Shell概述
          • 2.脚本执行方式

写在前边的话

我在学习的过程中遇到了很多命令不可用的情况,经过找资料发现,是因为脚本没有被安装,这里就可以通过yum命令进行安装.

例如:不能使用zipunzip

[root@localhost tmp]# zip aaa.zip aaa
-bash: zip: command not found
[root@localhost tmp]# yum -y install unzip zip
[root@localhost tmp]# locate redis
-bash: locate: command not found
[root@localhost tmp]# yum -y install mlocate

同时可以通过>符号将内容写入文件,主要作用是将命令的结果写入文件

[root@localhost tmp]# ls > abc
[root@localhost tmp]# echo "123" > abc

这里可以将ls的结果写入abc文件中.

1.基本命令

1.命令提示符

[root@localhost ~]#

root 当前登录用户

localhost 主机名

~ 当前所在目录(~表示家目录)

# 超级管理员的提示符

$普通用户的提示符

2.命令格式

命令 [选项] [参数]

注意:个别命令使用不遵循此格式;当有多个选项时,可以写在一起;简化选项与完整选项-a等于--all.

3.查看目录

ls [选项] [文件或目录]

选项:

  • -a 显示所有文件,包括隐藏文件
  • -l 显示详细信息
  • -d 查看目录属性
  • -h 人性化显示文件大小
  • -i 显示incode
[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@localhost /]# ls -l
total 60
lrwxrwxrwx.  1 root root     7 Aug 18  2017 bin -> usr/bin
dr-xr-xr-x.  4 root root  4096 Sep 12  2017 boot
drwxr-xr-x  19 root root  2960 Feb 11 20:16 dev
drwxr-xr-x. 82 root root  4096 Feb 12 04:16 etc
drwxr-xr-x.  3 root root  4096 Feb 11 20:13 home
lrwxrwxrwx.  1 root root     7 Aug 18  2017 lib -> usr/lib
lrwxrwxrwx.  1 root root     9 Aug 18  2017 lib64 -> usr/lib64
drwx------.  2 root root 16384 Aug 18  2017 lost+found
drwxr-xr-x.  2 root root  4096 Nov  5  2016 media
drwxr-xr-x.  2 root root  4096 Nov  5  2016 mnt
drwxr-xr-x.  2 root root  4096 Nov  5  2016 opt
dr-xr-xr-x  75 root root     0 Feb 11 20:16 proc
dr-xr-x---.  6 root root  4096 Sep  5  2017 root
drwxr-xr-x  21 root root   600 Feb 21 10:32 run
lrwxrwxrwx.  1 root root     8 Aug 18  2017 sbin -> usr/sbin
drwxr-xr-x.  2 root root  4096 Nov  5  2016 srv
dr-xr-xr-x  13 root root     0 Feb 12 04:16 sys
drwxrwxrwt. 10 root root  4096 Mar 11 04:28 tmp
drwxr-xr-x. 13 root root  4096 Aug 18  2017 usr
drwxr-xr-x. 19 root root  4096 Feb 12 04:16 var

-rw-r–r--

  • 第一位 文件类型(-表示文件 d表示目录 l表示软链接文件)
  • 之后的分成三组权限(1~3 u所有者权限, 4~6 g所属组其他用户权限, 7~9 o其他人,其他组用户权限)
  • r 读 w写 x执行
4.系统命令

切换用户su 用户名

查看系统进程ps

2.文件处理命令

1.目录处理命令
1.建立目录

mkdir -p [目录名]

-p 表示递归创建 make directories

2.切换目录

cd [目录]

  • cd ~cd 进入当前用户的家目录(root用户在/root,其他用户在/home)
  • cd - 进入上次目录
  • cd … 进入上一级目录
  • cd . 进入当前目录

相对路径:参照当前所在目录,进行查找,如:

[root@imooc ~]# cd ../usr/local/src/

绝对路径:从根目录开始指定,一级一级递归查找.在任何目录下,都能进入指定位置,如:

[root@imooc ~]# cd /etc/
3.查询目录所在位置

pwd :print working directory

4.常用目录的作用
  • / 根目录
  • /bin 命令保存目录(普通用户就可以读取的命令)
  • /boot 启动目录,启动相关文件
  • /dev 设备文件保存目录
  • /etc 配置文件保存目录
  • /home 普通用户的家目录
  • /lib 系统库保存目录
  • /mnt 系统挂载目录
  • /media 挂载目录
  • /root 超级用户的家目录
  • /tmp 临时目录
  • /sbin 命令保存目录(超级用户才能使用的目录)
  • /proc 直接写入内存
  • /sys
  • /usr 系统软件资源目录
    • /usr/bin 系统命令(普通用户)
    • /usr/sbin 系统命令(超级管理员)
  • /var 系统相关文档内容

注意1:根目录下的bin和sbin,usr目录下的bin和sbin目录,这四个目录都是用来保存系统命令的,但是bin目录下的是所有用户都能访问的命令,但是sbin目录下的是只有管理员才能访问的命令.

注意2:proc和sys目录不能直接操作,这两个目录保存的是内存的过载点.

5.删除空目录

rmdir [目录名]

6.删除文件或目录

rm -rf [文件或目录]

选项:

  • -r 删除目录
  • -f 强制执行
7.复制命令

cp [选项] [原文件或目录] [目标目录]

选项:

  • -f 复制目录
  • -p 连带文件属性复制
  • -d 若源文件是链接文件,则复制链接属性
  • -a 相当于 -pdr
8.剪切或改名命令

mv [原文件或目录] [目标目录]

如果将文件剪切到相同目录,名字改变,就是改名命令

2.文件处理命令
1.创建文件

touch 创建空文件

2.复制文件

cp 源文件名 新文件名

3.查看文件全部内容

cat 文件路径

4.分页查看文件内容

more 文件路径

5.查看文件的前n行

head -n 数字 文件名

6.查看文件的后n行

tail -n 数字 文件名

3.链接命令
1.链接命令 ln

ln -s [原文件] [目标文件]

功能描述:生成链接文件

选项: -s 创建软链接

注意:直接ln也可以使用,创建的是硬链接

硬链接特征:

  1. 拥有相同的i节点和存储block块,可以看做是同一个文件
  2. 可通过i节点识别
  3. 不能跨分区
  4. 不能针对目录使用

软链接特征:

  1. 类似Windows快捷方式
  2. 软链接拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据
  3. lrwxrwxrwx 第一位的l表示软链接(注意:软连接的文件权限都为rwxrwxrwx)
  4. 修改任意文件,另一个都改变
  5. 删除原文件,软链接不能使用

注意:创建软链接的时候一定要写绝对路径

文件修改

  1. 通过vi [文件名]打开并编辑
  2. 通过echo [内容] >> [文件名],将内容直接写入文件

3.文件搜索命令

1.文件搜索命令locate

locate命令比find命令搜索速度快

格式:locate [文件名]

在后台数据库中按文件名搜索,搜索速度最快

locate命令所搜索的后台数据库是/var/lib/mlocate

但是这个数据库并非实时更新的,如果是新建的文件,会出现查找不到的情况,说明没有更新后台数据库,可以通过updatedb命令更新

缺点:只能按照文件名搜索

搜索规则:根据/etc/updatedb.conf中的配置进行搜索

  • PRUNE_BIND_MOUNTS=“yes” 是否开始搜索限制(如果yes表示启用下边的搜索限制,如果是no表示不启用)
  • PRUNEFS ="" 引号中写的是搜索时不需要搜索的文件系统
  • PRUNENAMES="" 引号中写的是搜索时不搜索的文件类型
  • PRUNEPATHS="" 引号中写的是搜索时不搜索的路径
2.命令搜索命令whereis与which

whereis [选项] [命令名]

主要用于搜索命令所在路径及帮助文档所在位置

选项:

  • -b 只查找可执行文件
  • -m 只查找帮助文件

这里另外提一句,想要知道当前用户是哪个可以用whoami命令

[root@localhost ~]# whoami 
root

想要知道命令是做什么的可以用whatis命令

[root@localhost ~]# whatis ls
ls (1)               - list directory contents

which [文件名]

搜索命令所在路径及别名

whereis的主要区别是显示路径的同时还会显示别名

注意:whereiswhich命令都无法找到shell自带的命令

配置PATH

echo $PATH

与windows中的path环境变量类似.自己定义的脚本也需要添加到PATH

3.文件搜索命令find

find [搜索范围] [搜索条件]

主要用于搜索文件

示例:find / -name install.log

实际操作应避免这么写,避免大范围搜索,会非常消耗系统资源

find是在系统当中搜索符合条件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配.

Linux中的通配符

  • * 匹配任意内容
  • ? 匹配任意一个字符
  • [] 匹配任意个亿中括号内的字符

搜索条件

  • -iname 搜索条件不区分大小写
  • -user 按照所有者搜索
  • -nouser 查找没有所有者的文件
find /root -iname install.log
find /root -user root
find /root -nouser
  • -mtime 文件访问时间
  • -ctime 改变文件属性
  • -mtime 修改文件内容
find /var/log/ -mtime +10
#-mtime +10 查找10天前修改的文件
#-mtime -10 查找10天内修改的文件
#-mtime 10 查找10天当天修改的文件
  • -size 按照文件大小 (这里k需要小写,M是大写)
  • -inum 按照i节点
find . -size 25k
# -25k 小于25KB的文件
# 25k 等于25KB的文件
# +25k 大于25KB的文件
find . -inum 262422
# 查找i节点是262422的文件
# 这里的.代表当前目录
  • -a and 逻辑与,两个条件都满足
  • -o or 逻辑或,两个条件满足一个即可
  • -exec/-ok [命令] {}\;命令,对搜索结果执行命令

注意 这里加的命令必须是查询出来的文件能够执行的命令

  • find /etc -size +20k -a -size -50k

这条命令的意思是查找etc目录下,大于20KB且小于50KB的文件

  • find /etc -size +20k -a -size -50k -exec ls -lh {} \;

这条命令代表查找etc目录下,大于20KB且小于50KB的文件并且显示详细信息

4.字符串搜索命令grep

grep [选项] 字符串 文件名1 文件名2

在文件中搜索匹配符合条件的字符串

选项

  • -i 忽略大小写
  • -v 排除指定字符串

这个功能异常强大,同时还可以和管道结合使用

这里先简单说一下管道:

管道就是|这个操作符,可以同时执行多个命令

命令1 | 命令2 | 命令3:同时命令1的结果是命令2的输入,依次类推.

例如:head a.txt | grep java | grep tomcat这个命令是在前十行中包含java和tomcat的字符串

5.find命令与grep命令的区别

find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配.

grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配.

4.帮助命令

1.帮助命令man

man 命令

获取指定命令的帮助

示例:man ls 查看ls的帮助

注意:进入man之后,可以输入/ 查找内容查找到对应内容,然后按N查找下一个.按shift+N查找上一个.按q退出.

man的级别

  1. 查看命令的帮助
  2. 查看可被内核调用的函数的帮助
  3. 查看函数和函数库的帮助
  4. 查看特殊文件的帮助(主要是/dev目录下的文件)
  5. 查看配置文件的帮助
  6. 查看游戏的帮助
  7. 查看其它杂项的帮助
  8. 查看系统管理员可用命令的帮助
  9. 查看和内核相关文件的帮助

man -f 命令

查看命令用友哪个级别的帮助

也可以使用whatis 命令,可以查看有几个等级的帮助文档

示例:man 5 passwd

man -k 命令

查看和命令相关的所有帮助

相当于apropos 命令

示例:apropos passwd

2.其他帮助命令

命令 --help

获取命令选项的帮助

help shell内部命令

获取shell内部命令的帮助

示例:

whereis cd 
#确定是否是shell内部命令
help cd 
#获取内部命令帮助

info 命令

  • -回车:进入子帮助页面(带有*号标记)
  • -u:进入上层页面
  • -n:进入下一个帮助小节
  • -p:进入上一个帮助小节
  • -q:退出

5.压缩与解压缩命令

1. .zip .gz .bz2

.zip格式压缩

zip 压缩文件名 源文件 压缩文件

zip -r 压缩文件名 源目录 压缩文件夹

注意:这里的zip格式是可以与windows中的zip通用的

unzip 压缩文件 解压缩文件

.gz格式压缩

gzip 源文件 压缩为.gz格式的压缩文件,压缩完成源文件会消失

gzip -c 源文件 > 压缩文件 压缩为.gz格式,源文件保留

gzip -r 目录 压缩目录下所有的子文件,但是不能压缩目录

gzip -d 压缩文件 解压缩文件

gunzip 压缩文件 解压缩文件

gunzip -r 包含压缩文件的目录 将目录中的压缩文件全部解压

.bz2格式压缩

bzip2 源文件 压缩为.bz2格式,不保留源文件

bzip2 -k 源文件 压缩之后保留源文件

bzip2命令不能压缩目录

bzip2 -d 压缩文件 解压缩,-k保留压缩文件

bunzip2 压缩文件 解压缩,-k保留压缩文件

2. tar.gz tar.bz2

打包命令tar

tar -cvf 打包文件名 源文件

选项:

  • -c 打包
  • -v 显示过程
  • -f 指定打包后的文件名
  • -t 查看压缩文件内容,但不解压缩

示例:tar -cvf abc.tar abc

解打包命令

tar -xvf 打包文件名

选项:

  • -x 解打包
  • -v 显示过程
  • -f 指定打包后的文件名
  • -C 指定解打包后的文件位置

.tar.gz压缩格式

其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式.同时linux也支持将这两步合并完成的操作

tar -zcvf 压缩包名.tar.gz 源文件 压缩为.tar.gz文件

tar -zxvf 压缩包名.tar.gz 解压缩.tar.gz文件

选项:-z 压缩或解压缩为tar.gz文件

.tar.bz2压缩格式

tar -jcvf 压缩包名.tar.bz2 源文件 压缩为.tar.bz2文件

tar -jxvf 压缩包名.tar.bz2 解压缩.tar.bz2文件

选项:-j 压缩或解压缩为tar.bz2文件

查看压缩包中的文件内容(这里起关键的就是-t,只查看不解压)

tar -ztvf test.tar.gz

解压缩到自定义的文件位置(-C关键字是设置解压缩位置)

tar -zxvf test.tar.gz -C /tmp/

同时压缩多个文件,只需要将多个文件放在后边,空格隔开

tar -zcvf test.tar.gz a b c

6.关机和重启命令

1.shutdown命令

shutdown [选项] 时间

选项:

  • -c 取消前一个关机命令
  • -h 关机
  • -r 重启

这个命令执行之后,就不能进行其他操作,这个时候可以在命令后边加一个&,表示将这条命令加入后天执行.

shutdown -r 05:30 &

2.其他关机命令
  • halt
  • poweroff
  • init 0

不建议使用

3.其他重启命令
  • reboot (可以使用)
  • init 6 (不要使用)
4.系统运行级别
  1. 关机
  2. 单用户
  3. 不完全多用户,不含NFS服务
  4. 完全多用户
  5. 未分配
  6. 图形界面
  7. 重启

runlevle 查看系统运行级别

[root@localhost tmp]# runlevel
N 3
# N代表之前的运行级别是关机,3代表当前的运行级别是3
# 如果是从图形界面切换到多用户这里会显示为"5 3"

cat /etc/inittab 查看系统默认运行级别

cat /etc/inittab
....
id:3:initdefault:
....

5.退出登录命令

logout 这里需要注意,每次用xshell这种远程工具操作完后,都需要执行这条命令退出登录,切记不要直接关掉xshell,否则每次登录都相当于是新的用户操作,多次操作后会超出linux支持的用户数,无法登陆,只能重启服务器.

7.其他常用命令

1.挂载命令
1.查询与自动挂载

mount 查询系统中已经挂载的设备

mount -a 依据配置文件/etc/fstab的内容,自动挂载

2.挂载命令格式

mount [-t 文件系统] [-o 特殊选项] 设备 文件名 挂载点

选项:

  • -t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3,ext4,iso9660等文件系统
  • -o 特殊选项:可以指定挂载的额外选项
2.用户登录查看和用户交互命令

查看登录用户信息

w 用户名

命令输出:

  • USER:登录的用户名
  • TTY:登录终端
  • FROM:从哪个IP地址登录
  • LOGIN@:登录时间
  • IDLE:用户闲置时间
  • JCPU:指的是和该终端连接的所有进程占用的时间.这个时间里并不包括过去的后台作业试驾,但却包括当前正在运行的后台作业所占用的时间
  • WHAT:当前正在运行的命令

who 用户名w作用相同

命令输出:

  • 用户名
  • 登录终端
  • 登录时间(登录来源IP地址)

查询当前登录和过去登录的用户信息

last

last命令默认是读取/var/log/wtmp文件数据

命令输出

  • 用户名
  • 登录终端
  • 登录IP
  • 登录时间
  • 退出时间(在线时间)

查询所有用户的最后一次登录时间

lastlog

lastlog命令默认是读取/var/log/lastlog文件内容

命令输出:

  • 用户名
  • 登录终端
  • 登录IP
  • 最后一次登录时间

8.shell基础

1.Shell概述

Shell是一个命令行解释器,同时也是一门功能强大的编程语言

其中主要语法类型有Bourne Shell和C Shell两种

Bourne包括sh,ksh,Bash,psh,zsh

C包括:csh,tsch

2.脚本执行方式

1.echo输出命令

echo [选项] [输出内容]

选项:

  • -e 支持反斜线控制的字符转换

你可能感兴趣的:(学习,linux,服务器,实施)