Linux下的命令笔记 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

Linux下的命令笔记

发表时间:2020-10-18

发布人:葵宇科技

浏览次数:64

文章目录

    • 常见问题
    • Linux常用命令
    • linux中巧用ctrl-z后台运行程序
    • 练习过的Linux常用命令
    • Linux目录结构
    • VI编辑器
    • 虚拟机网络模式
    • linux常用命令
      • 增删改查
    • 文件权限
    • 用户操作
    • 用户组操作
    • 软硬链接
    • rpm安装使用
    • yum安装mysql 无排版附件
    • 解压.tar.gz格式压缩包配置(安装JDK和Tomcat) 无排版附件
    • 面试使用加分的常见命令
    • 查看进程所占用端口信息:`netstat -lntup`
    • 查看防火墙开放的端口号:`iptables -L -n`
    • 查看程序对应的进程号:`ps aux | grep redis`
    • 编辑防火墙配置文件:`vim /etc/sysconfig/iptables`
    • nginx启动:`cd /usr/local/nginx/sbin` `./nginx`
    • redis启动命令:`./redis-service redis-config`
    • 开放防火墙端口的命令

常见问题

Linux中找不到ifconfig命令的解决方法

Linux常用命令

帮助文档:man 命令:man是manual 或者 命令 --help

-a:显示指定目录下所有的文件,包括隐藏文件
-l:以列表的方式显示文件的详细信息
-h:配合-l以人性的方式显示文件大小

ls:显示目录内容
cd(change directory):跳转路径
pwd(print working directory):显示工作目录的路径名称
touch:创建文件
mkdir:创建文件夹
clear:清空
cat:查看文件,同时查看两个文件重定向到一个文件,命令:cat 1.txt 2.txt > xxx.txt将两个文件合成一个
more:分屏查看文件
history:查看历史命令
find:搜索文件,格式find 路径 选项(-name,-size等) 内容
??如find ./ -name “*.txt” 意思为在当前目录下找以txt结尾的
??如find ./ -size +4k -size -5M 意思为在当前目录下找大于4k小于5M的文件
??如find / -size +500M -size -1G 意思为在根目录下找大于500M小于1G的文件
grep:在文件中搜索内容,-n是显示行数,-v是不包含,^开头符,$结尾符。
??如grep “ntfs” xxx.txt就是在xxx.txt内容中搜素ntfs,grep “^ntfs” xxx.txt就是在xxx.txt内容中搜素ntfs开头的
mv:移动或者重命名
tree:以树的形式查看文件
rm:删除文件,删除文件夹用rm 文件夹名 -r
??[-r]指示rm将参数中列出的全部目录和子目录递归地删除;
??[-f]忽略不存在的文件,强制删除,不给出提示
??[-i]进行交互式删除,即提示yes或no
rmdir:删除文件夹,文件夹不为空则用rm -r
cp(copy):复制,拷贝文件夹copy A gebilaowang/ -r。
ln -s 1.txt 1-softlink.txt:软链接,依赖于原文件,原文件删除则软链接文件看不到,相当于windows的快捷方式
ln 1.txt 1-hardlink.txt:硬链接,相当于复制粘贴

查看设备情况:
ps -aux;top;htop:查看当前运行情况,相当于Windows的任务管理器,杀进程用kill PID
df -h:查看硬盘空间使用情况
du -h:查看当前路径空间使用情况
free -m:查看当前内存情况,-m单位是兆,-g单位是G
ifconfig:相当于Windows的ipconfig,查看网络信息

对用户和组进行操作(体现ubuntu多用户):
sudo useradd shuaige -m:添加用户,cat /etc/passwd文件最后一行多个shuaige则添加成功
sudo userdel shuaige:删除用户,[-r]是同时删除主目录
sudo passwd shuaige:对用户设置密码
su shuaige:切换用户
whoami:查看当前用户名
ssh 用户名@IP地址:远程连接用户
su - 用户名:切换用户同时进入所在目录
将普通用户添加sudo权限:sudo usermod -a -G adm 用户名 然后 sudo usermod -a -G sudo 用户名
groupadd 用户名:将用户添加到组中
chown 用户 文件名:将文件更改用户
chgrp 组名 文件名:更改文件获取其他组中的权限

