欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux基础命令集合

程序员文章站 2022-07-13 11:54:21
...

Linux入门推荐慕课网达人养成计划(简单速成),鸟哥的私房菜(书比较厚,适合长期阅读,深入学习Linux,花的时间较长)
Linux命令是学好Linux的基础,现在根据这段时间我的学习经验,总结如下,希望对初学者有所帮助。(Ubuntu和Deepin)
1.进入终端命令:
ctrl+alt+T或者ctrl+alt+F2(命令行全屏模式)

2.文件命令(先cd进入操作文件目录,有些需要获取读或者写权限,sudo su,输密码即可变成root用户,原则上同一个目录下不能有同名的(Linux命令严格区分大小写))

cd /home 进入 ‘/ home’ 目录’
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -lh 显示文件和目录的详细资料,大小格式化
ls -a 显示隐藏文件
ls [0-9] 显示包含数字的文件名和目录名

ls 详细参数

-l :列出长数据串,包含文件的属性与权限数据等
-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
-d :仅列出目录本身,而不是列出目录的文件数据
-h :将文件容量以较易读的方式(GB,kB等)列出来
-R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

tree 显示文件和目录由根目录开始的树形结构(1)
lstree 显示文件和目录由根目录开始的树形结构(2)
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接

建立文件:

touch filename或者vi filename(可以修改内容,按esc后shift+z保存退出即可)

创建文件夹及目录(mkdir):
mkdir [选项] DirName
- mkdir
- -m 用于对新建目录设置存取权限,也可以用 chmod 命令进行设置。
- -p 需要时创建上层文件夹(或目录),如果文件夹(或目录)已经存在,则不视为错误。

mkdir (文件路径/DirName) /home/zq/HelloWorld
mkdir 777(权限) (文件路径/DirName)  /home/zq/HelloWorld

拷贝复制文件(cp):
cp [选项] 源文件或目录 目标文件或目录
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
  - d 拷贝时保留链接。
  - f 删除已经存在的目标文件而不提示。
  - i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。(建议选择这个,防止源文件被强制覆盖)
  - p cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
  - r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
  - l 不作拷贝,只是链接文件。

cp -i 源文件或目录 目标文件或目录(可以从地址栏复制过来)urls.py /home/zq/HelloWorld/HelloWorld/copy.py

Linux基础命令集合

将urls.py重命名为目标目录下的copy.py,要想不重命名,可以cp -i urls.py /home/zq/HelloWorld/HelloWorld/
cp - r /home/zq/HelloWorld/HelloWorld/ /usr/ljq/ 将/home/zq/HelloWorld/HelloWorld/目录中的所有文件及其子目录拷贝到目录/usr/ljq目录中。

移动或重命名文件(mv)
mv [选项] 源文件或目录 目标文件或目录
用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中
mv [选项] 源文件或目录 目标文件或目录
各个选项的含义:
- i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。(建议最好选择此选项)
- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
需要注意的是,mv与cp的结果不同。mv操作后文件个数并末增加,而cp对文件进行复制,文件个数总体增加了一倍。
例如将/usr/ljq/下的所有文件移动到当前文件夹下

