Linux基础学习

Linux基础学习

搭建学习环境

方法多种不一一列举,感兴趣的自己可以找来详细教程玩

1.下载VMware,Virtual Box...虚拟计算机软件,下载你喜欢的Linux发行版镜像,然后配置虚拟机,通过虚拟机来学习

2.给你的装个双系统,有空就折腾折腾自己吧

3.租个学生服务器也是不错的

4.要是懒到家了就下个win10自带的ubuntu来玩玩了解了解先

Linux命令的基本使用

准备工作完成,开始进入Linux命令的学习
先打开终端,输入rm -rf(别,千万别这样!)
好了,啥是终端?我连终端都不知道,你让我输个鬼?

1.终端Terminal(机器的边缘)

​ 终端就是处理计算机主机输入输出的一套设备,它用来显示主机运算的输出,并且接受主机要求的输入,典型的终端包括显示器键盘套件,打印机打字机套件等。

注:显然系统中我们打开的terminal其实只是虚拟化的终端。(不是很确定该怎么说)

1.1 终端的分类(前两类又称之为“物理终端”,后面的那个称之为“伪终端”)

  • 本地终端
    用VGA连接主机和显示器,用PS/2或者USB连接主机和键盘,这样的一个显示器/键盘组合就是一个本地终端。

  • 用串口连接的远程终端
    通过串口线把主机接到另外一个有显示器和键盘的主机,通过运行一个终端模拟程序,比如“Windows超级终端”来将这台主机的显示器和键盘借给串口对端的主机。

  • 用TCP/IP承载的远程终端 (选用云服务器的小伙伴就是这种)
    类似Telnet,SSH这般。

    注:伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master和slave设备, 对master的操作会反映到slave上)。
    

1.2有关终端的命令

  • 查看当前终端
tty
  • 切换终端 ctrl+alt+(F1~F7)

2.命令(二进制可执行文件)

2.1命令分类

  • 外部命令(独自运行的独立程序)

    ls、cat等

    echo $PATH(查找外部命令)

  • 内部命令(shell在自己的进程内运行该命令)

    exit、history、cd、source、fg、echo等

      man cd 查看所有shell内建命令
    type 查看命令类型
    

2.2常用命令

1)文件、目录操作命令

1、ls命令:显示文件和目录的信息

  • ls 以默认方式显示当前目录文件列表
  • ls -a 显示所有文件包括隐藏文件
  • ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
  • ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M2G)
  • ls -lt 显示文件,按照修改时间排序

2、cd命令:改名目录

  • cd dir 切换到当前目录下的dir目录
  • cd / 切换到根目录
  • cd .. 切换到到上一级目录
  • cd ../.. 切换到上二级目录
  • cd ~ 切换到用户目录,比如是root用户,则切换到/root下
注:根目录与家目录的区别:
	根目录是系统的一级文件结构,家目录只是非root用户控制目录。相当于windows我的文档,非root用户只能完会控制家目录的文件,不能控制根目录下其它的文件。根目录是设备的最顶层目录,用 / 表示	
	家目录是每个用户登录系统后所在的目录,通常在 /home 下,以用户名作为目录,可以用 ~ 表示。
	cd / 进入根目录
	cd ~/ 进入家目录
当然,也可以用 /home/someone 进入someone的家目录

3、cp命令:复制文件

  • cp source target 将文件source复制为target
  • cp /root /source . 将/root下的文件source复制到当前目录
  • eg:cp /home/open_038_dev/external_files/test/test.sh .
  • cp –av soure_dir target_dir 将整个目录复制,两目录完全一样

4、rm命令:删除文件或目录

  • rm file 删除某一个文件
  • rm -f file 删除时候不进行提示。可以于r参数配合使用
  • rm -rf dir 删除当前目录下叫dir的整个目录

5、mv命令:将文件移动走,或者改名,在uinx下面没有改名的命令,如果想改名,可以使用该命令

  • mv source target 将文件source更名为target ,命令参数如下:

    -b :若需覆盖文件,则覆盖前先行备份。

    -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

    -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

    -u :若目标文件已经存在,且 source 比较新,才会更新(update)

    -t:--target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

6、diff命令:比较文件内容

  • diff dir1 dir2 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出

  • diff file1 file2 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的

  • comm file1 file2 比较文件,显示两个文件不相同的内容

7、ln命令:建立链接。windows的快捷方式就是根据链接的原理来做的

  • ln source_path target_path 硬连接

  • ln -s source_path target_path 软连接

  • ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。

注:当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s /bin/less /usr/local/bin/less

2)查看文件内容命令

1、cat命令:显示文件的内容,和DOS的type相同

cat file 

2、more命令:分页显示命令

  • more file
