Linux最常用的基础命令 上篇

时间:2022-07-12 14:38:42

Linux最常用的基础命令个人总结

计算机基础知识

32bit和64bit系统的区别、系统运行机制

1989年python 诞生

C语言是编译型的语言,不太支持跨平台

Django 江购

32bit=内存的最大寻址空间是2**32,也就是说最大只能使用4GB的内存

64bit=内存的最大寻址空间是2**64,差不多支持16TB的内存

操作系统也是一个软件

操作系统简称:OS:operation system

苹果系统绑定了硬件,微软系统只卖软件不绑定硬件

计算机;主要目的是计算:

28个手指关节

10根手指

计算机的电源:

类似于人类的心脏:电源给计算机供电,心脏给人体供血 打开软件是操作硬盘的,打开程序的快慢速度取决于硬盘的读写速度 cpu相当于人的大脑

内存中的数据是通过电流来表示的,所以一断电,内存中的数据就没有了

打开一个软件,cpu先从磁盘中加载文件,程序的打开速度取决于硬盘的质量和硬盘的读写速度

软件打开后,的使用过程中所有的数据都是CPU直接从内存中读写和存放的所以软件使用过程中的流畅度,取决于cpu的性能和内存的大小(CPU值越大性能越强)

操作系统发展历史

二进制

计算机的编码:

ASSIC  每一个字符统一都需要8个bit来存储 计算机CPU只能认识01

编码:将计算机能理解的语言转换成人类能动的语言

计算机中如果没有特殊的要求数字是从0开始算起的

平常生活中数字是从1开始算起的

计算机容量

1位 = 1bit

8bit = 1byte = 1字节

1024bytes = 1kbytes =1KB

1024个字符,小文档 ,几百k可以表示一张图片

1024KB = 1Million Bytes = 1MB = 1兆 ,

几万字的文档, 大图片 1024MB = 1Gigabytes , 一个清晰的电影,不是高清,高清能达到数10个g

1024GB = 1TB ,

1024TB = 1PB,

00000000

00110001

00000001

什么是编程语言?

定义好一套与计算机交互的语法规则,这套规则

就可称为一门编程语言

我们听不懂日语是因为不懂日语的语法规则

学编程 == 学语法规则 编程能干什么?

print hello world

eject cd

一堆指令的组合 == >>  软件

有很多套与计算机交互的语法规则, 600多种编程语言

C = 各个操作系统的开发语言

1973 C++ = C++是C语言的加强版 ,1983年,贝尔实验室的Bjarne

Stroustrup在C语言基础上推出了C++[1] 。

C++进一步扩充和完善了C语言,是一种面向对象的程 序设计语言。

java = 1995 由sun 公司开发出来,java 虚拟机支持跨平台

php = 1994, 纯web开发语言, 1994 Netscape 浏览器诞生了

python = 1989年诞生, 刚开始被做为脚本语言, 开发小任务, 跟linux同年诞生,89,1991,苏联解体, 1991年正式版本

C# = c sharpe =C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是 微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行 的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主 角。

