Linux基本概念
-
Linux
的核心为内核,主要包括内存管理、软件程序管理、硬件设备管理以及文件系统管理。内核的代码为开源的,网址为https://www.kernel.org。GNU工具链为与系统交互提供了很多实用功能,比如shell即是一个交互工具,包括bash/zsh等
。 -
在内核基础上开发的完整系统叫做发行版,目前核心的发行版包括:
redhat
,centos
,ubuntu
,debian
等。
Linux命令格式
-
主流的发行版都提供基本bash shell的命令行交互工具,命令行交互(ubuntu版本)的通用格式如下:
# yjf代表登录用户名 # vbox代表登录机器名 # ~代表当前所在目录 # $代表登录为普通用户,#代表为管理员用户root yjf@vbox:~$ # shell使用$PS1特殊变量来定义命令行提示字符的格式 yjf@vbox:~$ echo $PS1 \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
-
manual
帮助文档,发行版提供的shell命令及其他GNU工具的在线手册,可以使用man
命令或者命令 --help
的方式获取帮助文档。man手册使用数字来指示命令帮助文档的类型,主要分以下几种:-
1 可执行程序或者shell工具帮助文档。
-
2 内核级别系统调用帮助文档
-
5 配置文档的帮助信息等。
# man的使用如下: #1 使用man 命令来显示帮助信息,使用q退出帮助信息 /-d表示检索-d信息 yjf@vbox:~$ man ls #2 当命令存在多个类型的帮助信息时 可使用man -f 命令或者whatis 命令显示该命令拥有的帮助信息 # 1 表示可执行命令的帮助信息 5表示密码配置的帮助信息 1ssl表示计算密码hash的帮助信息 之后即可使用 # man 5/1/1ssl passwd 来显示具体的类型帮助信息 yjf@vbox:~$ man -f passwd passwd (5) - the password file passwd (1) - change user password passwd (1ssl) - compute password hashes yjf@vbox:~$ man 1ssl passwd yjf@vbox:~$ man 5 passwd
-
文件及目录管理
-
Linux
系统里一切皆文件,每个发行版都会约定基本文件的结构,目录结构基本类似,以下为Ubuntu
系统的目录结构:#Ubuntu 18.04 64为系统目录结构 / #根目录 /bin #二进制目录,主要存放GNU用户级别工具 /sbin #二进制目录,主要存放GNU系统级别工具 /boot #启动目录,存放启动文件 /dev #设备目录 在此目录下创建设备节点 /etc: #系统配置文件目录 /home: #自定义用户的根目录,如创建yjf用户,则会在此创建yjf目录 /lib64或者/lib #库文件目录 /mnt,/media #挂载点目录.如挂载cd-rom或者u盘等 /opt #存放用户可选的软件包 /tmp #临时目录 /usr #用户安装软件目录 /var #存放变化文件,如日志等 /root #root用户根目录
-
ls
基本列表功能,显示指定参数的文件或者目录信息。# 通用格式: ls [options] [args] # options支持以-开头选项和--开头的选项,单字符选项可以写在一起。 # args参数指定文件或者目录,当未指定参数时表示显示当前目录。参数支持以下通配符表示: # 1 * 代表任意字符 ?表示单个字符 [abc]表示[]中任意一个 # -a/--all 显示所有(包括隐藏) # -l(按长列表输出) -h(任性化显示文件大小,单位kb mb等) -R(递归显示目录中的内容,大目录慎用) yjf@vbox:~$ ls -hail total 36 532501 4 drwxr-xr-x 4 yjf yjf 4096 Aug 23 15:37 . 524290 4 drwxr-xr-x 3 root root 4096 Aug 23 15:05 .. 529833 4 -rw------- 1 yjf yjf 819 Aug 24 10:49 .bash_history 532504 4 -rw-r--r-- 1 yjf yjf 220 Apr 5 2018 .bash_logout yjf@vbox:~$ ls -hail /etc/pass* 407343 -rw-r--r-- 1 root root 1.6K Nov 23 08:34 /etc/passwd 407286 -rw-r--r-- 1 root root 1.6K Nov 23 07:57 /etc/passwd- #对于文件显示,各选项代表意义如下: #532501-索引 #drwxr-xr-x 表示文件权限信息。第一个字符代表文件类型,d代表目录 -代表文件 l 软连接。后面跟着的9个字符,3个分一组表示当前用户(u),组内的其他用户(g)和其他用户(o)对该文件的读写执行权限。按读写执行排序,rwx表示有读写执行权限,没有相应的权限使用-代替. yjf yjf表示该文件所属的用户和组。 # 819 代表文件大小,无单文代表字节,K代表KB 之后是文件的日期信息。
-
cd
,mkdir
,rm
,mv
,cp
,pwd
命令表示新建,移动,拷贝等信息。#cd 表示进入指定目录,支持绝对目录或者相对目录。几个特殊目录的写法: #cd ~/cd 进入家目录. cd .表示当前目录 cd ..表示进入上级目录 yjf@vbox:~/.ssh$ cd ~ yjf@vbox:~$ cd /etc #mkdir用于建立文件夹,用/分割,对于指定目录的的上级目录一定要存在,否则使用-p参数表示递归的建立多个文件夹 yjf@vbox:~$ mkdir dir1 yjf@vbox:~$ mkdir -p d1/d2/d3 #rm可用于删除文件,-f参数表示强制删除,删除目录必须使用-r参数。 yjf@vbox:~$ rm -rf d1 #mv用户移动文件,文件夹或者重命名 yjf@vbox:~$ mv gcc.c gcc.java #移动到当前目录下就相当于重命名 yjf@vbox:~$ mv gcc.java ./dest1/ #移动文件 支持多个文件 yjf@vbox:~/dest1$ mv d1 ~/ #移动d1目录下的文件或者目录(包括子目录)到家目录下. #cp命令用于拷贝文件或者目录,正常如果不带-a参数拷贝后的文件时间搓不一致 需要-a yjf@vbox:~$ cp .sudo_as_admin_successful d1 #单个文件拷贝 源->目的 yjf@vbox:~$ cp -r d1 dest1 #递归拷贝d1下的文件(包括子目录)必须使用-r参数. yjf@vbox:~$ ll d1/demo demo -rw-rw-r-- 1 yjf yjf 29 Nov 24 05:22 d1/demo -rw-rw-r-- 1 yjf yjf 29 Nov 24 05:22 demo #pwd用于显示当前目录的绝对路径 yjf@vbox:~/d1$ pwd /home/yjf/d1
-
touch
,stat
,file
用于创建文件和修改文件时间戳,查看相关的文件信息。#touch filename 创建文件,另一个功能对于已经存在的文件更改时间戳 yjf@vbox:~/d1$ touch doc.log yjf@vbox:~/d1$ ll total 12 -rw-rw-r-- 1 yjf yjf 29 Nov 24 05:47 demo -rw-rw-r-- 1 yjf yjf 0 Nov 24 05:48 doc.log yjf@vbox:~/d1$ touch doc.log yjf@vbox:~/d1$ ll total 12 -rw-rw-r-- 1 yjf yjf 29 Nov 24 05:47 demo -rw-rw-r-- 1 yjf yjf 0 Nov 24 05:49 doc.log # stat file 查看文件的统计信息,包括最近访问 最近更改等信息 可包括目录 # file file 查看文件的类型:包括文件夹 文本文件 可执行文件等类型 yjf@vbox:~/d1$ stat doc.log File: doc.log Size: 12 Blocks: 8 IO Block: 4096 regular file Device: 802h/2050d Inode: 536342 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ yjf) Gid: ( 1000/ yjf) Access: 2019-11-24 05:51:39.960634424 +0000 Modify: 2019-11-24 05:51:39.960634424 +0000 Change: 2019-11-24 05:51:39.968634424 +0000 Birth: - yjf@vbox:~/d1$ file doc.log doc.log: ASCII text
-
cat
,more
,less
,head
,tail
相关命令查看文件内容并输出到标准输出设备,可应用在不同的场景下。#more应用于大文件,分页查看,使用q退出。less命令为more的高级版本。 yjf@vbox:~$ more file1 #head和tail用户查看指定文件的前或者后n行,部分查看功能. yjf@vbox:~$ head -n2 /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin yjf@vbox:~$ tail /etc/passwd #未指定行数默认为10行 messagebus:x:103:107::/nonexistent:/usr/sbin/nologin _apt:x:104:65534::/nonexistent:/usr/sbin/nologin ... yjf@vbox:~$ tail +20 /etc/passwd #显示从20行到末尾. yjf@vbox:~$ tail -f -n5 /tmp/d1.log #滚动显示文件的末尾5行 对于动态查看日志文件非常有用 #cat 显示文件内容到标准输出,并借助重定向和管道实现文件的创建,追加等功能。支持以下选项 #-n 每行显示行号 -b 空白行不编号 yjf@vbox:~$ cat -n file1 #每行前面加行号 yjf@vbox:~$ cat -b file1 #空白行不编号 yjf@vbox:~$ cat file1 file > total #合并file1/file文件至total文件
-
ln
命令用于创建文件的链接,即占位符的意思,链接一般分为硬链接和软链接,命令使用如下:#创建软链接, 使用-s表示创建的为软链接 前面为实际的文件位置,后面参数为软链接的名称。 yjf@vbox:~$ ln -s d1/doc.log doc.log yjf@vbox:~$ ls -sail doc.* 536338 0 lrwxrwxrwx 1 yjf yjf 10 Nov 24 06:24 doc.log -> d1/doc.log
网友评论