修改文件权限chmod(change mode):
----------:第一位类型:-是文件,d是文件夹
二到四位是拥有者权限u(user);五到七位是组权限g(group);八到十位是其他人权限o(other)
r(4)是可读文件,w(2)是可写文件,x(1)是可执行权限,七种可能
对应二进制000;全开为111
?例子:chmod u=x,g=wx,o=rwx 1.txt 等价于 chmod 137 1.txt
?意思为拥有者权限为可执行,组权限为可写可执行,其他人可读可写可执行

打包和解包(zcvf-zxvf;jcvf-jxvf):
?[-c]:生成档案文件,创建打包文件;
?[-x]:解开档案文件,解包
?[-v]:列出档案归档解档的详细过程,显示进度;
?[-f]:指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
?[-t]:列出档案中包含的文件
?打包:tar -cvf xxx.tar *.py 将所有的.py文件打包成xxx.tar
?解包:tar -xvf xxx.tar 将xxx.tar解包
?#:打包并压缩: tar -zcvf xxx.tar.gz *.py 将所有的.py文件打包并压缩成xxx.tar.gz
???tar -jcvf xxx.tar.bz2 *.py 将所有的.py文件打包并压缩成xxx.tar.bz2
?#:解压压缩包: tar -zxvf xxx.tar.gz 将xxx.tar.gz压缩包解压
???tar -jxvf xxx.tar.bz2 将xxx.tar.bz2压缩包解压
?#:解压压缩包并指定路径: tar [-z][-j]xvf xxx.tar.[gz][bz2] -C faze/
?压缩后占内存最小的是gz,比gz稍微大一点的是bz2

通配符:*,?,[1-5]跟正则表达式差不多
:重定向,把原本显示在屏幕上的信息存到一个文件中,
??如ls -alh > xxx.txt(将信息存到文件中);ls -alh >> xxx.txt(将信息追加到文件中)

vim编辑器:
?进入vi时是命令行模式,按字母【i】进入插入模式,这样就可以开始输入文字了;
?进入插入模式后,发现输入错误想删除文字则按【ESC】进入命令行模式;
??恢复上一次操作:按字母【u】
??按任何键都失效,按【Ctrl+Q】恢复正常
?在命令行模式下按【:】冒号进入底行模式
??: w filename (输入 「w filename」将文章以指定的文件名filename保存)
??: wq (输入「wq」,存盘并退出vi)
??: q! (输入q!, 不存盘强制退出vi)

linux中巧用ctrl-z后台运行程序

(1) CTRL+Z停止进程并放入后台

(2) jobs 显示当前暂停的进程

(3) bg %N 使第N个任务在后台运行(%前有空格)

(4) fg %N 使第N个任务在前台运行

默认bg,fg不带%N时表示对最后一个进程操作!


练习过的Linux常用命令

命令描述hostname查看当前系统的主机名whoami查看当前登录用户的ifconfig查看虚拟机ipshutdown -h now关机reboot重启pwd:[print working directory]查看光标所在位置clear清屏ls 目录查看指定目录里面的文件或者文件夹touch 文件名创建一个指定的文件mkdir abc创建一个文件夹命令cd 目录进入指定的目录tab键命令补全,目录、文件名补全的作用echo “字符串”将字符串输出到控制台上

Linux目录结构

Linux目录结构:倒树状结构
在这里插入图片描述

目录描述bin可执行命令sbin超级管理员使用的命令opt【**】手动安装软件的目录usr【**】默认安装软件的目录tmp【*】临时目录root【**】root用户的根目录home【**】普通用户的信息etc 【**】配置文件selinux增强linux系统安全的proclinux内核相关信息boot启动程序相关目录mnt挂载相关的目录