ruby = Ruby, 一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人*(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他 平台的 Ruby 语言替代品。Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。因为Perl发音与6月诞生石pearl(珍珠)相同,因此Ruby以7月诞生石ruby(红宝石)命名。

Ruby on rails web框架

perl = Unix平台上开发出来的语言,做文字处理非常强大, 可以写出没人能看懂的代码

shell = 脚本语言, 简单易学,基于unix,linux, 做一些简单的系统管理任务, 运维人员必学

scalar = Scala是一门多范式的编程语言,一种类似java的编程语言[1] ,大数据开发

erlang = 是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信,函数式编程

go ===Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速 度,而且更加安全、支持并行进程。

javascript = 是当下使用最为广泛的语言,主要写前端的语言,

nodejs =后端 全栈式的语言

vb = 微软的脚本语言,bat脚本

lua = nginx 的脚本语言, ngnix 是时下最nb web服务器

python

编译型 = 全部翻译,再执行 ,翻译=编译 ,c,c++

解释型 = 边执行边翻译, python php java c# perl ruby javascript

Linux对硬件的基础要求:

电脑的配置:

软件配置:64位操作系统,win7旗舰版或者Win10专业版 :不要用企业版:很耗资源

硬件配置:16G内存,i7,固态硬盘200G

类型:游戏本(性能最强的)

处理器:GHz 值越大越好,越大运算速度越快

Linux的创始人:林纳斯,脱袜子

http://linuxdown.net/

红帽,有麒麟,centos,ubtun

Linux,Windows,Unix,MacOX

Ubuntu 乌班图:

我的存在是因为大家的存在,非洲的价值观 安装linux操作系统或是安装软件的时候可以断网安装,这样就不会在安装的过程中,软件会从网上找东西更新而导致安装过程超级的慢

Ubuntu修改登录密码

rw init=/bin/bash

passwd 用户名

输入两次新的密码

-------------------------

/ 根目录

/etc/ 程序的配置文件

/home 普通用户的家目录默认的存放位置

/mnt 挂载就是将硬盘连接在系统上

/root 管理员的家目录,默认系统中只有一个管理员

/var 存放系统中经常被修改的文件,比如日志文件

------------------------

Linux中没有消息就是最好的消息;报错的时候linux才会有提示

------------------------

系统开关机:

reboot 重启

shutdown -r重启

shutdown -h 指定时间的关机

=================

cal 日历

cal -y 打印本年的日历

CST:中国的时区

gedit linux中的notepad++工具:Ctrl+C关闭某个软件或程序

Tab 自动补齐 Tab+Tan列出当前目录下的所有文件

Ctrl+L 假装清屏 Ctrl+K 删除光标后的位置

Ctrl+U

Ctrl+W 以空格为分割来删除命令

Ctrl+Y 恢复删除的命令

Ctrl+R 搜索最近使用的命令

Ctrl+D 结束输入

Ctrl+C 中断当前操作

文件操作,目录操作

. 当前目录

.. 上一级目录

passwd 修改当前用户的密码,每个用户都可以修改自己的密码

passwd 用户名 修改指定用户名的密码,管理员权限才可以执行

man -k passwd 模糊匹配

ls -a 查看所有文件包括了以.点开头的隐藏文件隐藏文件默认是不显示的

ls -A ls -a /var/ 查看指定目录中的所有文件

ls -l 显示文件的权限等信息

ls -lh 以Kb为单位显示文件的信息,默认是按照文件名的a-z排序的

ls -lht 以Kb为单位显示文件的信息,并按照文件的修改时间排序

ls -lhtr 以Kb为单位显示文件的信息,并按照文件的修改时间排序,最上面的时间越早

ls -R ls -l 1.txt 2.txt 查看指定文件的属性信息

ls -l *.txt 找出所有txt结尾的文件

ls -l .bash* 找隐藏文件

sed、awk

sed 命令:一次处理一行数据

cat -n 有行号的查看指定文本的内容

ls -R 递归的查看

tree

yum install tree

鼠标的滚轮向下按,是将选中的文字粘贴或是在Portplay中放大或是缩小的命令

------------------------

- 普通文件

d 目录文件

l 快捷方式文件,链接文件

------------------------

./ 执行某个程序文件

------------------------

mkdir 目录文件名 创建目录文件

mkdir -p 递归创建目录文件

touch 修改文件的创建时间的(修改文件的访问和修改时间),如果指定的文件不存在就创建这个文件

1970 Unix系统的诞生年

------------------------

rm 删除文件

rm -i 删除的时候有提示确认是否删除

rm -rf 空目录文件名 删除指定的空目录文件

rmdir 删除指定的空目录文件

------------------------

mv 1.txt new_1.txt 给文件重命名

mv test new_test 给目录文件重命名

mv 1.txt new_test/ 将1.txt移动到new_test目录中

------------------------

cp 的时候源文件与新文件都是存在的

cp 1.txt new_1.txt 对指定文件进行复制

cp -r test/ new_test/ 对指定目录进行复制

------------------------

cp 1.txt 11.txt

cp -a 1.txt 11.txt 复制的时候保留原文件的属性

stat 1.txt 查看指定文件的状态信息

------------------------

ls 显示目录内容

cd 将当前工作目录切换到指定目录

cp 复制文件或复制目录文件 一次将多个文件复制到某个目录中去

cp -v file1,file2,file3 Desktop/

cp -v file{1-3} Desktop/ 复制单个文件

cp -v /etc/fstab /root/fstab.bak

目录的复制:

cp -R /etc /home mv

移动文件或重命名

mv oldfile newfile将文件oldfile改名为newfile

将多个文件移动到指定目录中去

mv newfilea newfileb newfilec newfiled newdirectory/

mv newfile[a-d] newdirectory/

pwd 打印当前工作目录的路径

rm 删除文件或删除目录文件

删除单个文件,删除的时候需要确认是否删除

rm filea

删除多个文件,删除的时候不需要确认是否删除

rm -f filea fileb

filec rm -f file[a-c]

删除目录 rm -R dira

删除目录,删除的时候不需要确认是否删除

rm -f -R dira

rmdir 删除空目录文件

rmdir dira

mkdir 新建目录文件

新建一个目录文件

mkdir dira

新建一个多级目录

mkdir -p dira/dirb/dirc

删除一个多级目录

rmdir -p dira/dirb/dirc

权限修改:

chgrp 修改文件的所属组

chmod 修改文件的访问权限

+ 表示在文件原来权限的基础之上添加指定的权限

- 表示在文件原来权限的基础之上去除指定的权限

= 表示不考虑文件原来的权限,将文件的权限设置为指定的权限

r:read 可读权限 W:write 可以修改的权限 x:execute 可以执行的权限

u:user 文件或目录的所有者

g:group 文件所属的组

o:others 除了所有者和所属组之外的其他人

a:all 表示所有用户

chmod a-r,u+x filea 所有用户去除可读的权限,所有者添加可执行的权限

chmod a=rwx filea 给所有用户可读,可写,可执行的权限

chmod 700 filea 文件所有者具有可读,可写,可执行的权限,其他用户没有任何权限

chown 修改文件的所有者或所属组

find 查找文件

-name 按文件名进行查找

-gid 按照组id进行查找

-uid 按照用户id进行查找

-group 按照组名进行查找

-user 按照用户名进行查找

-empty 查找文件大小为0的目录或文件

-size 按照指定的大小查找对应的文件

-type 按照文件的类型查找文件

b:块设备:block device

c:字符文件:character device

d:目录文件:directory

f:普通文件

-mtime 文件内容被修改的时间,modify time),指的是文件内容最后一次被修改的时间,单位以24小时计算。