mv /usr/ljq/* .

重命名文件

mv test1.txt test2.txt

删除文件(rm)
rm [选项] 文件路径
删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
如果没有使用- r选项,则rm不会删除目录。
- f 忽略不存在的文件,不给出提示。
- r 指示rm将参数中列出的全部目录和子目录均递归删除。
- i 进行交互式删除。(建议选择这个,会被要求对每个文件进行确认是否删除,防止误删文件,无法恢复)
例如删除目录下的所有文件及文件夹

rm -rf 文件路径(谨慎使用,防止误删)

文件去锁:sudo chown 用户名 filename -R

查看文件内容
cat filename 从第一个字节开始正向查看文件的内容
tac filename 从最后一行开始反向查看一个文件的内容
more filename 查看一个长文件的内容
less filename 类似于 ‘more’ 命令,但是它允许在文件中和正向操作一样的反向操作
head -2 filename 查看一个文件的前两行
tail -2 filename 查看一个文件的最后两行
tail -f /var/log/messages 实时查看被添加到一个文件中的内容

文件搜索
find / -name file1 从 ‘/’ 开始进入根文件系统搜索文件和目录
find / -user user1 搜索属于用户 ‘user1’ 的文件和目录
find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中搜索带有’.bin’ 结尾的文件
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
find / -name *.rpm -exec chmod 755 ‘{}’ \; 搜索以 ‘.rpm’ 结尾的文件并定义其权限
find / -xdev -name *.rpm 搜索以 ‘.rpm’ 结尾的文件,忽略光驱、捷盘等可移动设备
locate *.ps 寻找以 ‘.ps’ 结尾的文件 - 先运行 ‘updatedb’ 命令
whereis halt 显示一个二进制文件、源码或man的位置
which halt 显示一个二进制文件或可执行文件的完整路径
grep 搜索查找字符串,根据给定的关键字帮助找到文件。

grep user /etc/passwd

打包和压缩文件
bunzip2 filename.bz2 解压一个叫做 ‘filename.bz2’的文件
bzip2 file 压缩一个叫做 ‘file’ 的文件
gunzip file1.gz 解压一个叫做 ‘file.gz’的文件
gzip file 压缩一个叫做 ‘file’的文件
gzip -9 file 最大程度压缩
rar a file1.rar test_file 创建一个叫做 ‘file1.rar’ 的包
rar a file1.rar file1 file2 dir1 同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’
rar x file1.rar 解压rar包
unrar x file1.rar 解压rar包
tar -cvf archive.tar file1 创建一个非压缩的 tarball
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 ‘file1’, ‘file2’ 以及 ‘dir1’的档案文件
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包

文件的特殊属性 - 使用 “+” 设置权限,使用 “-” 取消权限
chattr +a file1 只允许以追加方式读写文件
chattr +c file1 允许这个文件能被内核自动压缩/解压
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1 允许一个文件被安全地删除
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr 显示特殊的属性

3.关机 (系统的关机、重启以及登出命令 )
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
poweroff 关闭系统(4)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销

4.制作应用图标
快速启动:/usr/share/applications
用gedit命令创建应用文件,进行相应增改即可创建应用快捷方式,右键放到桌面或者任务栏都行

5.更新软件:

sudo apt update
sudo apt upgrade

6.用户和群组
groupadd group_name 创建一个新用户组
groupdel group_name 删除一个用户组
groupmod -n new_group_name old_group_name 重命名一个用户组
useradd -c “Name Surname ” -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 “admin” 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( ‘-r’ 排除主目录)
usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
chage -E 2020-12-31 user1 设置用户口令的失效期限
pwck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的用户
grpck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的群组
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组

7.vim使用
vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。
命令模式下:
:q 退出
:q! 强制退出
:wq 保存并退出
:set number 显示行号
:set nonumber 隐藏行号
/apache 在文档中查找apache 按n跳到下一个,shift+n上一个
yyp 复制光标所在行,并粘贴
h(左移一个字符)、j(下一行)、k(上一行)、l(右移一个字符)

8.网络
ifconfig(不是windows里的ipconfig,这点要注意)ifconfig 显示或设置网络设备,可以查看当前ip,类似于windows里的ipconfig
netstat -tlnp查看端口使用情况,释放占用端口的进程 ,根据pid强制释放
kill -9 进程id
查看端口被哪个进程占用
lsof -i:端口号
查找被占用的端口
netstat -tln //查看端口使用情况
netstat -tln | grep 8000 //查看端口8000的使用情况
service network restart(/etc/rc.d/init.d/network restart) 重启网卡
ifdown eth0 关闭网卡
ifup eth0 开启网卡
route -n 查看路由表
route add -net 192.168.20.1 netmask 255.255.255.0 dev eth0
netstat 查看网络连接情况
netstat -i 显示网卡运行情况
netstat -r 查看主机的路由列表
hostname 显示主机名
hostname -i 显示当前主机名的IP.
ps命令
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出
ps aux # 查看系统所有的进程数据
ps ax # 查看不与terminal有关的所有进程
ps -lA # 查看系统所有的进程数据
ps axjf # 查看连同一部分进程树状态

9.帮助命令(man)
man 命令名
查看命令的属性和帮助信息
(如果搜索不到这个命令那就表示命令不是系统命令,可能不在/bin目录里面)
man的级别
1:查看命令的帮助
2:查看可被内核调用的函数的帮助
3:查看函数和函数库的帮助
4:查看特殊文件的帮助(主要是/dev目录下的文件)
5:查看配置文件的帮助
6:查看游戏的帮助
7:查看其它杂项的帮助
8:查看系统管理员可用命令的帮助
man -f 【命令】可以查看这个命令有哪些级别

Linux系统目录
Linux基础命令集合
Linux系统学习路线
Linux基础命令集合
Linux的命令是Linux的基础,只有熟练掌握它们,才能驾驭Linux,达到事半功倍的效果,有利于编程学习和工作。
还有一些命令没有提到,后面继续学习会相应补充,望大家理解,谢谢!

相关标签: Linux操作系统