注:more命令也可以通过管道符(|)与其他的命令一起使用,例如:

ps ux|more

ls|more

3、tail 命令:显示文件的最后几行

  • tail -n 100 aaa.txt 显示文件aaa.txt文件的最后100行

4、vi命令

  • vi file 编辑文件file

5、touch命令:创建一个空文件

  • touch aaa.txt 创建一个空文件,文件名为aaa.txt

3)基本系统命令

1、man命令:查看某个命令的帮助,如果你不知道某个命令的用法不懂,可以问他,他知道就回告诉你

2、w命令:显示登录用户的详细信息

3、who命令:显示登录用户

4、last命令:查看最近那些用户登录系统

5、date命令:系统日期设定

  • date 显示当前日期时间
  • date -s 20:30:30 设置系统时间为20:30:30
  • date -s 2002-3-5 设置系统时期为2003-3-5
  • date -s "060520 06:00:00" 设置系统时期为2006年5月20日6点整。

6、clock命令:时钟设置

  • clock –r 对系统Bios中读取时间参数

  • clock –w 将系统时间(如由date设置的时间)写入Bios

7、uname命令:查看系统版本

  • uname -R 显示操作系统内核的version

8、关闭和重新启动系统命令

  • reboot  重新启动计算机

  • shutdown -r now 重新启动计算机,停止服务后重新启动计算机

  • shutdown -h now 关闭计算机,停止服务后再关闭系统

  • halt 关闭计算机

注:一般用shutdown -r now,在重启系统是,关闭相关服务,shutdown -h now也是如此。

9、su命令:切换用户

  • su - 切换到root用户

  • su - zhoulj 切换到zhoulj用户,

注意:‘-’ 很关键,使用-,将使用用户的环境变量

四、监视系统状态命令

1、top命令:查看系统cpu、内存等使用情况

2、free命令:查看内存和swap分区使用情况

3、uptime:现在的时间 ,系统开机运转到现在经过的时间,连线的使用者数量,最近一分钟,五分钟和十五分钟的系统负载

4、vmstat命令:监视虚拟内存使用情况

5、ps命令:显示进程信息

  • ps ux 显示当前用户的进程

  • ps uxwww 显示当前用户的进程的详细信息

  • ps aux 显示所有用户的进程

  • ps ef 显示系统所有进程信息

6、kill命令:干掉某个进程,进程号可以通过ps命令得到

  • kill -9 1001 将进程编号为1001的程序干掉

  • kill all -9 apache 将所有名字为apapche的程序杀死,kill不是万能的,对僵死的程序则无效。

五、磁盘操作命令

1、df命令:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。参数功能

  • -a 列出全部目录

  • -Ta 列出全部目录,并且显示文件类型

  • -B 显示块信息

  • -i 以i节点列出全部目录

  • -h 按照日常习惯显示(如:1K、100M、20G)

  • -x [filesystype] 不显示[filesystype]

2、du命令:检测一个目录和(递归地)所有它的子目录中的文件占用的磁盘空间。参数功能:

  • -s [dirName] 显示目录占用总空间

  • -sk [dirName] 显示目录占用总空间,以k为单位

  • -sb [dirName] 显示目录占用总空间,以b为单位

  • -sm [dirName] 显示目录占用总空间,以m为单位

  • -sc [dirName] 显示目录占用总空间,加上目录统计

  • -sh [dirName] 只统计目录大小

3、mount命令:使用mount命令就可在Linux中挂载各种文件系统。

格式:mount -t 设备名 挂载点

  • mount /dev/sda1 /mnt/filetest

  • mount -t vfat /dev/hda /mnt/fatfile

  • mount -t ntfs /dev/hda /mnt/ntfsfile

  • mount -t iso9660 /dev/cdrom /mnt/cdrom

  • mount -o 设备名 挂载点

注:使用usb设备时

modprobe usb-storage

mkdir /mnt/usb

mount -t auto /dev/sdx1 /mnt/usb

umount/mnt/usb

4、mkswap命令:使用mkswap命令可以创建swap空间,如:

  • debian:~# mkswap -c /dev/hda4

  • debian:~# swapon /dev/hda4 #启用新创建的swap空间,停用可使用swapoff命令

5、fdisk命令:对磁盘进行分区

  • fdisk /dev/xxx 格式化xxx设备(xxx是指磁盘驱动器的名字,例如hdb,sdc)

  • fdisk -l 显示磁盘的分区表

6、mkfs命令:格式化文件系统,可以指定文件系统的类型,如ext2、ext3、fat、ntfs等

  • 格式1:mkfs.ext3 options /dev/xxx

  • 格式2:mkfs -t ext2 options /dev/xxx

