Linux系统基础命令

1. Ubuntu图形界面操作

与Windows界面的对比

文件管理的不同:  
Linux只有一个根目录;Windows会有很多盘符;  

任务栏的不同:
Linux的任务栏默认在左侧;Windows默认在底部(可变);  

图形编辑栏的不同:  
Linux的编辑栏在左上方,并且是隐藏的,鼠标移动过去会显示;Windows的编辑栏在右上方;  

gedit:文本编辑工具,可读可编辑
vim编辑器

2. 绝对路径与相对路径:

绝对路径: 从根目录算起的路径叫做绝对路径,比如: /home/python
相对路径: 从当前目录算起的路径叫做相对路径, 比如: ./AAA ../BBB
路径的使用总结: 如果离当前目录近使用相对路径,如果离根目录近使用绝对路径,如果进入的是中间目录建议使用绝对路径

3. Linux终端命令格式

格式command [-options] [parameter]
* 提示:有些命令选项可以放到参数的后面,但是:scp 选项必须要放到命令名的后面

学习终端命令的原因:

Linux刚出世时没有什么图形界面,所有的操作全靠命令完成,近几年来,尽管Linux发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux命令行的应用还是占有非常重要的席位.  
学习Linux命令的原因:在职场中,大量的服务器维护工作都是在远程   通过SSH客户端来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成.如磁盘操作、文件存取、目录操作、进程管理、文件权限    设定等.  
Linux发行版本的命令大概有200多个,但是常用的命令只有10多个而已.

4. 查阅命令帮助信息与小技巧:

查看命令帮助:

xxx --help  
command --help查看command命令的帮助信息;  

man command 查阅command命令的使用手册;manual  
空格键 显示手册页的下一屏
Enter 键 一次滚动手册页的一行
b   回滚一屏
f   前滚一屏
q   退出
/word   搜索 word 字符串

小技巧:

Ctrl l 清屏 = clear
Ctrl shift +    放大
Ctrl -          缩小
Ctrl c 终止当前正在运行的一个程序

5. (重要)Linux十大常用命令

5.1. ls 查看当前目录下的内容

ls 查看当前目录下的内容    
-a  查看隐藏文件 .开始的文件默认是隐藏的 all
-l  查看文件的详细信息 以列表的方式输出  list列表
    第一个字母是d代表是目录
              -代表是普通文件

-h  显示文件大小的单位(以合适的单位)  human begin friend 人类友好
扩展: 
-i  显示文件的编号<iNode编号 通过该编号可以唯一确认一个数据文件>  
ls -al 显示隐藏文件并且以列表方式显示 , ll->ls -l  

ls:支持的通配符: _,? , [], []:表示匹配任意列举中的一个字符

5.2. cd

cd 目标路径 进入到目标目录中  
cd . 切换到当前目录
cd ..   进入上一级目录
cd ~    === cd /home/python  === cd:  === 切换到当前用户的目录
cd -: 切换到上一次目录

5.3. pwd

pwd 查看当前所处的位置

5.4. mkdir

mkdir 新目录名称  创建目录
-p 在创建多级目录

5.5. touch

touch 文件名称    如果文件不存在,新建一个文件;存在则修改文件的时间属性;

5.6. rm

rm 文件名称       删除一个文件    
rm -r 目录名称    删除一个目录  
-r: 以递归的方式删除文件夹里面的所有内容  
-i: 显示删除的时候提醒信息
-v: 显示删除后的描述信息
-d: 删除空目录
-f: 如果文件或者目录存在则删除,否则就不删除也不会报错

5.7. cp拷贝

1 cp 文件名 路径: 把文件拷贝到指定路径
2 cp 路径/文件名 路径: 把指定路径的文件拷贝到指定路径
3 cp 文件名 路径/新的文件名 : 先把文件拷贝到指定目录然后再重命名
4 cp 文件夹 路径 -r: 拷贝文件夹 -r:以递归的方式把文件夹下的所有文件拷贝过去  

1 -i:拷贝文件的时候如果指定目录有该文件需要显示提醒信息
2 -v:显示拷贝文件的路径描述
3 -r:以递归的方式拷贝文件夹里面的所有内容  
4 -a: 保留文件原有权限,-a包含-r,也就是使用-a也可以拷贝文件夹--demo:文件的时间属性等可以得到保留;

5.8. mv移动(剪切)

mv 源文件名称 目的目录  
1 mv 文件名 路径: 把文件移动到指定路径
2 mv 路径/文件名 路径: 把指定路径的文件移动到指定路径
3 mv 文件名 新的文件名: 重命名
4 mv 文件夹 路径: 把文件夹移动到指定目录,不需要加上-r  

