[Linux笔录] 工作中常用Linux命令整理

1.0 文件操作

  • 文件显示

    • ls -a (行内显示文件加下的文件)
    • ls -al (块级显示文件夹下的文件,包含文件的权限显示,等同“ll”命令)
  • 文件查找

    • find <指定目录> -name <指定文件名>
    • locate 文件名 (搜索数据库【/var/lib/mlocate】中的本地文件所有信息)
    • whereis <可执行文件名>(搜索可执行文件即二进制文件)
    • which <系统命令> (搜索系统命令所在路径)
  • 字符串查找

    • grep <指定路径> -ri <字符串关键字> (忽略大小写查找指定路径包含关键字的文件路径)
    • Command -param | grep <关键字> (过滤显示命令行的中包含此关键字的输出)
  • 文件创建与删除

    • mkdir (前提:在想要创建目录的目标路径下你必须具有访问权限)
    • mkdir <多个用空格分开的目录>
    • -p 递归创建目录
    • rm -rf <目录名> 递归删除指定目录下的文件
  • 文件拷贝/传输

    • cp -a <源目录> <目标目录> (递归拷贝保留链接,文件属性,-a相当于-dpR)
    • scp eg:远程服务器A:45.52.13.176 本地服务器B:85.37.65.103
      上传: scp -r [local_server_folder|file] [email protected]:[remote_server_folder|file]
      下载: scp -r [remote_username]@45.52.13.176:[remote_server_folder|file] [local_server_folder]

    scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令.

  • 创建软连接
    sudo ln -s <源目录> <目标目录>(相当于在目标目录创建一个指向源目录的快捷方式)

  • 文件|目录移动 mv <源目录> <目标目录>

  • 修改文件时间或创建时间 touch   -[a,c,m] (文件被读取的时间,文件状态【权限,属性】改变时的时间值,内容数据被修改时间值)<文件名>

  • 文件权限管理

    • sudo chmod 对 (当前用户,组员,其他用户)的权限值 <文件名>

    文件|目录的权限值r=4 ;w=2;x=1
    sudo chmod 600 ××× (只有所有者有读和写的权限)
    sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
    sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
    sudo chmod 666 ××× (每个人都有读和写的权限)
    sudo chmod 777 ××× (每个人都有读和写以及执行的权限)

    • 另外一种修改问文件权限方式:chmod [who] [+ | - | =] [mode] 文件名?

    操作对象who可是下述字母中的任一个或者它们的组合:
    u 表示“用户(user)”,即文件或目录的所有者。
    g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
    o 表示“其他(others)用户”。
    a 表示“所有(all)用户”。它是系统默认值。
    操作符号可以是:
    + 添加某个权限。
    - 取消某个权限。
    = 赋予给定权限并取消其他所有权限。

  • 修改文件属主
    chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符

    chown [参数] 用户或组 文件
    - R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。

  • 修改文件属组

    chgrp [参数] group filename
    - R 递归式地改变指定目录及其下的所有子目录和文件的属组。

  • 其他文件相关命令:pwd(列出当前目录),cd(进入|退出某个目录)

2.0 用户管理

  • 添加用户:useradd    -[d,m,g](用户主目录,自动创建主目录,添加所属组) <用户名>
  • 删除用户: userdel    -r <用户名>删除用户并删除用户主目录
  • 设置用户密码: passwd   <用户名>
  • 用户切换:
    • su    <用户名>;切换到指定用户
    • su   -  <用户名>切换到指定用户名,并回到该用户名主目录
  • 添加组 groupadd <组名>
  • 删除组 groupdel <组名>
  • 查看当前用户 whoami
  • 查看登录用户 who
  • 退出登录

    如果是图形界面,退出当前终端;
    如果是使用ssh远程登录,退出登陆账户;
    如果是切换后的登陆用户,退出则返回上一个登陆账号

  • 用户管理相关配置文件

    /etc/passwd用于存放用户帐号信息
    /etc/shadow用于存放每个用户加密的密码
    /etc/group用于存放用户的组信息

3.0 软件包管理(apt,dpkg,aptitude)

  • 软件包的下载
    • wget <软件包地址>
    • sudo apt-get install <软件包名>
  • .deb软件包的安装dpkg -i <软件包名>
  • 本地软件版本与远程服务器版本同步, sudo apt update
  • 升级软件包 sudo apt upgrade
  • 软件的删除 sudo apt-get autoremove --purge <软件包名>(删除不彻底,依赖包无法删除)
  • sudo aptitude remove <软件包名>(会在删除报的同时把依赖包以连根拔除)

    aptitude update 更新可用的包列表
    aptitude upgrade 升级可用的包
    aptitude dist-upgrade 将系统升级到新的发行版
    aptitude install pkgname 安装包
    aptitude remove pkgname 删除包
    aptitude purge pkgname 删除包及其配置文件
    aptitude search string 搜索包
    aptitude show pkgname 显示包的详细信息
    aptitude clean 删除下载的包文件
    aptitude autoclean 仅删除过期的包文件

4.0 开发命令总结

  • 切换java版本 sudo update-alternative --config java|javac
  • lsof -i:port查看端口的占用情况
  • ps -ef | grep java(查看java进程是否存在)
  • netstate -an | grep 3306(查看3306端口状态)
  • kill pid 杀死指定id的进程
  • 添加openjdk源 sudo add-apt-repository ppa:openjdk-r/ppa
  • 安装JDK + + sudo apt-get install openjdk-7/8-jdk
  • 查看本地包列表sudo gedit /etc/apt/source.list
  • lsusb 查看usb设备
  • df -h 查看硬盘剩余空间
  • free -m 查看当前的内存使用情况
  • 定义别名 :sudo gedit ~/.bashrc;alias:yourCmdalias = 'your command grammar'

环境变量配置:
对当前终端:export :yourpath/youdirectory/bin:$PATH
对当前用户:sudo gedit ~/.bashrc;export yourpath/youdirectory/bin$PATH;
对全局用户:sudo gedit /etc/profile;export yourpath/youdirectory/bin$PATH;

你可能感兴趣的:([Linux笔录] 工作中常用Linux命令整理)