参数功能

  • -b 块大小

  • -i 节点大写

  • -m 预留管理空间大小

7、e2fsck命令:磁盘检测

  • e2fsck /dev/hda1 检查/dev/hda1是否有文件系统错误,提示修复方式

  • e2fsck -p /dev/hda1 检查/dev/hda1是否有错误,如果有则自动修复

  • e2fsck -y /dev/hda1 检查错误,所有提问均于yes方式执行

  • e2fsck -c /dev/hda1 检查磁盘是否有坏区

8、tune2fs命令:调整ext2/ext3文件的参数,参数功能

  • -l 查看文件系统信息

  • -c 设置强制自检的挂载次数

  • -i 设置强制自检的间隔时间,单位天

  • -m 保留块的百分比

  • -j 将ext2文件系统转换成ext3格式

9、dd命令:功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。跟DOS下的diskcopy命令的作用类似。

  • dd if=/dev/fd0 of=floppy.img 将软盘的内容复制成一个镜像

  • dd if=floppy.img of=/dev/fd0 将一个镜像的内容复制到软盘,做驱动盘的时候经常用。

6)用户和组相关命令

1、groupadd命令:添加组

  • groupadd test1 添加test1组

  • groupadd -g 1111 test2 添加test2组,组id为1111

2、useradd命令:添加用户

  • useradd user1 添加用户user1,home为/home/user1,组为user1

  • useradd -g test1 -m -d /home/test1 test1 添加用户test1,home为/home/test1,组为test1

  • user list 显示已登陆的用户列表

3、passwd命令:更改用户密码

  • passwd user1 修改用户user1的密码

  • passwd -d root 将root用户的密码删除

4、userdel命令:删除用户

  • userdel user1 删除user1用户

5、chown命令:改变文件或目录的所有者

  • chown user1 /dir 将/dir目录设置为user1所有

  • chown -R user1.user1 /dir 将/dir目录下所有文件和目录,设置为user1所有,组为user1。-R递归到下面的每个文件和目录

6、chgrp命令:改变文件或目录的所有组

  • chgrp user1 /dir 将/dir目录设置为user1所有

7、chmod命令:改变用户的权限

  • chmod a+x file 将file文件设置为可执行,脚本类文件一定要这样设置一个,否则得用bash file才能执行

  • chmod 666 file 将文件file设置为可读写

  • chmod 750 file 将文件file设置为,所有者为完全权限,同组可以读和执行,其他无权限

8、id命令:显示用户的信息,包括uid、gid等

9、finger命令:显示用的信息

七、压缩命令

1、gzip格式命令:压缩文件,gz格式的

注意:生成的文件会把源文件覆盖

2、zip格式命令:压缩和解压缩zip命令

  • zip
  • unzip

3、bzip2根式命令:bzip2格式压缩命令,

  • bzip2

  • bunzip2

4、tar命令:归档、压缩等,比较重要,会经常使用。

  • -c :建立一个压缩文件的参数指令(create 的意思);
  • -x :解开一个压缩文件的参数指令!
  • -t :查看 tarfile 里面的文件!
  • -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  • -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
  • -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  • -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

8)网络相关命令

1、ifconfig命令:显示修改网卡的信息

  • ifconfig 显示网络信息

  • ifconfig eth0 显示eth0网络信息

修改网络信息:

ifconfig eth0 192.168.1.1 netmask 255.255.255.0 设置网卡1的地址192.168.1.1,掩码为255.255.255.0

ifconfig eth0:1 192.168.1.2  捆绑网卡1的第二个地址为192.168.1.2

ifconfig eth0:x 192.168.1.n  捆绑网卡1的第n个地址为192.168.1.n

2、route命令:显示当前路由设置情况

route 显示当前路由设置情况,比较慢一般不用。

route add -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254 添加静态路由

route del -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254 添加静态路由

route add default gw 192.168.1.1 metric1  设置192.168.1.1为默认的路由

route del default  将默认的路由删除

3、netstat命令:显示网络状态

  • netstat -an 查看网络端口信息

  • netstat -nr 查看路由表信息,比route快多了,

4、启动网络的命令

  • redhat族的命令: /etc/init.d/network

  • debian命令: /etc/init.d/networking

5、网络排错

(1)ping命令

功能:不说了,不知道就不用干这行了。

(2)traceroute命令:路由跟踪

(3)nslookup命令:域名解析排错

9)其他命令

1、ssh命令:远程登陆到其他UNIX主机

ssh -l user1 192.168.1.2 使用用户名user1登陆到192.168.1.2

2、scp命令:安全copy

3、telnet命令:登陆到远程主机

posted @ 2020-07-21 15:46  LuciferZIO  阅读(128)  评论(0)    收藏  举报