美文网首页
linux 常用命令

linux 常用命令

作者: 奥特曼255 | 来源:发表于2018-04-24 17:58 被阅读0次

终端

快速启动终端: ctr+alt+t
终端字体放大: ctr+shift+'+'
终端字体缩小: ctr+'-'

文件管理

  • 查看目录和文件信息
pwd             # 显示当前目录


cd <目录>        # 进入目录中
cd .             # 当前目录
cd ..            # 向上
cd -             # 后退(只能退一次)
cd ~             # 进入家目录中


ls <目录>       # 列出目录下的所有目录和文件名,默认为当前目录
ls -l           # 显示详细信息,一般有快捷命令 ll
ls -a           # 显示隐藏文件(以 . 开头的文件),一般有快捷命令 la
ls -lh          # 组合使用 -h、-l 参数,以合适的单位显示文件大小
  • 新建文件、新建目录
touch <文件名>  # 新建文件


mkdir [-options] dirname  # 新建目录
# -p:递归创建文件夹
# -m<mode>:新建文件夹,并设置文件夹的文件訪问模式为mode
  • 移动和复制文件
mv   # 移动(剪切)或重命名
# -f:禁止交互式操作,如有覆盖也不会给出提示
# -i:确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件
# -v:显示移动进度


cp   # 复制
# -a:该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
# -f:已经存在的目标文件会不提示
# -i:交互式复制,在覆盖目标文件之前将给出提示要求用户确认
# -r:递归复制文件夹
# -v:显示拷贝进度
  • 删除文件或目录
mv <file> /tmp  # 不用直接删除,将文件移动到 /tmp,重启之后就没了
                # 万一误删,可以找回


rm [-options] filename/dirname
# -f:强制删除文件或目录
# -r:递归的删除文件或文件夹
# -i:删除文件或文件夹前须要逐个确认
# -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录
  • 新建链接文件
    软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
    硬链接:硬链接只能链接普通文件,不能链接目录。
ln 源文件 链接文件          # 新建硬链接文件
ln -s 源文件 链接文件     # 新建软链接文件(类似于 win 中的快捷方式)

  • 查看、编辑文件
cat             # 查看文件内容
more            # 分屏查看大文件
head            # 显示文件的前 10 行

nano            # 编辑器
  • 归档管理 tar
# 多个文件打包
tar -cvf test.tar *.py            # 打包
tar -xvf test.tar                 # 解包


# 常见的两种压缩方式(压缩率高)
tar -zcvf test.tar.gz *.py            # 压缩
tar -zxvf test.tar.gz                 # 解压
tar -zxvf test.tar.gz -C <目录>       # -C 参数,解压到指定路径

tar -jcvf test.tar.bz2 *.py            # 压缩
tar -jxvf test.tar.bz2                 # 解压


# 其他压缩方式
zip zzz.zip *.py
unzip zzz.zip
unzip -d <目录> myzip.zip        # 解压到指定目录

  • 输出重定向 >
    Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
>      # 覆盖写入 
>>     # 追加写入

# 例子
ls > test.txt   # test.txt 如果不存在,则创建,存在则覆盖其内容
cat a.txt b.txt > merge.txt   # 合并两个文件到新文件
  • 文本搜索 grep
grep [-选项] '搜索内容串' 文件名
-n    # 加行号
-v    # 反选
-i    # 忽略大小写

# grep常用正则表达式
'^搜索内容串'   # 搜索以该内容串开头的
'搜索内容串$'   # 搜索以该内容串结尾的
  • 搜索 find
find [目录] [-options] [参数]

# 例子
find ./ -name test.sh     # 查找当前目录下所有名为test.sh的文件
find ./ -name '*.sh'      # 查找当前目录下所有后缀为.sh的文件
find ./ -name "[A-Z]*"    # 查找当前目录下所有以大写字母开头的文件
find /tmp -size 2M        # 查找在/tmp 目录下等于2M的文件
find /tmp -size +2M       # 查找在/tmp 目录下大于2M的文件
find /tmp -size -2M       # 查找在/tmp 目录下小于2M的文件
find ./ -size +4k -size -5M  # 查找当前目录下大于4k,小于5M的文件
find ./ -perm 0777     # 查找当前目录下权限为 777 的文件或目录

用户、权限管理

  • 命令提示符
    普通权限用户 $
    root 用户 #

  • 查看当前用户

whoami        # 查看当前用户

who           # 查看当前所有已登录的用户
  • 退出登录账户 exit
    如果是图形界面,退出当前终端;
    如果是使用ssh远程登录,退出登陆账户;
    如果是切换后的登陆用户,退出则返回上一个登陆账号。

  • 用户管理

cat /etc/passwd        # 查看所有已存在的用户