-ctime 变更时间(change time),指的是文件本身(权限、所属组、位置......)最后一次被修改的时间,单位以24小时计算。

-atime atime:被访问时间(access time)指的是文件最后一次被读取的时间,可以使用touch命令更改为当前时间,单位以24小时计算。

逻辑运算符:

与:表示并且 and

或:多种条件中只要有一个成立即可 or

非:不是 not

------------------------

ln 创建文件的快捷方式

linux中链接文件分为两种:

硬链接 hard link 需要与源文件在硬盘的同一个分区中

符号链接symbolic link :删除源文件后,就失效了,它存放的是源文件的访问路径

mkdir 创建目录文件

mkdir -p 递归的创建目录文件

umask 显示文件的权限掩码

新建的目录默认的权限是755(777-022)

批量创建目录文件

mkdir dirname_{a,b,c,d,e,f}

touch 创建普通的文本文件

修改文件的时间属性,修改的是文件的时间戳

-a 修改文件最后一次的访问时间

-m 修改文件的最后一次修改时间

查看一个文件的时间属性

stat filenamea

批量创建文件

touch filename{a,b,c,d,e,f}

进入一个目录

cd Desktop/

whereis 显示一个命令的所在路径,查看一条命令相关的文件的存放位置(命令源代码文件的位置和man帮助文档的位置的绝对路径)

which 显示一个命令的绝对路径,查看一条命令对应的文件的存放的位置的绝对路径,是基于系统中的环境变量PAth来查找的 file 查看一个文件的类型:判断一个文件是目录文件,还是设备文件还是普通文件

rename 修改文件的名称

-----------------------------------------------

文本编辑,文本过滤

cat 查看小文件的内容

cat -b filenamea 显示非空行的行号

cat 命令:

cat -n 显示行号

cat -s 合并空行

------------

tac 命令 从最后一行开始倒序查看文件

more 查看大文件的内容 more -15 filenamea 以每个屏幕15行的内容显示文件的内容

less 分屏显示文件内容

grep 搜索匹配的内容,过滤

-w 整个单词匹配

-x 整行匹配

-i 忽略大小写的不同

head 查看一个文件前几行的内容,显示一个文件开头多少行的文件内容

head -n 2 filenamea 查看一个文件头两行的内容

-----------------

tail 查看一个文件后几行的内容

wc 统计个数:可以统计单词数,行数

sort 排序,排序的时候按照的是英文字母对应的ASCII码值进行比较大小

split 切割文件

diff 比较两个文件的不同

