Linux概述与常用命令

在学习知识的时候,博主习惯于根据一张图来记忆知识点,所以本文分为两部分:脑图和知识点

第一部分:脑图

用一张图来简略描述Linux,如下:

第二部分:知识点整理

(1)Linux系统支持多用户、用户组(批量管理用户)

(2)操作系统可简单分为内核与外壳,内核是可以直接操作硬件的程序,用于连接软件和硬件;外壳是基于内核开发的应用程序,例如QQ、浏览器等

(3)我们平时常说的Linux,严格来说,是指Linux内核,所有的发行版是基于Linux内核开发的

(4)Linux发行版有很多种:Ubuntu(推荐)、Debian、CentOS、中标麒麟等等

(5)Linux类似于Unix,但只是设计规范相似,源代码是没有关联的

(6)文件管理的重点:

  • Linux中,一切皆文件,包括磁盘、打印机、输入输出设备等,都可以看做文件;文件种类可分为五种:

  • Linux文件系统的目录结构如下:

常用目录说明:

/bin: 存放可执行文件(例如ls、cat、mkdir命令文件),常用命令一般都在这里;
/etc: 存放系统管理和配置文件;
/home: 存放所有用户文件的根目录,每个用户对应一个子目录,比如用户user1对应的目录就是/home/user1;
/usr : 用于存放应用程序,软件一般安装在这个目录;
/tmp: 用于存放临时文件,系统重启后该文件夹下的所有文件会清空;建议把需要删除的文件放在tmp下,尽量少用rm命令;
/var: 用于存放经常被修改的文件,例如日志文件;
更多详情可访问:https://www.runoob.com/linux/linux-system-contents.html

(7)常用命令

  • 文件查看
pwd
     print working dir
     显示当前所处的目录
     
ls
    不带参数就显示当前目录下的所有文件
    可以加参数
    -l 显示详细信息 (权限、用户、用户组......)
    -h 人性化显示文件尺寸
    -a 显示所有文件, 以 . 开头的文件是隐藏文件
    还可以带一个目录当参数,可以查看指定目录下的文件,ls /testFolderName
    下面两个是等价的
    ls -l -h
    ls -lh

cd
    改变当前目录
    . 代表当前目录
    .. 代表上级目录
    cd 不带参数就回到默认的家目录
    每个用户都有一个家目录,默认在 /home/用户名
    root 用户的家目录是 /root

cat
    顺序显示文件内容

tac
    倒序显示文件内容

nl
    显示文件内容并附带行号

more less head tail (一般用于查看文本、日志)
    more 可以从上到下查看文件内容
    less 比 more 更高级,可以前后退查看文件(从上到下,从下到上都可以)
    head 可以显示文件的前 10 行
    tail 可以显示文件的后 10 行;动态查看tomcat日志 tail -f logs/catalina.out
    head 和 tail 有一个 -n 参数,可以指定显示行数
    head -n 20 a.txt
  • 文件管理
cp
    复制出一个文件,用法如下
    cp a.txt b.txt   复制 a.txt 并把新文件取名为 b.txt
    如果复制的是目录,要加上 -r 参数
    cp -r a b   a目录复制一份为b目录

mkdir
    创建一个目录
    -p 可以一次性创建多层目录
    mkdir -p a/b/c

rmdir
    只能用来删除一个空目录

rm
    这个命令直接删除东西,很危险,一般不要用
    删除文件或者目录
    -f 强制删除
    -r 用来删除目录

mv
    移动文件或者文件夹
    也可以用来改名
    mv a.txt b.txt
    mv b.txt ../
    mv b.txt ../a.txt
    可以用 mv xx /tmp 的方式来将文件放入临时文件夹,系统重启后会自动删除(rm命令太危险,尽量不要用rm命令删除)

touch
    touch a.txt  创建文件
    如果 a.txt 存在就更新修改时间
    如果 a.txt 不存在就创建文件
  • 权限管理
sudo
    用管理员帐户执行程序
    比如安装程序或者修改一些系统配置都需要管理员权限
su
    switch user缩写, 切换用户
    su user1

执行ls -lh:
文件权限      文件类型      用户    用户组   文件大小   修改日期       文件名
-rw-rw-r--   1(普通文件)  user1    gua      10      11/09 20:28   b.txt
drwxrwxr-x   2(目录)      user2   gua     4096     11/09 20:28   tmp

文件权限中,第一个字符代表文件类型d或-:
文件类型    是否可读  是否可写  是否可执行
d(目录)        r       w       x
- (普通文件)    r       w       x

文件权限从第二位起,三组 rwx 分表代表 所属用户|同组用户|其他用户 的权限,没有的权限显示 -
rwx 可以用数字表示为 421
于是
r-- 就是 4
rw- 就是 6
rwx 就是 7
r-x 就是 5

chmod
    改变文件权限
    chmod 666 root.gua
    chmod +x root.gua
    chmod -x tmp
  • 用户管理
chown
    改变文件的用户
    chown user1 c.txt
    chown user1:usergroup c.txt

adduser
    添加用户
    adduser user1,按照提示输入密码
  • 信息查找
file
    显示文件的类型

uname
    显示操作系统的名字或者其他信息
    uname -r
    uname -a

which(显示该命令文件的位置)
    which pwd
    显示 pwd 命令的具体路径

whereis(显示命令的路径)
    whereis ls
    显示比which命令更全面的信息

whoami  
    显示当前用户名

find . -name ""          
    根据通配符查找文件
    find 目录 -name "*.py"

history
    查看历史命令
grep
    查找
这两个一般配合使用
    history | grep touch

ps
    查看进程, 一般用下面的用法
    ps ax
ps ax | grep python
    查看带 python 字符串的进程
  • 其他
Ctrl+z  
    将正在运行的程序挂到后台(控制台被占用时可以用这个命令)
fg  
    显示所有被挂起的后台程序

kill 和 killall 杀进程
    用 ps ax 找到进程id (pid)
    kill [pid]
    kill -9 [pid] 强制杀进程
    kill -15 [pid] 强制杀进程
    killall 是用进程名字来杀进程

reboot
    重启
shutdown
    关机
    可以用参数指定时间

软件安装
apt-get install 软件名
比如下面
apt-get install python3

安装防火墙
防火墙的基本配置:(注意redis的端口漏洞)
apt-get install ufw
ufw allow 22
ufw allow 80
ufw allow 443
ufw allow 8080
ufw default deny incoming
ufw default allow outgoing
ufw status verbose
ufw enable

解压Tomcat到/usr/local下:
tar -xvf apache-tomcat-8.0.50.tar.gz -C /usr/local

 

参考:

JavaGuide

CS-Notes