1 -i:移动文件显示提醒信息
2 -v:显示移动后的路径描述

5.9. tree

tree: 以目录树方式显示当前文件夹信息
tree / : 以目录树方式显示指定路径的文件信息

5.10. clear

Ctrl l 清屏 = clear

6. Linux命令选项的使用

6.1. 重定向命令

输出到终端转而输出到文件中 

ls > a.txt  
覆盖输出重定向 如果文件不存在就会新建文件 ;如果文件存在就会覆盖原有文件的内容.  
ls -al >> a.txt  
追加输出重定向  如果文件不存在就会新建文件;如果文件存在就将输出结果追加到原有文件末尾  

总结:ls, cat, tree都可以使用重定向

6.2. cat xxx | more

查看/合并文件内容cat  
作用1  查看文件内容 全部直接显示;不能进行编辑;  
提示:适合查看小型文件,大型文件使用分屏方式显示(more) 
作用2  文件的合并:    cat 文件1 文件2 ..... >> 文件  

分屏显示more  
作用  查看文件内容  将文件内容分屏显示  
    f:表示下一页
    空格:表示下一页
    回车: 表示下一行
    b:表示上一页
    q:退出

管道|  
命令 | 命令 | 命令 | 命令
把一个命令的输出当 作右边命令的输入
总结: ls /bin | more , cat, tree, ls都是可以结合管道使用完成分屏显示的
ls -al / | more
分屏显示为内容 more 文件名  或者 cat 文件名 | more

6.3. 建立链接文件ln

软连接:ln -s 源文件 目标文件  
* 可以理解成快捷方式;可以链接目录;源文件删除了--软链接就失效了;提示:创建软连接不会对硬链接数加1  

硬连接: ln   源文件 目标文件  
* 硬链接本质是同一个数据文件的,不同名称,删除硬链接只是删除了一个名称而已;硬链接只能链接文件本分区; 提示:创建硬链接硬链接数会加1

提示:如果创建的软链接没有和原文件在同一个目录里面,那么需要使用绝对路径创建软连接

6.4. grep和find

6.4.1. 文件内容搜索grep

grep 搜索文件内容 文件名称
-n:行号, -i:忽略大小写 -v: 取反
grep -i hello grep.txt   
grep -in hello grep.txt   
grep -inv hello grep.txt 忽略大小写,显示行号反选条件

^,$ [], . 支持的正则表达式
grep "a" 8.txt : 根据指定内容在文件中进行查找
grep '^itcast' grep.txt  以开始
grep -i '^itcast' grep.txt
grep -i 'cn$' grep.txt   以结束

grep 'h.i' grep.txt      .匹配除换行符之外的任意一个字符
grep 'hello.' grep.txt
grep 'hello[AB]' grep.txt 匹配集合中任何一个字符
grep 'hello.' grep.txt

6.4.2. 查找文件find

find 可以根据文件特征查找符合特征的文件;会搜索指定目录及其所有的子目录  
find . -name ".txt": 在当前目录查找后缀是.txt的文件, -name根据文件名查找
find . -perm 666: 在当前目录查找文件权限是可读可写的, -perm根据权限查找

find 路径 -name '名称'
find . -name '*.py'
find . -name '?*.py' 匹配.py文件 名字至少有一个字符

名称不支持正则 但是支持 通配符 
    * 匹配0或者任意多个任意字符
    ? 匹配1个任意字符  
    []
        查看当前目录下所有的txt文件        ls *.txt
        将当前目录下所有的py文件移动到桌面   mv *.py ~/Desktop/

查找当前目录及其子目录下所有 名字为13.txt的文件 find . -name 13.txt

    find . -name '?.py'
    find . -name '*.py'
    # 查找整个系统 路径写/ sudo代表使用超级用户权限 python管理员用户
    sudo find / -name '*.py'
    find . -name '[AB].py  

6.5. 通配符

通配符是一种特殊字符,用来模糊搜索文件。

统配字符注意有
*:代表0个或多个任意字符
?:代表任意一个字符
[列举的字符]:代表的任意一个字符

ls cp mv rm cd 等命令都支持通配符

6.6. tar打包及压缩

提示 : tar命令的选项前的'-'可以省略

-c 创建归档文件 
-v 显示详细过程
-f 指定归档文件名称;提示-f必须放到所有选项的后面
-x 解归档
-C: 大C--指定解压缩的路径: tar -jxvf test.bz2 -C ../BBB

打包 归档 本质上只是将很多文件拼接成一个大文件  -- 归档文件.tar
    没有压缩                tar -cvf mytxt.tar *.txt  

解包 解归档    将归档文件中的源文件都释放出来
     tar -xvf mytxt.tar

