Linux下的命令笔记
发表时间:2020-10-18
发布人:葵宇科技
浏览次数:101
文章目录
- 常见问题
- 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目录结构:倒树状结构
绝对路径:以/开头的路径,称之为绝对路径
相对路径:不是以/开头的路径,称之为相对路径
去任何一个目录,可以使用相对路径,也可以使用绝对路径。涉及到目录切换。
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没有可用包,解决方法:
- yum -y install wget
- wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
- rpm -ivh mysql-community-release-el7-5.noarch.rpm
- 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端口使用情况·