Linux常用命令
1、cd命令
- cd / 进入根目录
- cd ~ 进入工作目录 /root
- cd … 进入上一级目录
- cd …/usr 进入上一级目录下的usr目录
cd - 切换到上一个所在目录 - cd root 进行当前目录下root目录
2、列出文件列表:ls ll dir
-
ls(list)是一个非常有用的命令,用来显示当前目录下的内容。配合参数的使用,能以不同的方式显示目录内容。 格式:
ls[参数][路径或文件名]
-
注意:在linux中以 . 开头的文件都是隐藏的文件
-
ls 显示当前目录下的文件或目录(不包含隐藏的文件)
-
ls -a 显示当前目录下的所有文件或目录(包含隐藏的文件)
查看隐藏文件是看到含有点点(…)文件夹,一个点表示当前文件夹,二个点表示上一级文件夹
-
ls -l 缩写成ll 以列表形式显示当前目录下的文件或文件夹
-
dir usr/bin 显示usr/bin目录下的所有文件或目录(当前在根目录下)
-
ll -t 根据时间降序排序显示文件或目录的详细信息
-
ls --help 或 ls --help 显示ls命令的帮助信息
3、创建目录和移除目录:mkdir rmdir
-
mkdir(make directory)命令可用来创建子目录。
- mkdir app 在当前目录下创建app目录
- mkdir –p app2/test 级联创建aap2以及test目
-
rmdir(remove directory)命令可用来删除**“空”**的子目录:
-
rmdir app 删除app目录
如果使用mkdir –p app2/test创建一个文件夹,
再使用rmdir app2会提示:删除app2失败,目录非空。
-
4、删除文件或目录:rm
-
rm 删除文件
rm a.txt 删除a.txt文件
-
rm 删除不询问
rm -f a.txt 不询问,直接删除
-
rm 删除目录
rm -r app2 递归删除,删除时需要用户确认,y/n
-
不询问递归删除**(慎用)**
rm -r -f app2
rm -rf app2 不询问递归删除,也就是直接删除,不管app2下是否有子文件或文件夹
-
rm -rf * 删除当前目录下的所有文件
-
rm -rf /* 自杀 整个虚拟机都没了
5、复制文件
- 在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。
- cp a.txt b.txt 在当前目录下将a.txt复制为b.txt文件
- cp a.txt …/ 将当前目录下的a.txt文件复制到上一层目录中,文件名还是a.txt
- cp /test1/a.txt /test2/b.txt 将test1目录下的a.txt复制到test2目录下的b.txt
6、移动或者重命名
-
mv a.txt …/ 将a.txt文件移动到上一层目录中
-
mv a.txt b.txt 将a.txt文件重命名为b.txt
7、浏览文件
-
cat
-
cat a.txt 显示文件中所有内容
-
cat > b.txt 创建一个新的文件(只能创建新文件,不能编辑已有文件。vi即可以创建也可以编辑)
创建文件并输入内容后,回车后,再按Ctrl+D会保存文件内容并退出。
-
cat b.txt c.txt > cc.txt 将多个文件合并为一个文件
-
-
more : 按页来查看文件的内容,还支持直接跳转行等功能
- more -c -10 +3 a.txt 也可以直接more a.txt
- -c 从顶部清屏然后显示
- -10 一次显示的行数
- +3 从文件的第三行开始显示
- Enter 显示下一行内容
- 空格键 向下滚动一屏
- Ctrl+b 返回上一屏
- q 退出more(当显示到文件末尾时,也会自动退出more)
-
less 用法和more类似,不同的是less可以通过PgUp、PgDn键来控制上下翻页
- d 向后翻半页
- u 向前滚动半页
- Q 退出less 命令 (当显示到文件末尾时,不会自动退出less)
-
tail
- tail a.txt 显示文件的最后10行的内容
- tail -20 a.txt 显示文件后最后20行的内容
- tail -20f xxx.log -f用于监视文件增长,实时刷新最新20条日志
- tail -n 30 a.txt 从倒数第30行开始显示到文件末尾, -f和-n不同时使用。
- ctrl+c 结束查看
8、查找符合条件的字符串
- grep lang a.txt 在当前目录下的a.txt文件中查找lang
- grep a a* 在当前目录下所有a开头的文件中查找a
- grep a …/a* 在上一级目录下所有a开头的文件中查找a
- grep a a.txt b.txt 在当前目录下所有a.txt和b.txt中查找a
- grep -r a * 在当前及子目录下的所有文件中查找a(会递归查找)
- grep -r -i -n a *
- -i 忽略大小写
- -n 显示搜索出的字符在文件中行号
- grep -r -i -c a * 显示查找出的总行数
9、打包或解压
-
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz (或称为xxx.tgz) 的文件。
-
常用参数:
- -c:创建一个新tar文件(tar包文件)
- -v:显示运行过程的信息
- -f:指定文件名
- -z:调用gzip压缩命令进行压缩
- -t:查看压缩文件的内容
- -x:解开tar文件
-
打包:
tar –cvf xxx.tar ./*
-
打包并且压缩:
tar -zcvf xxx.tar.gz ./*
-
查看压缩包
tar -tvf xxx.tar ./*
tar -tvf xxx.tar.gz ./*
-
解压
tar –xvf xxx.tar 将tar文件解压到当前目录下
tar –xvf xxx.tar -C ./app2/ 将tar文件解压到子文件夹app2下
tar -xvf xxx.tar.gz -C /usr/aaa/ 将压缩文件解压到/usr/aaa/文件夹下
-C:指定文件要解压到哪个目录
10、其他常用命令
-
pwd 显示当前所在目录
-
touch a.txt 创建一个空文件
-
echo abc 打印输出abc到屏幕上
echo abc > a.txt 打印输出abc到a.txt文件中
-
echo abc 打印输出abc
-
wget 文件的url 下载文件
# 下载tomcat
cd /usr/hnguigu/
wget https://mirrors.bfsu.edu/apache/tomcat/tomcat-8/v8.5.73/bin/apache-tomcat-8.5.73.tar.gz
参考:https://mirrors.bfsu.edu/apache/tomcat
http://archive.apache/dist/tomcat/
vi和Vim编辑器
1、vi和vim编辑器
在Linux下一般使用vi编辑器来编辑文件。vi既可以创建文件也可以编辑文件。
-
vi编辑器有三种模式:命令行模式、编辑模式、底行模式。
- 切换到命令行模式:按Esc键;
- 切换到编辑模式:按 i 、o、a键;
- 切换到底行模式:在命令行模式下,按 :(冒号);
-
命令行模式的常用命令:(当vi或vim命令一执行完,打文件后,默认就是命令行模式)
-
gg 光标定位到文件头部
-
G 光标定位到文件尾部
-
0 光标定位到当前行的第一个字符
-
$ 光标定位到当前行的末尾
-
ctrl + f 向下一屏
-
ctrl + b 向上一屏
-
dd 删除一行
-
u 撤销上一次所做的操作,多次使用 u 命令会一步一步依次撤销之前做过的操作。
-
输入 /查询字符串 后,会找到当前光标之后第一个满足条件的字符串;
输入 ?查询字符串 后,会找到当前光标之前第一个满足条件的字符串;
按n会查找下一个,按shift+n会查找上一个。
-
-
编辑模式的常用命令:
- i 在当前位置前插入
- I 在当前行首插入
- a 在当前位置后插入
- A 在当前行尾插入
- o 在当前行之后插入一行
- O 在当前行之前插入一行
- R 将指定字符替换成输入的字符
-
底行模式的常用命令:
- esc --> :q 退出文件
- esc --> :wq 保存并退出文件
- esc --> :q! 不保存退出文件
- esc --> :nu 显示光标所在行的行号,将光标移至最底部,用于统计文件中的总行数
2、重定向输出
- 输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。
- 用法:
- ifconfig > ifconfig.txt 将ifconfig命令执行后要输出到屏幕的信息写入到ifconfig.txt文件中
- cat ifconfig.txt > ip.txt 将ifconfig.txt文件中的内容写入到ip.txt中,会覆盖ip.txt文件中原有的内容
- cat f.txt >> ip.txt 将f.txt文件中的内容追加写入到ip.txt中,不会覆盖ip.txt文件中原有的内容
3、管道 |
-
从一个进程连接数据到另一个进程时,使用管道(pipe),通常是把一个进程的输出通过管道连接到另一个进程的输入。
-
用法:
-
ls --help | more 分页查询帮助信息(怎么向上翻屏:shift+pageUP)
-
ifconfig | more 分页查询网络相关信息
-
cat index.html | more 分页查询某文件 --> more index.html
-
ps –ef | grep java 查询名称中包含java的进程
ps –ef 是查看当前linux系统中全部进程
-
4、&&命令
- 命令之间使用 && 连接,实现逻辑与的功能。
- 只有在 && 左边的命令返回真, && 右边的命令才会被执行。
- 只要有一个命令返回假,后面的命令就不会被执行。
- 用法:
- mkdir test && cd test && touch a.txt
5、网络通讯命令
-
ifconfig 显示或设置网络设备
-
启用/禁用网卡(使用root用户)
ifconfig ens33 up 启用ens33 网卡
ifconfig ens33 down 停用ens33 网卡
-
ping 探测网络是否通畅 (将宿主机的防火墙允许虚拟机访问)
ping 192.168.0.1
-
netstat查看服务及监听端口
-
netstat -anp | grep 3306 查询占用3306端口的进程
-
-a 查看所有服务
-
-n 直接使用IP地址和端口,而不通过域名服务器
-
-p 显示进程ID和进程名称
-
6、系统管理命令
-
date 显示当前系统时间
date -s “2014-01-01 10:10:10“ 设置系统时间
-
df 显示磁盘信息
df –h 友好显示大小
-
free 显示内存状态
free –m 以mb单位显示内存
-
内存详解
-
Mem:内存的使用情况总览表
-
total:机器总的物理内存 单位为:M
-
used:用掉的内存
-
free:空闲的物理内存
-
shared:多个进程共享的内存总和。
-
buffers:缓存内存数。
-
cached: 缓存内存数。
注:程序预留的内存=buffers+cached,即total = used + free + (buffers+cached)。
-
-
Linux内存中Swap机制
Linux支持虚拟内存(virtual memory),虚拟内存是指使用磁盘当作RAM的扩展,这样可用的内存的大小就相应地增大了。内核会将暂时不用的内存块的内容写到硬盘上,这样一来,这 块内存就可用于其他目的。当需要用到原始的内容时,他们被重新读入内存。
-
为什么linux的可见物理内存比实际内存要小?
https://blog.csdn/qifei717/article/details/81388149
-
-
top 显示,查看正在运行中的程序
-
clear 清屏
-
ps 正在运行的某个进程的状态
ps命令是Process Status的缩写, 用来列出系统中正在运行的进程. ps命令列出的是当前进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
-
参数详解:
- -e 显示现行终端机下的所有进程,包括其他用户的进程;
- -f 做一个完整的输出
- -a 显示现行终端机下的所有进程,包括其他用户的进程;
- -u 以用户为主的进程状态 ;
- -x 通常与 a 这个参数一起使用,可列出较完整信息。
-
用法
-
ps –ef 查看所有进程
-
ps -aux 查看所有进程
- ps -ef 和ps -aux两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps -aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。
- ps -ef 是用标准的格式显示进程的
- ps -aux 是用BSD的格式来显示
-
ps –ef | grep ssh 查找某一进程
-
kill 杀掉某一进程
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程
-
-
列表信息
- UID 代表执行者身份
- PID 进程的ID号
- PPID 父进程的ID
- C CPU使用的资源百分比
- MEM 内存的占比
- STIME 进程执行时间
- TTY 登入者的终端机位置
- TIME 使用掉的 CPU 时间
- CMD 所下达的指令名称
-
-
du 显示目录或文件的大小
-
du –h 显示当前目录及当前目录下所有子目录的大小
-
du ./app1 -a 显示app1目录及其子目录下的所有文件和目录的大小
-
du a.txt 显示a.txt文件的大小
-
du app1 显示app1目录的大小
-
-
who 显示目前登入系统的用户信息。
-
hostname 查看当前主机名
-
uname 显示系统信息。
uname -a 显示本机详细信息。
依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称
用户和组权限
用户的管理
-
添加一个用户,并指定用户home目录
useradd user_test1 -d /home/t1
-
为user_test1用户设置密码
[root@CentOS7-hnguigu-3 /]# passwd user_test1
Changing password for user user_test1.
New password: 在此处输入密码qweqazwsx
Retype new password: 在此处确认密码qweqazwsx
passwd: all authentication tokens updated successfully.
-
输入su命令,切换到指定的用户
su - 用户名
-
删除一个用户
userdel -r user_test1 删除用户以及用户的home目录,还有默认创建的私有组
-
exit或ctrl + d退出当前连接
组管理
-
当在创建一个新用户user时,若没有指定他所属于的组,就会建立一个和该用户同名的私有组
-
用户列表文件:/etc/passwd 刚创建的用户在文件的最后面
-
用户组列表文件:/etc/group 刚创建的用户同名的私有组在文件的最后面
-
创建用户时也可以指定所在组
-
创建组
groupadd user_public
-
创建用户指定组
useradd user_test1 -d /home/t1 -g user_public
为用户指定多个组:
useradd test7 -d /home/t7 -g group1 -G group2,group3
-
删除组,如果该组有用户成员,必须先删除用户才能删除组。
groupdel user_public
-
根据用户组ID查看该组所有的用户
grep 1002 /etc/passwd 注:1002是用户组ID
-
Linux的权限命令(参考)
- Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。
- Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
- Linux下权限的粒度有 拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
- Linux上通常使用chmod命令对文件的权限进行设置和更改。
chmod [可选项] <mode> <file...>
数字权限使用格式
在这种使用方式中,首先我们需要了解数字如何表示权限。 首先,我们规定 数字 4 、2 和 1表示读、写、执行权限(具体原因可见下节权限详解内容),即 r=4,w=2,x=1 。此时其他的权限组合也可以用其他的八进制数字表示出来,
如:
rwx = 4 + 2 + 1 = 7
rw = 4 + 2 = 6
rx = 4 +1 = 5
即
若要同时设置 rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7
若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置 为 4 + 2 = 6
若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 4 +1 = 5
-rw------- (600) 只有拥有者有读写权限。
-rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。
更多推荐
【自撰】Linux虚拟机常用命令
发布评论