-z gzip压缩工具简称    把归档文件压缩  .tar.gz .tgz
    打包并且使用gzip压缩 tar -zcvf mytxt.tar.gz *.txt

    解包并且使用gzip解压缩 
        tar -zxvf mytxt.tar.gz

-j bzip2压缩工具简称  

zip的压缩及解压缩  
    zip test *.txt -> test.zip ,提示:压缩包的后缀不需要指定默认是.zip
    unzip test.zip -> 得到是压缩包里面的文件
    unzip -d ./123 test.zip -> 解压到指定路径 , -d:表示解压的路径

6.7. 修改文件权限chmod

change mode修改权限  
字母权限设定法;数字权限设定法
1 -r(4):可读 -w(2):可写 -x(1):可执行;0为没有权限
2 u:当前用户 g: 同组用户 o: 其它用户 a:所有用户
3 +:添加权限, -:撤销权限 , = : 赋值权限

4 chmod 000 1.txt : 全部没有权限
5 chmod a=- 1.txt chmod a= 1.txt : 全部没有权限
6 chmod 777 1.txt chmod a=rwx 1.txt : 都权限,可读可读可执行
7 chmod 664 1.txt chmod u=rw,g=rw,o=r 1.txt 设置不同用户不同权限

6.8. (了解)命令

查看命令位置which

which cd 是查看不了命令所在目录,原因是:cd属于内置命令

Linux命令是分为内置命令和外部命令
内置命令是在系统启动时就载入内存执行效率高
外面命令是系统的软件功能,需要时载入内存

切换管理员账号sudo -s

sudo 可以使用root用户的权限执行后面的指令
sudo find / -name '*.py'
sudo -s  切换到root用户

查看当前用户whoami

查看所有的登陆账户who

设置用户密码passwd

超级用户可以设置任何用户的密码 而不需要知道原来用户的密码;  
用户也可以直接使用该命令来修改自己的密码,而无需在命令后面使用用户名,但是需要输入密码;

退出登陆账户exit

如果是图形界面,exit退出当前终端;
如果是使用ssh远程登录,exit退出登陆账户;
如果是切换后的登陆用户, exit退出则返回上一个登陆账号;  
如果没有切换到别的是用户使,  exit退出终端;

关机重启reboot,shutdown

reboot  重新启动操作系统  

shutdown –r now 重新启动操作系统,shutdown会给别的用户提示
shutdown -h now 立刻关机,其中now相当于时间为0的状态
shutdown -h 20:25   系统在今天的20:25 会关机
shutdown -h +10 系统再过十分钟后自动关机

7. 远程登陆与远程拷贝

7.1. ssh介绍

MAC已经自带 windows需要安装openssh–xxx.exe

SSH是专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用户之间进行资料拷贝。

SSH为Secure Shell的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。

利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台。SSH 在正确使用时可弥补网络中的漏洞。SSH 客户端适用于多种平台。几乎所有 UNIX 平台—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

使用SSH服务,需要安装相应的服务器和客户端。客户端和服务器的关系:如果,A机器想被B机器远程控制,那么,A机器需要安装SSH服务器,B机器需要安装SSH客户端。

7.2. 在Ubuntu安装ssh

A.安装ssh服务器  
sudo apt-get install openssh-server

B.远程登陆  
ssh 用户名@IP

使用ssh访问,如访问出现错误。可查看是否有该文件 ~/.ssh/known_ssh 尝试删除该文件解决。

7.3. ssh: 远程登陆

使用ssh远程连接工具
ssh : 可以远程登陆服务端可以通过vim修改文件  

在服务器上命令行中 ifconfig
192.168.152.101

进入命令行 ssh python@服务器IP
         ssh python@192.168.152.101
         yes
         输入用户名对应的密码

scp在工作的时候比较少用; FZ

7.3.1. scp: 远程拷贝

scp:远程拷贝  
1 scp 1.txt python@192.168.107.132:/home/python/Desktop ,把本地文件拷贝到服务器端
2 scp -r test python@192.168.107.132:/home/python/Desktop,把本地文件夹拷贝到服务器端
3 scp python@192.168.107.132:/home/python/Desktop/1.txt . , 把服务端的文件拷贝的本地
4 scp -r python@192.168.107.132:/home/python/Desktop/test . , 把服务端的文件夹拷贝的本地

7.4. 小结

1. scp可以实现Ubuntu远程连接和文件上传和下载
2. 在windows系统上远程连接Ubuntu需要安装OpenSSH软件
3. FileZilla工具通过SFTP协议实现文件上传和下载

8. 软件安装与卸载

8.1.1. 简介