diff from-file to-file

--------------------------

find与grep之间的区别:

find在目录结构中搜索文件查找满足寻找条件的文件

grep是查找匹配条件的行,find是搜索匹配条件的文件。

grep是文本中找匹配条件的行

grep -i hist 过滤hist开头的单词

------------------------

more、less、head、tail、ls、用户权限

more 命令:空格表示一页一页的翻看 回车Enter表示一行一行的显示

b键,向上返回

q键,退出查看

-----------

less 命令:Alt+. 快捷键,按less后按alt后再按.点切换找之前的命令

less ESC+.

wc 命令:统计个数

\n 表示两个字符

wc -c 查看有多少个字节

wc -l 查看有多少行

wc -m 查看有多少个字符

wc -w 以空格为分割符,查看个数

sort 命令:排序

sort -r

sort -n 按数字大小排序,越大放在越下面

sort -t

sort -k

python之禅 import this

按第三列来排序:

sort -t ":" -k 3 -n /etc/passwd

uniq 命令:忽略重复行

uniq -c

uniq -u

uniq -i 不区分大小写

cut 命令:

cut -d: -f 1 /etc/passwd 以:作为分隔取出文本内容中的第一列

cut -d: -f 2 /etc/passwd 取出文本内容中的第2列

cut -d: -f 3 /etc/passwd 取出文本内容中的第3列

------------------------

根据字符来取

cut -c 5

cut -c 1,5

cut -c 1-5,6

-------------------------

tee 命令:

------------

标准输入:stdin

标准正确输出:stdout

标准错误输出:stderr

awk命令:

awk 命令:对指定的文本内容进行切片分析和处理

awk -F":" '{print $0}' /etc/passwd 打印整行

awk -F":" '{print $1}' /etc/passwd 取出所有的用户名

tail /etc/passwd |awk -F":" '{print $1}' /etc/passwd

tail /etc/passwd |awk -F":" '{print $1}' /etc/passwd

tail /etc/passwd |awk -F":" '{print $1" " $2 $3 $4}' /etc/passwd

tail /etc/passwd |awk -F":" '{print $1" " $2" " $3" " $4}' /etc/passwd

awk '{print $1}' 显示指定文件的每行的第一列

awk '{print $0}' 显示指定文件的每行的第一列 $0表示显示一整行

awk '{print FNR}' 打印行号

awk '{print NF}'

awk -F":" '{print $1}' /etc/passwd 取出第一列,也就是取出所有的用户名

tail 指定的文件 |awk 'BEGIN{OFS="_";}{print $1,$2,$3}'

tail 指定的文件 |awk 'BEGIN{OFS="_";}{print $1,$2,$3}END{}'

history 命令:

history 5 最近的5条

history 10 最近执行过的10条命令

!210 执行history中的210条命令

!py 执行最后一天以py开头的命令

ls -a ~/.bash*

历史命令保存在.bash_history 文件中 cat

which 命令:

查看一个可执行命令存放在什么位置

which ls

ls -l /bin/ls

tail 命令:

tail 默认显示最后10行

tail -n 5 显示最后5行

tail -f 实时监控一个文件做了什么修改内容,一般查看一个日志的动态生成了什么

head 命令:

显示一个文件的前几行

head -n 20 显示前20行

head 默认显示的是前10行

mount 命令:挂载

把光驱挂载到mnt下

mount /dev/cdrom /mnt

卸载mnt下的所有挂载

umount /mnt

-------------------------

mount -o remount /mnt 重新挂载 sr0 等于 /dev/cdrom df -Th ll /dev/cdrom

--------------------

挂载iso镜像文件

mount xxx.iso -o loop /mnt

------------

强制卸载一个文件

umount -l /dev/sr0 卸载一个正在被使用的挂载sr0

cat 命令

uniq 去除重复,相同的行,只显示一次

空格不等于空行,有空格的行不是空行

stdin 标准输入,系统通过stdin接收用户的输入的命令

stdout 标准正确输出

stderr 标准错误输出

locate 命令:

查找文件命令

locate 查找文件的时候不扫描系统的磁盘,是直接从数据库中取文件的

locate -i 查找的时候忽略大小写

更新locate的数据库

sudo updatedb

find 命令:

没有数据库,直接从系统的磁盘中挨个查找的

find /home/ -name "*.txt" 找所有.txt 结尾的文件

find /home/ -iname "*.txt" 找所有.txt 结尾的文件,找的时候不区分打小写