绝对路径:以/开头的路径,称之为绝对路径
相对路径:不是以/开头的路径,称之为相对路径
去任何一个目录,可以使用相对路径,也可以使用绝对路径。涉及到目录切换。

VI编辑器

所有的linux系统都自带了这个vi编辑器。
vi编辑器三种模式:
??命令模式:通过命令模式进入到输入模式

??输入模式:只有进入这个模式才可以往文件里面写内容。

??末行模式:在末行模式退出到控制台!

在这里插入图片描述


====================================================== VI编辑器=================================================================
1.vi编辑器是Linux系统中使用最广泛的,而且是默认的文本编辑器

2.文本编辑器的作用:
	修改系统配置文件
	创建用户信息文件
	编辑程序源代码文件
	
3.VI编辑器的模式(三种):
	命令模式:由命令模式进入到输入模式:点击i(o,a,r);由命令模式进入到末行模式 输入:【冒号】
	输入模式:由输入模式退出到命令模式:用ESC
	末行模式:在末行模式输入(w,q,wq,wq!)就可以退出编辑器了!
	
4.VI编辑器的使用:
	打开或新建文件:vi <file>
	编辑文件:i ,或者o ,或者a,或者r
	保存文件: :w <file>(有另存为功能)
	退出编辑器:
	:q(已保存或未更改)
	:wq(保存后退出) 
	:q!(强制退出)

	