小结  
Ubuntu软件安装常见的两种方式(和Windows系统中双击exe文件安装软件的方式有很大的不同,)
1.1 下载deb扩展名的安装包直接双击安装
1.2 通过apt-get包管理器从软件源中安装,90%都是以这种方式安装;(图形化和终端命令两种方式)

Ubuntu镜像源默认在国外,国内下载比较慢,需要将镜像源更改到国内
2.1 通过Ubuntu软件中心更改
2.2 手动更新sources.list文件并且需要执行sudo apt-get update 进行更新

8.1.2. Ubuntu软件操作的相关命令

sudo apt-get update  更新源

sudo apt-get install package 安装包

sudo apt-get remove package 删除包

8.1.3. 更新Ubuntu软件下载地址(软件源)

更新Ubuntu软件下载地址  
1. 寻找国内镜像源
所谓的镜像源:可以理解为提供下载软件的地方,比如Android手机上可以下载软件的91手机助手;iOS手机上可以下载软件的AppStore  
2. 备份Ubuntu默认的源地址
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup  
3. 更新源服务器列表  
4. 更新源和下载  
sudo apt-get update
做完此步骤之后,就可以进行apt-get install 下载了

(了解)软件源介绍

我们使用最多的是通过apt-get方式安装软件,已设定软件源中几乎包含了我们常用的所有软件。

那么什么是软件源: 软件源本质上就是一个软件仓库,Ubuntu在全世界各地有很多的软件仓库,这个仓库中包含了Ubuntu系统中的各种软件,需要什么软件,只要记得正确的软件的名字,就可以简单的通过 sudo apt-get install 命令安装,而且软件的卸载也非常方便,只需要运行 sudo apt-get remove 命令即可。而平时使用最多的软件安装方式就是通过软件源的方式。

其实通过软件源安装软件的原理很简单,Ubuntu系统自带了一个名叫 apt 的软件,它主要负责从系统中一个叫源列表(/etc/apt/source.list)的文件中读取软件源的网址信息,查找可以包含软件的软件源的网址,然后就从这个网址上把指定的软件给下载下来,然后由apt程序在本地进行一些解压和安装的操作。

软件源分为两类: Ubuntu官方软件源, PPA软件源(Personal Package Archives,也就是个人软件包集).

Ubuntu官方软件源中包含了Ubuntu系统所用到的绝大部分软件,在源列表文件中,记录了官方源的地址。

那么有同学有疑问,官方有软件源,为什么还有PPA,这是因为系统自带的源是优先的,我们肯定需要一些其他的软件包,而又不想直接下载deb格式的文件,又不想自己手动编译安装软件,所以这就用到了十分重要的的PPA源.

大家发现我的source.list和大家的文件内容不一样,很明显我更改了软件源,这是因为Ubuntu的官方软件源的服务器在国外,而从国内要访问国外的网站都需要经过“长城”来验证这个网站是否可访问,另一个原因服务器在国外,距离太远,访问速度没有直接从国内下载块。

重新编辑将新的软件源信息替换到source.list 也可以通过软件中心设置

9. (了解)Linux主要目录速查表

重点: /home/用户名 是用户的家目录.

Linux主要目录速查表(了解)  
* /:根目录,**一般根目录下只存放目录**,在 linux 下有且只有一个根目录,所有的东西都是从这里开始
    * 当在终端里输入 `/home`,其实是在告诉电脑,先从 `/`(根目录)开始,再进入到 `home` 目录
* /bin、/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等
* /boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:`/boot/vmlinuz`,系统引导管理器:`/boot/grub`
* /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱`mount /dev/cdrom /mnt`
* /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 
    * /etc/inittab
    * /etc/fstab
    * /etc/init.d
    * /etc/X11
    * /etc/sysconfig
    * /etc/xinetd.d
* /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下
    * `~` 表示当前用户的家目录
    * `~edu` 表示用户 `edu` 的家目录
* /lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
* /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下
* /mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
* /opt:给主机额外安装软件所摆放的目录
* /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
* /root:系统管理员root的家目录
* /sbin、/usr/sbin、/usr/local/sbin:放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能"查看"而不能设置和使用
* /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
* /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
* /usr:应用程序存放目录
    * /usr/bin:存放应用程序可执行二进制文件的目录
    * /usr/share:存放共享数据
    * /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
    * /usr/local:存放软件升级包
    * /usr/share/doc:系统说明文件存放目录
    * /usr/share/man:程序说明文件存放目录
* /var:放置系统执行过程中经常变化的文件
    * /var/log:随时更改的日志文件 
    * /var/spool/mail:邮件存放的目录
    * /var/run:程序或服务启动后,其 PID 存放在该目录下
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值