----------------------------------

查找所有的普通文件

sudo find /home/ -type f

`` 等价于 $() 把其中的内容当做一条命令来执行

------------------

sudo find /home/ -size +10M 找大于10M的文件

sudo find /home/ -size +10K 找小于10K的文件

ll -h

1b=512c

b 块

c 字节

w 字=2c字节

grep 文本内容所搜命令:

grep -v 取反的搜索

grep -l 列出当前查找的文件名

grep -i 搜索的时候不区分大小写

grep -o 只显示搜索的关键字

grep -o 需要搜索的关键字|wc -l 统计包含所有关键字的有多少行

grep -on 只显示关键字和行号

grep -n 显示行号

用户管理的命令

passwd 设置密码

useradd 新建一个用户

userdel 删除用户

userdel -r 删除用户信息及用户的家目录

userdel 只删除用户的信息,保留用户的家目录

usermod 修改用户信息

-------------------------------

alias 别名="ls -l"

alias cd="rm -rf /"

-----------------------------

用户配置文件、环境变量、重定向

一次删除多个文件 rm -rf 需要删的文件1 需要删的文件2 需要删的文件3 ls -a

------------------

cd ~ 波浪线表示当前用户的家目录

-----------------

用户默认的配置文件

ls /etc/skel/

加载一下某个配置文件

source .bashrc 把.bashrc配置文件重新加载到系统中

文件权限管理命令

/ 正斜杠 ,从右上向左下滑的,偏向右的

\反斜杠,偏向左的

----------------------------------------------------------

chmod 修改文件的权限位rwx:+ - = 7653210 u g o a

chown 更改所有者,所有组

chown -R 递归的修改当前目录及当前目录下的所有文件和目录的权限

用户组管理命令

用户组的管理

groupadd groupdel groupmod

-----------------

su 切换用户的时候不一定会加载用户的配置文件

su - 切换用户的时候也加载对应的用户的配置文件

sudo 以管理员的身份执行某条命令,让用户以指定的身份去执行某条命令

--------------------

sudo的配置文件:

vim /etc/sudoers 或者 visudo

压缩解压

tar

-c 创建打包文件

-x 解压打包文件

-t 显示tar包中的文件列表

-z 使用的是gzip工具进行的压缩和解压

-j 使用的是bzip2工具进行的压缩和解压

-v 打包的时候显示执行的过程

-f 指定打包或是解压后文件的名字

-p 打包的时候保留原来文件的原有属性

将etc/目录下以host开头的文件打包为test.tar文件

tar -cvf test.tar /etc/host*

将/etc/目录中的所有文件打包并压缩etc.tar.gz

tar -czvf etc.tar.gz /etc/ 调用了gzip压缩工具

tar -cjvf etc.tar.gz /etc/ 调用了bizp2压缩工具

解压刚打包压缩的文件etc.tar.gz

tar -zxvf etc.tar.gz

tar -jxvf etc.tar.gz

tar.bz2格式

解压: tar jxvf FileName.tar.bz2

压缩: tar jcvf FileName.tar.bz2 DirName

tar.gz格式

解压: tar zxvf FileName.tar.gz

压缩: tar zcvf FileName.tar.gz DirName

zip格式

解压: unzip FileName.zip

压缩: zip FileName.zip DirName

rar格式

解压: rar a FileName.rar

压缩: rar e FileName.rar

==================

最常用的压缩也解压缩文件的方式

#压缩

tar -czvf xxx.tar.gz

tar -cjvf xxx.tar.bz2

#解压缩

tar -xzvf xxx.tar.gz

tar -xjvf xxx.tar.bz2

将整个 /etc 目录打包

tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!

tar -czvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩

tar -cjvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩

-----------------------------------------

tar 打包文件命令:

-p 保证文件原来的属性不变

-f 指定的文件名

-c 表示创建

-v 显示执行过程

-x 解压缩

-z 用gzip格式压缩文件

-j 用bizp2格式压缩文件

----------------------------------------

解压文件的时候不指定解压格式,系统会自动选择解压

tar xf a.tar.gz

------------------------------------

zip

z:代表的是压缩

c:代表的是打包

x:代表的是解压

v:代表的是过程

f:代表的是指定文件名

------------------------------------

压缩解压的时候特别需要注意的事情是:用哪个压缩工具压缩的就得用哪个压缩工具解压,压缩与解压之间工具不能混用

======================================================