5.命令行模式下:
	行内快速跳转:
		^ 行首
		$ 行尾
		w  后一个单词首字母
	行间快速跳转:
		: set  nu    显示行号
		: set  nonu  取消行号
		1G 文件首行
		#G  转到#行(#号代表的是数字)
		G文件末行
		vi [+#] 文件名,光标就会自动到达文件的第#行首! (#表示数字!!!)
	
    在末行模式直接输入:#(#代表的是数字),那么就会直接跳转到第#行!
	

5.删除操作:
	dd	    删除光标所在行
	3dd     从光标所在行,往下删除三行
	d$	    删除光标至行尾
	d^	    删除光标至行首	
	
	在末行模式直接输入:1,20 d 即可删除第#1行到#2行的所有内容!(#代表的是数字)!
	
	撤销操作: u

	
6.复制操作:
	yy	复制光标所在行
	3yy 复制光标所在行及下面2行
	
	y$	复制光标至行尾
	y^	复制光标至行首
	加#,如20yy -----从光标开始计算
	
	在末行模式直接输入:#,$y 即可复制第#行到文尾的所有内容!(#代表的是数字)!
粘贴操作:
	p(小p):  粘贴在光标所在行之后
	P(大p)	    粘贴在光标所在行之前
	
	
7.查找与替换(末行命令):
	查找:  
		由”/”或者”?”开始后跟一个word  
		按n键查找后一个
		按N键查找前一个
	替换:
	  在末行模式,%s/被替换单词/替换成哪个单词

虚拟机网络模式

桥接: 虚拟机ip和物理机ip的地址会在同一个网段。

nat连接模式:虚拟机ip和物理机ip不在同一个网段,虚拟机在访问外网的时候,实际是拿着该虚拟机所在的物理机的ip地址去访问外网。

仅主机模式: 虚拟机和物理机可以通信,但是虚拟机不能访问外网。
在这里插入图片描述

linux常用命令

ls 目录: 查看指定目录里面的文件或者文件夹

ls:查看当前目录【光标所在目录】的文件和文件夹

ls -a 目录:显示指定目录下所有的子文件和子文件夹【包括:隐藏文件】

ls -l 目录:以长输出的方式显示指定目录下的文件和文件夹

注意:在linux系统中所有以.开头的文件都是隐藏文件
??在linux系统中.代表当前目录,…/代表当前目录的上一级目录

增删改查

增加:
??增加文件: touch 文件名 | vi 编辑器
??增加目录: mkdir [-p] 目录名:[递归的] 创建目录
删除: rm -rf 文件|目录
??rmdir 目录:删除空目录
修改: 修改文件或者文件夹的位置和名称
复制(cp)
??cp [-r] 源文件|源文件夹 目标文件|目标文件夹
剪切(mv)
??mv 源文件|源文件夹 目标文件|目标文件夹
查询:
ls 目录:显示一个指定目录下所有的文件和文件夹
??查看文件内容:
????cat 文件名:查看指定文件的内容【将整个文件的所有内容显示到控制台上】
more 文件名:分屏显示指定文件的内容,最后一屏自动退出
less 文件名:分屏显示指定文件的内容, 最后一屏不自动退出
head [-num] 文件名:查看一个文件最前面几行
tail [-num] 文件名: 查看一个文件最后几行

查看文件内容中是否含有指定的内容:
??cat bcd.txt | grep hello
??| : 管道符
??grep : 过滤
??查看文件位置:find / -name bcd:查找的是文件名中含有bcd的文件或者文件夹
??查看文件类型 : file 文件名
touch 文件名: 创建一个指定的文件
mkdir abc : 创建一个文件夹命令
cd 目录: 进入指定的目录
tab键使用: 在linux系统中可以有 命令补全、目录、文件名补全的作用。
echo “字符串”: 将字符串输出到控制台上。
echo “字符串” > 文件名: 将原本输出到控制台上的字符串输出到指定的文件中。[覆盖式重定向]
echo “字符串” >> 文件名: 将原本输出到控制台上的字符串输出到指定的文件中。[追加式重定向]

查看cpu的命令: top 命令
查看磁盘空间大小的命令: df -h
查看内存大小的命令: free -m

hostname:查看当前系统的主机名
whoami:查看当前登录用户的
ifconfig:查看虚拟机ip
shutdown -h now:关机
reboot:重启
pwd:[print working directory] 查看光标所在位置
clear:清屏

查看一个命令如何使用?查看帮助文档
??命令 -–help
??命令 -h
??man 命令:
??百度
??sync:关机之前,最好将内存中的数据保存到磁盘上

文件权限

-rw-r–r-- 1 root root 481 3月 25 22:44 bcd.txt
? ? ? 属主 属组 文件大小 创建时间 文件名
-rw-r–r--:
?第一位:表示文件类型
??-表示这是一个普通文件
??d表示这是一个目录
??l:这是一个连接文件

第二位到第四位:表示当前文件的属主(用户)对该文件的权限
第五位到第七位:表示当前文件的属组(用户组)对该文件的权限
第八位到第十位:表示其它人【既不属于属主、也不属于属组中的用户】对它的操作权限

读写可执行对应二进制111,即读4,写2,可执行1
r:读的权限
w:写的权限
x:执行权限
-:没有权限

root用户:不受权限限制,是一个超级的存在。

修改文件权限[两种方式]:
??chmod u/g/o/a (+|-) rwx 文件(夹)名
??chmod 777 文件名

4.文件权限设置:
??更改文件权限:chmod [ugoa][+ - =][rwx] <file> (用逗号分隔)
??更改文件所有者:chown <owner> <file>
??更改文件所属组:chgrp <group> <file>
??同时更改所有者和所属组:chown <owner:group> <file>

用户操作

添加用户:useradd <username>
设置密码:passwd <username>

切换用户:su <username> 注意:输入的是你将要切换到目标用户的密码

删除用户:userdel [-r] <username>

禁止/解禁用户:usermod [-L | -U] <username>

切换用户:su <username> 注意:输入的是你将要切换到目标用户的密码
查看当前用户:whoami / who am i
查看所有已经登录的用户:who
查看所有登录用户记录:last
强退指定用户:pkill -kill -t pts/3【pts/3从who命令下获取】 或 pkill -9 -u zhangsan

扩展:centos下kill、killall、pkill命令区别
kill命令
pkill命令
kill是用来终止进程的,首先可以通过ps aux查看系统有哪些进程正在运行。在这里插入图片描述
1.用kill来杀死某一个进程

#kill,加选项-9,加PID,表示立即结束进程编号为PID的这个进程
#           -1,加PID,表示重启某个进程
#           -15,加PID,表示安全结束某个进程
#kill -9 PID
#下面表示杀死进程PID为2899的进程
[root@fazehan~]# kill -9 2899

2.用killall杀死一类进程

#killall,加选项-9,加服务名, 表示杀死该服务的所有进程
#             -1,加服务名,表示重启该服务的所有进程
#killall -9 service
#下面表示杀死httpd服务的所有进程
[root@fazehan~]# killall -9 httpd

3.用pkill踢出某个终端
在这里插入图片描述

#pkill,加选项-9,加终端号,表示踢出该终端
#            -1,加终端号,表示重启该终端
#pkill -9 pts/3
#下面表示提出我的远程登录终端pts/3
[root@fazehan~]# pkill -9 -t pts/1
[root@fazehan~]# pkill -9 -u zhangsan

用户信息文件: /etc/passwd 可通过cat /etc/passwd 进行查看,字段之间用冒号隔开,格式为: 用户名:口令:用户标识符号:组标识符号:注释性描述:宿主目录:命令解释器
用户密码文化:/etc/shadow 可通过cat /etc/shadow进行查看

history:查看你输入过的命令[1000]

用户组操作

增加用户组:groupadd <groupname>
创建用户时指定用户初始组:useradd -g <initial group> <username>

删除用户组:groupdel <groupname>

修改用户所在的初始组:usermod -g <groupname> <username>

查看用户所属组:groups <username>

组信息:/etc/group 格式为:组名:组口令:GID:组成员 ?? 组密码信息在/etc/gshadow文件中保存!

软硬链接

??软链接文件:类似于windows上的快捷方式, ln -s 源文件 链接文件; 链接文件完全依赖于源文件,原文件 [更改 | 删除] 软链接文件 [被更改 | 被删除]

??硬链接文件:类似于windows上的复制,但是又有区别, ln 源文件 链接文件; 链接文件不完全依赖于源文件,原文件 [更改 | 删除] 硬链接文件 [被更改 | 不被删除]

rpm安装使用

yum安装mysql 无排版附件

yum install 软件名

在这里插入图片描述
?以安装mysql为例
在这里插入图片描述
第一步进入root用户下: su root

第二步安装mysql客户端、服务器端、开发用到的库以及包含文件: 另外,使用yum list mysql查看当前机子上可用的mysql安装

注意:centos7下会报yum install mysql-server没有可用包,解决方法:

  1. yum -y install wget
  2. wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
  3. rpm -ivh mysql-community-release-el7-5.noarch.rpm
  4. yum install mysql-server
yum -y install mysql   # 安装客户端
yum -y install mysql-server  # 安装服务器端
yum -y install  mysql-devel  # 安装开发用到的库以及包含文件
yum list mysql*  # 查看当前机子上可用的mysql*安装

第三步修改配置信息,添加节点:

[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
lower_case_table_names=1

第四步重启mysqld服务: service mysqld restart/stop/start

第五步配置超级用户名和密码: mysqladmin -u root password 123456

注意:【mysql版本为在5.1.73,5.6以后的高版本解决方法mysql下的user表为空】执行这一步操作可能会出现以下错误:
??mysqladmin: connect to server at 'localhost' failed
??error: 'Access denied for user 'root'@'localhost' (using password: NO)'


解决方法:
??进入mysql服务配置文件vi /etc/my.cnf
??在[mysqld]下加入 skip-grant-tables
??重启mysql服务 service mysqld restart
?? 在终端下进入mysql,无需密码: mysql -uroot -p
?? 在mysql下执行以下命令:
?? ??查看所有数据库
?? ?? mysql> show databases;
?? ?? 使用mysql数据库
?? ?? mysql> use mysql;
?? ?? 查看有多少表
?? ?? mysql> show tables;
?? ?? 查看user表有没有数据
?? ?? mysql> select * from user;

?? ?? 向user表插入root用户
?? ?? mysql> INSERT INTO user (Host,User,Password) VALUES( 'localhost', 'root',password( '123456'));
?? ?? 更新root用户权限
?? ?? mysql> update user set Host='localhost',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';commit;
??删除在[mysqld]下加入的 skip-grant-tables
??重启mysql服务 service mysqld restart
??此时就可以正常的输入密码进入了


配置文件详细内容:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

skip-grant-tables  # 这是新增的

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
lower_case_table_names=1


解压.tar.gz格式压缩包配置(安装JDK和Tomcat) 无排版附件


以安装jdk为例(tomcat类似,自备包,附tomcat环境配置):

第一步将jdk.tar.gz包通过sftp传给linux服务器的opt文件夹: 通过Xftp软件,opt文件夹是手动安装放置的目录,sftp传输是基于ssh,端口号为22

第二步在linux服务器的opt文件夹下创建java文件夹: mkdir /opt/java/

第三步在/opt下将.tar.gz文件指定解压到/opt/java: tar -zxvf jdk-8u201-linux-x64.tar.gz -C /opt/java/

第四步配置环境变量: vi /etc/profile,vim到最后一行指令为:$;下一屏指令为CTRL+F(forward);上一屏为CTRL+B(back)

jdk环境变量配置:

export JAVA_HOME=/opt/java/jdk1.8.0_201
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

tomcat环境变量配置:

export CATALINA_HOME=/opt/tomcat/apache-tomcat-7.0.65
export PATH=$PATH:$CATALINA_HOME/bin

第五步刷新配置文件: source /etc/profile

第六步测试: 测试java环境配置是否成功:java -version
测试tomcat环境配置是否成功:startup.sh,查看tomcat是否已经启动:ps -ef |grep tomcat


面试使用加分的常见命令

ps -ef | grep 服务名: ps(process status:进程状态)。-e:显示所有进程,-f:以特定格式显示。|管道符,grep:过滤,在内容中查找。

top:查看cpu
df -h:查看磁盘大小
free -m:查看内存大小

find / -name bcd:查找文件名中含有bcd的文件或者目录

cat 文件 | grep 字符串:查看一个文件的内容是否含有指定的字符串信息

查看一个服务是否启动的:
netstat -an | grep 端口号 // 该端口号必须为LISTENING(监听)才算启动
ps -ef | grep 服务名 : //这种方法可以看到自己输入的这个的命令,结果最少为2条,才算已经启动。ps(process status:进程状态)。-e:显示所有进程,-f:以特定格式显示。
service 服务名 status

杀死一个进程:
Kill -9 pid // 杀死pid为pid的进程


查看进程所占用端口信息:netstat -lntup

说明: l:listening、n:num 、 t:tcp、u:udp、 p:process
如查看vsftpd的端口占用信息:netstat -lntup |grep vsftpd

查看防火墙开放的端口号:iptables -L -n

查看程序对应的进程号:ps aux | grep redis

编辑防火墙配置文件:vim /etc/sysconfig/iptables

nginx启动:cd /usr/local/nginx/sbin ./nginx

更详细的说明:Nginx学习笔记

redis启动命令:./redis-service redis-config

开放防火墙端口的命令

更详细的说明:linux开放指定端口命令

1、开启防火墙
systemctl start firewalld

2、开放指定端口
firewall-cmd --zone=public --add-port=1935/tcp --permanent
命令含义:
–zone #作用域
–add-port=1935/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

3、重启防火墙
firewall-cmd --reload

4、查看端口号
netstat -ntlp //查看当前所有tcp端口·

netstat -ntulp | grep 2181 //查看所有1935端口使用情况·

相关案例查看更多