Linux学习总结及一些实用命令

一.关于Linux的一些知识点:


1.Linux是严格区分字母大小写的
2.Linux中一切皆文件,包括硬件、用户都是文件
3.Linux中区分文件不靠扩展名区分(即不靠后缀区分),实际上后缀是可有可无的,Linux是靠权限来区分文件的,但是一般情况下会约定俗成的使用一些后缀(但不强制)

二.实际操作中应该注意的地方


1.dev表示硬件,/dev/hda1 IDE硬盘接口
/dev/sda1 SCSI和SATA硬盘接口

2.挂载:将盘符和分区连接在一起的过程(类似于windows中的盘符)
其中必须要有的分区:
/(即根分区) 和 swap分区(即交换分区,内存的2倍,Linux安装时至少划分根分区/和SWAP分区才能正常安装使用
推荐要有的分区:
/boot(即启动分区,200MB)

3.Linux默认上传、下载的服务器位置是/home目录

4.网卡信息
在配置好网络后,用ifconfig命令查看网卡eth0信息,配置DHCP时,最好用[*],其他的DNS用推荐方式即可;
如果用ifconfig命令没有eth0时,可以用ifup eth0打开网卡

5.基本目录的简要说明
/ 根目录(最高级别的命令,开机默认进入的是/root目录)
/home 用户文件的主目录、家目录
/bin 存放必要的命令
/lib 存放必要的运行库(系统库保存目录)
/boot 存放内核以及启动所需的文件
/mnt 系统挂载目录,通常将软驱和光驱挂载此处
/dev 存放硬件文件
/proc和/sys目录 存放进程和系统信息,在内存上,重启会丢失,用户数据不要放在此处
/etc 存放系统配置文件(/etc/init.d/ :启动脚本目录,/etc/sysconfig/:初始化环境配置文件位置)
/root 超级用户目录
/user 包含一般不需要修改的应用程序等
/var 包含系统产生的经常变化的文件
/temp和/root以及/home可以用来存放数据

三.常用命令


Linux中的命令大部分都是这样的格式:命令 【选项】 【参数】
1.查询目录中内容命令:ls
形式 ls 【选项】 【文件或目录】
选项有: -a 显示所有文件(包含隐藏文件)
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显式inode(节点)

2.权限(Linux是靠权限区分文件的)命令:chmod
隐藏文件的意义:一般都是系统文件,免得用户误操作
默认是10位,形如:-rw-r--r--
其中第1位:表示文件类型,-表示文件,d表示目录,l表示软链接
后面第2位到第10位:每三个划分为一组(即为rw-、r--和r--),分别表示用户读写文件的权限,其中r表示读权限,w表示写权限,x表示执行权限
第一组表示所有者的权限
第二组表示所属组的权限
第三组表示其他人的权限

常用的赋权命令:

# 将三组权限转换成数字,777表示将读、写、运行的权限赋予文件所有人
chmod 777 文件名

# 给所有人赋予可执行该文件的权限
chmod a+x 文件名

修改文件所有者:chown 用户名 文件名

修改文件所属组:chgrp 组名 文件名

3.目录处理命令
创建空文件(是空文件不是空目录!):touch 文件名

建立目录:mkdir 【目录名】 ,如mkdir test

建立递归目录:mkdir -p 【目录】,-p表示创建多级目录,如 mkdir -p test1/test2

切换当前所在目录里:cd 【目录】,
进入当用用户的家目录,一般默认是/root目录:cd 或者是cd ~
进入上次历史目录:cd -
进入根目录:cd /
进入上级目录:cd …
进入当前目录:cd .(基本无用)

<注:>如果忘记要进入当前目录下具体哪个子目录时,可以用补齐命令:cd (子目录的首字母) 再连按两次Tab键,系统会列出当前目录下所有以此开头的子目录(如果有且一个的话会自动补齐)

4.删除目录命令:rmdir 
删除空目录(只针对啥都没有的空目录!!):rmdir 【目录名】

删除目录或者文件:rm -rf 【文件或者目录】,其中-r表示删除目录(系统会询问用户是否进入其子目录并删除),-f表示强制删除(系统不会询问用户)

5.复制命令:cp
形式 cp 【选项】 【源文件或者目录】 【目标目录】
选项有: -r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件则复制链接属性
-a 相当于 -pdr,让复制文件和源文件一模一样
如cp -p test1/test /root就是将test1/test文件复制到/root目录下

6.剪切或者改名命令:mv
形式 mv 【源文件或目录】 【目标目录】
注意:源目录和目标目录相同就是执行改名的操作,不同目录就是执行剪切操作

7.链接命令:ln
形式 ln -s 【源文件】 【目标文件】
-s表示创建软链接,比较灵活

硬链接:
两个文件的节点是一样的,删除源文件时,那么链接文件仍然可用;

软链接:

  1. 软链接有自己的I节点和Block块,只保存源文件的文件名和I节点,并没有实际数据;
  2. 修改任意文件,另一个也会跟着改变
  3. 删除源文件,软链接将不能使用

比如建立Nginx的软链接(以后直接可以全局使用nginx命令):

ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx

8.文件搜索命令:locate、whereis、which、find、grep
1.locate命令
形式: locate 文件名(只能搜索文件名)
locate并不是直接在系统中搜索,而是在/var/lib/mlocate库中搜索,但是这个库不是实时更新的(一天更新一次),所以新建的文件用locate命令不能立刻找到,但是可以用update db命令强制更新更库,然后再用locate命令搜索即可。

2.whereis命令:搜索命令位置的命令,如whereis ls

3.which命令:which 文件名,当用它来搜索命令时,会显示命令的别名;

4.find命令:find 【搜索范围】 【搜索条件(一般时文件名)】,find命令功能强大,但是比较耗费资源。
这里的文件名可以包含通配符(使用通配符时必须使用“”包裹):

匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号里的字符
5.grep命令(在文件中搜索符合条件的字符串):
grep 【选项】 字符串 文件名
选项有: -v 取反,即不包含条件
-i 忽略大小写

9.压缩与解压缩命令
Linux中常用的压缩格式有.zip、.gz、.bz2、.tar.gz、.tar.bzz,虽然Linux中文件没有后缀,这里后缀是让自己可以区分,无实际意义。
9.1 zip
压 缩 : zip 压缩文件名 源文件
如果压缩目录,用zip -r 压缩文件名 源文件
解压缩:unzip 压缩文件

9.2gzip
压缩:    
gzip 源文件(源文件会消失)
gzip -c 源文件 压缩文件 (保留源文件)
gzip -r 目录 (压缩目录下所有子文件,但不能压缩目录)

解压缩:
gzip -d 压缩文件
gunzip 压缩文件

9.3 bz2(此命令不能压缩目录)
压缩:
bzip2 源文件(不保留源文件)
bzip2 -k 源文件(保留源文件)

解压缩:
bzip2 -d 压缩文件
bzip2 -k 压缩文件(保留源文件)
bunzip2 压缩文件

9.4 tar.gz和tar.bz2,由于gz和bz2对目录的压缩和解压缩都有些问题,所以产生了这两个,先打包再压缩

打包命令: tar -cvf 打包文件名 源文件
-c表示打包
-v显示过程
-f指定打包后的文件名

解打包命令: tar -xvf 打包文件名
-x 表示解打包

将打包和压缩以及解压缩集成到一起:
tar -zcvf xxx.tar.gz 源文件
tar -zxvf xxx.tar.gz

9.5 tar.bz2
打包压缩:tar -jcvf xxx.tar.bz2 源文件
解打包解压缩:tar -jxvf xxx.tar.bz2

10.关机重启命令:shutdown
shutdown 【选项】 时间
选项有:-c 取消前一个关机命令
-h 关机
-r 重启
时间:    就是普通时间,如果写为now就会立刻执行

除上述以外,重启也可以用reboot命令,比较安全;init 6也可以但经量不要用,这里捎带一下系统运行级别:

级别    职能
0    关机,init 0指令可以用来关机
1    单用户,相当于windows中的安全模式,启动最小程序,用于系统修复
2    字符界面,不含NFS服务(即文件共享符)
3    完全多用户,及完全的字符界面
4    未分配
5    图形界面
6    重启,init 6指令可以用来重启
查看当前系统运行级别可以使用runlevel指令,会显示两个数字,前者代表用户进入当前级别的上一次进入的级别,如果上一次没有记录,则显示N,后者的代表当前用户的系统级别。
可以用指令id:3:initdefault来修改默认系统运行级别

11.清屏命令:Ctrl+l

12.挂载命令:mount
挂载即分配盘符,Linux中所有的存储设备(U盘、光盘。。。),都必须挂载后才能使用。
12.1 查询与自动挂载
mount 查询系统中已经挂载的设备
mount -a 一句配置文件/etc/fstab的内容,自动挂载
12.2 挂载命令格式:
mount 【-t 文件系统】 【-o特殊选项】 设备文件名 挂载点;
说明如下:
【-t 文件系统】 加入文件系统类型来制定挂载类型,可以是ext3、ext4、iso9660等文件系统,如果挂在光盘,默认是iso9660类型;
挂载点:Linux中常用空白目录来做挂载点。

【典例】挂载光盘
1.建立挂载点 :mkdir /mnt/cdrom
2.挂载光盘:mount -t iso9660 /dev/cdrom /mnt/cdrom
即将设备文件/dev/cdrom挂载到对应的挂载点/mnt/cdrom文件目录上方便读取,后面的读取直接到/mnt/cdrom读取即可
3.卸载光盘 umount 设备文件名或者挂在短 (注意,卸载时必须退出挂载点,否则无法卸载)

【典例】挂载U盘
1.fdisk -l (用来查看U盘的设备名,一般是sdb1,查到啥写啥,其中sda是虚拟机,另一个就是U盘设备名,这里不支持NTFS格式的,要想支持另下插件)
2.流程一样,如果没有挂载点就新建挂载目录mkdir /mnt/usb
3.进行挂载,mount -t vfat /dev/sdb1 /mnt/usb,这里的vfat相当于fat32
4.卸载 umount 设备文件名或者挂在短 (注意,卸载时必须退出挂载点,否则无法卸载)

13.创建、追加文件内容
之前可能不管创建还是追加,都是直接vim xxx的方式来完成,此外其实cat也可以搞定,主要如下:

# 若test.txt文件存在,则清空并写入内容;否则创建该文件并写入内容
cat <<EOF> test.txt
>test1
>EOF

# 若test.txt文件存在,则不清空直接在原文件后追加;否则创建该文件并写入内容
cat <<EOF>> test.txt
>test2
>EOF

注:上述EOF可以换成任意字符,用于定义文本内容的开始输入和终止输入的标志。

四、之后遇见的实用命令
【重要】最重要的是装完无法联网;
【解决方案】网络的配置(修改成桥接模式),默认CentOS7默认网卡ens33是不开机自启的,手动更改配置文件ifcfg-ens33(不同版本网卡名字可能会有所差异,请随机应变(●ˇ∀ˇ●)):

cd /etc/sysconfig/network-scripts 
vi ifcfg-ens33

# 更改ONBOOT=no为ONBOOT=yes保存退出

# 重启网络服务
sudo service network restart

1.shell脚本的执行
关于脚本命令xxx.sh文件运行时,不能进入所在目录直接执行xxx.sh命令,这样会报错:-bash: startup.sh: command not found,应该用以下的一些命令执行脚本。

//法1:在脚本所在目录下,其中./表示当前目录,一定不能掉
# ./xxx.sh

//法2:用绝对路径来执行
# 父目录1/父目录2等/xxx.sh

//法3:在脚本目录下,可以用bash或者sh命令执行
# bash(或者sh) xxx.sh

【注】脚本写完后,需要给定权限才能变绿(可执行):chmod a+x xx.sh

2.关于防火墙
1.查看防火墙状态

# systemctl status firewalld

2.开启防火墙(关闭我想你应该会了,将start改为stop)

# systemctl start firewalld

3.禁止防火墙开机启动

# systemctl disable firewalld

4.配置防火墙开放端口并重新载入

# firewall-cmd --permanent --zone=public --add-port=8080/tcp

# firewall-cmd --reload

5.查看防火墙开放的所有端口

# firewall-cmd --zone=public --list-ports

6.查看防火墙是否开放某个端口

# firewall-cmd --zone=public --query-port=8080/tcp

7.将防火墙中已开放的端口删除(即不对外开放)

# firewall-cmd --zone=public --remove-port=8080/tcp

3.关于端口
1.端口使用情况查看

# netstat -tunlp

结果如下:

Linux查询指定端口号 lsof -i:8080 (需要安装 yum install lsof)

2.查看监听端口

netstat -ano

3.网卡信息查看

# ifconfig

4.查看端口状态

netstat -lnp|grep 8081(端口号)

4. 时间同步
 解决CentOS已经设置为GMT+8后时间不同步的问题:

yum -y install ntp
systemctl enable ntpd
systemctl start ntpd
ntpdate -u cn.pool.ntp.org

5.文件内部的删除命令
 在使用vim xx.conf文件后,大量内容需要删除的时候,总不能一直按着退格键吧:

整行删除:光标移至待删除的行上,dd命令即可,或:.d;
第5行(包含)到第10行(包含):5,10d;
将光标移动到第5行:5G;
将光标直接移动到末行:G;
注:其中d表示删除,.表示当前行,即当前光标所在的行,在上述命令也可以用,比如删除整个文档中的内容,可以G到末行,然后输入:1,.d,即删除第1行到当前行(末行)所有内容。

6. 后台运行
 在Linux中,运行脚本,很多时候会直接进入程序的控制台,这样就不能干其他事了,使用如下命令可以让程序在后台运行,不会自动进入控制台:

# 后台运行/root/test.php程序,并追加日志文本,&符号不能忽略
nohup /root/test.php(命令文件) &
# 根据提示追加如下命令,将日志文件写入到nohup.out文件中,不指定默认就是这个文件
appending output to nohup.out

# 查看后台运行的进程
jobs -l

# 结束进程,可以先用上述命令查看进程号
kill -9 进程号

7. 配置SSH免密登录
# 生成密钥,一路回车,不要设置密码

ssh-keygen -t rsa

使用下面的命令进行远程复制,如果远程机器上配置过authorized_keys将会被覆盖(这种做法只适合远程机器没有进行过SSH配置的情况)

scp -p ~/.ssh/id_rsa.pub root@<remote_ip>:/root/.ssh/authorized_keys

如果A机器已经授权可以免密登录B机器,如果现在也要让C机器可以免密登录B机器,作如下操作:
首先在C机器上生成密钥,然后将id_rsa.pub文件中的内容追加到B机器的authorized_keys文件中,
可以先将C机器上的公钥复制到B机器上的/tmp目录下,然后再进行追加到授权文件中:

# 1. 将公钥复制到远程机器上的临时目录中
scp -p ~/.ssh/id_rsa.pub root@10.4.37.124:/tmp
# 2. 登录到远程机器上,将公钥内容追加到授权文件中
cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys

注:同时授权多台机器可以SSH免密登录,只能用上述的第二种方式。、

8. 修改Host
命令如下:

# 绑定hosts
vim /etc/hosts

# 绑定完让host立刻生效 
hostname search.xxxx.com(定义的主机名)

10. 查看系统类型

cat /etc/redhat-release 

11. fuser命令无法识别

yum install psmisc

12. 实时查看日志
实时查看日志 tail -f xxx.out


14. 查看本机的公网IP

curl icanhazip.com

16. 执行脚本
执行.sh提示权限不够,需要对脚本文件赋权chmod +x xxx.sh

17. 端口占用
查看占用端口的程序(i后面的:不能丢!!),如:lsof -i:30001

18. 创建多级目录
创建目录以及子目录:mkdir -p test/test1

19. 删除多级目录
删除目录以及子目录:rm -rf test

20. vim粘贴代码混乱
vim 粘贴格式时,自动缩进,注释连续,解决:粘贴前先:set paste,然后再粘贴;如果又需要缩进了,再设置:set nopaste即可
Linux系列学习汇总:https://blog.csdn.net/wade3015/article/details/89403596

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值