useradd [用户名] -m     # 添加新用户
userdel [用户名]    # 删除用户,但不会自动删除用户的主目录
userdel -r [用户名]    # 删除用户,同时删除用户的主目录

sudo passwd [用户名]      # 设置密码、修改密码
# 超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名


# 切换用户
su [用户名]          # 切换用户登录
su root              # 切换为 root 用户
sudo -s              # ubuntu 中,切换为 root 用户


ssh [用户名]@[IP地址]           # 远程登录
  • 用户组管理
cat /etc/group        # 查看所有已存在的组

groupadd [组名]       # 新建组
groupdel [组名]       # 删除组
usermod -a -G [组名] [用户名]       # 给组添加新的用户
groups [用户名]       # 查看用户在哪些组


# 特殊用法,给普通用户添加 sudo 权限
sudo usermod -a -G adm [用户名]
sudo usermod -a -G sudo [用户名]

  • 修改文件的权限
# 修改文件所有者
chgrp [用户名] [文件名]


# 修改文件所属组
chgrp [组名] [文件名]


# 修改文件的权限
chmod u=rx [文件名]   # 将文件的拥有者权限改为 r-x
chmod g=r [文件名]   # 将文件的所属组权限改为 r--
chmod o=w [文件名]   # 将文件的普通用户权限改为 -w-
chmod u=r,g=r,o=r [文件名]   # 将三种用户的权限改为 r--

chmod 751 [文件名]   # 文件拥有者、同组用户、其他用户的权限分别为 rwx、r-x、--x 
# -R:递归,将目录下所有文件加上权限

系统管理

  • 时间
# 查看当前日历
cal
cal -y [年份]

# 显示或设置时间
date "+%Y=====%m=====%d"
  • 进程管理
# 查看进程信息
ps -aux
px -ax | grep '关键字'    # 用 ps -ax 命令列出所有正在运行的程序,传给 grep 查找关键字

# 动态显示进程
top
# 在top命令执行后,可以按下按键得到对显示的结果进行排序:
# M:根据内存使用量来排序
# P:根据CPU占有率来排序
# T:根据进程运行时间的长短来排序
# U:可以根据后面输入的用户名来筛选进程
# K:可以根据后面输入的PID来杀死进程。
# q:退出
# h:获得帮助

# top 的升级加强版
htop

# 杀掉进程
kill [-signal] [pid]
# 信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程
kill <PID>            # 杀
kill -9 <PID>            # 必杀
  • 内存管理
# 查看内存
free
  • 关机重启
# 关机重启
reboot  # 重新启动操作系统
shutdown –r now     # 重新启动操作系统,shutdown会给别的用户提示
shutdown -h now     # 立刻关机,其中now相当于时间为0的状态
shutdown -h 20:25   # 系统在今天的20:25 会关机
shutdown -h +10     # 系统再过十分钟后自动关机
init 0  # 关机
init 6  # 重启
  • 磁盘管理
# 检测磁盘空间
df -h   # 检测磁盘空间,显示磁盘的使用情况

# 检测目录所占磁盘空间
du [选项] [目录或文件名]
# -a:递归显示指定目录中各文件和子目录中文件占用的数据块
# -s:显示指定文件或目录占用的数据块
# -b:以字节为单位显示磁盘占用情况
# -l:计算所有文件大小,对硬链接文件计算多次
  • 网络
# 查看或配置网卡信息
ifconfig       # 显示所有的网卡信息
sudo ifconfig [网卡名] [修改后的ip地址]   # 修改 ip 地址

# 测试远程主机连通性
ping

其他

which           # 查看命令位置
fg              # 前台任务

## 后台运行程序
(nohup) <python> <back.py> &
  • 历史命令
# 上下键可切换历史命令
history
history | grep '搜索字符串'    # 查找历史命令 
!<命令序号>          # 直接运行该历史命令

快捷键

^L             # 清屏,效果等同于 clear
^C             # 中断输入
^Z             # 回到主界面(将当前程序移到后台执行,如同输入的命令后面加&)

查看帮助文档

  • --help
    一般是linux命令自带的帮助信息
ls --help
  • man(manual)
    man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明。
    该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。
    man中各个section意义如下:
    1. Standard commands(标准命令)
    2. System calls(系统调用,如open,write)
    3. Library functions(库函数,如printf,fopen)
    4. Special devices(设备文件的说明,/dev下各种设备)
    5. File formats(文件格式,如passwd)
    6. Games and toys(游戏和娱乐)
    7. Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量)
    8. Administrative Commands(管理员命令,如ifconfig)
man ls
man 2 open
man 2 printf

相关文章

网友评论

      本文标题:linux 常用命令

      本文链接:https://www.haomeiwen.com/subject/meojlftx.html