linux基本命令

常用shell命令:

方向键:查看历史命令

ls(list):查看文件信息

ls -l 显示详细信息

ls -a 显示所有信息 包括隐藏的信息

   .当前目录

   .. 上一级目录

ls -R 递归显示子目录内容

ls -lrt  按照时间进行排序显示

通配符:*  ? 

  *  代表任意多个字符

       ?代表任意一个字符

相对路径和绝对路径

  以 / 开头为绝对路径

  不以 / 开头的为相对路径

cd --change dir 更改目录

cd  / cd ~  /cd  $HOME  / cd  家目录绝对路径   代表切换到家目录

cd -  切换到上一次目录

itheima@ubuntu:~/linux$

  itheima 代表用户

  ubuntu 代表机器名

  ~ 代表家目录

  ~/linux 当前所在目录

  $ 代表普通用户

   root @ ubuntu:/homr/itheima# 管理员对应的 #

 

 

pwd :查看当前工作目录

tree: 如果不存在需要安装

sudo apt-get install tree

 

mkdir 创建目录

mkdir  [option]  dirname1  dirname2.....

 mkdir  dir1  dir2   生成dir1  dir2 目录

mkdir   -p  dir3/dir  

递归创建目录,一次可以创建多级目录,即使上级目录不存在,会按目录层级自动创建目录,在dir3不存在的情况下,必须使用-p命令  否则创建失败

rmdir  删除目录

不能删除非空目录,空目录:目录下只有 。和  。。

 rmdir  -p  递归删除目录

 which command  显示命令所在路径

which  ls   显示ls命令所在路径

 

 

根目录 /

/bin 可执行文件所在目录

/media (自动)挂载设备媒体 U盘 光驱等

/ mnt  (手动) 让用户挂载别的文件系统

/ usr unix system recources 庞大和复杂的目录,很多应用安装于此目录

/ usr/local 用户自己安装软件的目录

/ ship 超级管理员root的可执行文件目录

/ proc 这个目录是系统内存的映射,会保留进程进行的一些信息

/ etc 系统软件的启动和配置目录

  /etc/passwd 用户存放文件  man 5 passwd 查看文件格式

/dev 设备文件所在目录

Linux一切皆文件

 

文件操作相关

touch 命令  创建文件  如果文件不存在则创建 如果存在则更改文件访问时间

 touch [option]  filename1  filename2.....

rm 命令  删除文件或目录

  -r  递归删除文件或目录

  -rf    rm  -rf  *  删除当前目录内全部内容(强制删除、慎用)

cp  [option]  srcpath   despath

  despath  是一个目录,将srcpath 拷贝到despath目录下

  despath 不是一个目录,在despath上级目录(.../xxx),在.../ 下创建一个xxx文件,并将srcpath的内容拷贝进来

  cp -r  递归拷贝 

  拷贝目录的时候需要考虑底层的目录是否存在  若despath不存在,只能包括一级目录,不能包括多级目录,

mv  移动文件或目录

 

 

文件内容相关

cat:直接显示文件信息

  cat filename

more 和 less

more:回车  逐行显示

    空格 一页一页显示

less:回车或者方向键可以反复查看文件内容

head 和 tail  默可以设置显示行数认显示10行  -n

head 查看文件头

  -n

tail查看文件尾

  -n

  -f一直追踪到文件尾  网络服务器中   方便调试  文件动态变化  不退出 追踪文件变化

 

统计信息相关

tree

wc  word count  统计文件内容

  -l  行数

  -w 单词

  -c 字节数

du 显示目录占用情况

  du  -f

  du -f  --max-depth=1  显示目录层数

df  显示磁盘空间信息

  df  -f

  df  -f  --block-size=GB  按照GB统计显示

文件属性和用户用户组

 

 

 

 

硬连接计数

 

创建硬链接

ln  src   des

创建软连接

ln  -s  src   des

删除软硬链接  硬链接计数为0  删除文件

unlink 

rm 

改变文件权限

chmod  [u|g|o|a]   [+|-]  [r|w|x]  filename

用数字的方式改变文件权限

给a.out用户可读可写  组可读可写 其他用户可读

chmod  0664   a.out

注意目录需要有可执行权限才能进入目录

chown  与  chgrp  改变用户改变组

chown  用户:组  文件名|目录

chgrp  组  文件名|目录

 sudo  chown zino:zino a.out  更改用户和组

 

查找和检索

find  dir  [option]  内容

  -name   按照名字查找

    find  ./    -name  "*.c"

   -type  按照类型查找

    find  ./   -type    f/d/p/l  (f:  普通文件   d:目录  p:管道文件 l:符号链接) 

  -size  按照大小查找

     find ./ -size +500M -size -1024M   大于500M 小于1024M  不写加减 为等于

     find ./ -maxdepth 1 -size +1M 一级目录

     find ./ -maxdepth 2 -size  +1M -exec ls -l  {}  \:

     find ./ -maxdepth 2 -size  +1M -ok  ls -l  {}  \:    每条指令都提示

     find  ./   -type  l | xargs  ls  -l     xargs 将find命令查找的结果分成若干块输出给后面的指令

grep命令  过滤内容  

     find  ./  -type  f | grep  txt

        grep "被查找的字符串" 文件名

     grep  "main"   *.c    

    cat   main.c  |  grep  main

    tail  -f  main.c | grep  main

    grep  -r   "main"   dir     -r 递归调用  dir 为目录或文件 dir为文件时-r 无意义  dir为目录时 递归调用子目录

 grep  基本使用

  grep "搜索的字符"  文件名

    grep  "GPRS"  demo.log

    grep  "GPRS"  *  找文件

    -c   统计出现次数

      grep  -c  "GPRS"  demo.log

    -i   不区分大小写

      grep  -i   "GPRS"  demo.log

    -v   反向匹配

      grep  -v  "GPRS"  demo.log

      输出除了GPRS以外的所有字符

    -n  输出行号

      grep  -n  "GPRS"  demo.log

    选项可以一起组合使用

  grep  "需要搜索的内容"  不加文件名阻塞等待

    grep  “hello”  阻塞等待标准输入  

    grep  bash  阻塞等待标准输入  设备

  grep 正则表达式

    * 符号  匹配0次或者多次

      grep  'go*'  demo.log

    。符号  匹配除了换行符之外的所有符号

      grep  ' . '  demo.log

      当 。与其他字符一起使用的时候  匹配单个字符

      grep  'g..d'  demo.log

      当单纯只是匹配点这个字符时,用中括号

      grep  '[.]'  demo.log

    \{ n, m \}  指定匹配次数  转义字符  \{  \}

      grep  'go\{2\}'  demo.log  匹配2次O

      grep  'go\{2,4\}d'  demo.log  匹配2-4次O

    ^  表示以。。。开头

      grep  ‘^root’  /etc/passwd  表示以root为行的开始

    $  表示以。。。结尾

      grep  ‘false$’  /etc/passwd  表示以false为结尾的行

    ^$  空行

      grep  ‘^$’  /etc/passwd

    []  范围匹配

      [0-9]或者[0123456789]  匹配所有数字

      [a-z]  匹配所有小写字母

      [0-9a-zA-Z]  匹配所有数字和字母

    \b  边界匹配

      grep  ‘\broot\b’  /etc/passwd  匹配只包含root,去除前后边界  去除字母

      ==root==  ==>  root

    \B   非单词边界匹配

      grep  ‘\Broot\B’  /etc/passwd  匹配只包含root,去除前后边界  非字母

      docroot==  ==>  docroot

    \w  匹配数字 英文字符

      grep  '\w'  /etc/passwd

    \W  非数字 英文字符

      grep  ‘\W’  /etc/passwd

    ?匹配前一个字符0次或者1次  

      grep  's\?bin'  /etc/passwd  转义使用  与 \?一起使用

    + 匹配前一个字符一次以上

      grep  ‘ro+t’  /etcpasswd

    () 一般与 | 一起使用   多选  

      grep  's(data|exe)'  /etc/passwd  转义使用  \(  \)  \|

ps  aux

ps aux|grep a.out

kill

 

操作事项
qinuo@123:~$ ./install_repo.sh
-bash: ./install_repo.sh: Permission denied

qinuo@123:~$ chmod 777 install_repo.sh
qinuo@123:~$ ./install_repo.sh

 

sudo    adduser    username

一 概述

ubuntu系统中通过ifconfig查看ip的时候,提示

按照提示输入一下命令行

结果就提示:Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend.

二 问题原因与解决方法

在安装软件包时如果出现Could not get lock /var/lib/dpkg/lock-frontend,说明之前使用apt时出现异常,没有正常关闭,还在运行,原因是我正在升级linux系统吗,后续继续研究,待续。

我们可以先查看apt的进程id,即pid

由于本人在更新系统,所以执行命令的时候提示:Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend.

当系统更新完后就可以正常安装了:

 deluser username

 

1.问题
xxx is not in the sudoers file.This incident will be reported.

2.分析
该问题的根本原因是由于Linux的超级用户权限是由sudo动态赋予的,在新增的用户不会默认赋予sudo权力,因此若需要该用户有sudo的权限,需要根据一定的规则进行赋予。

3.解决方法
以下两种方法都是基于现有的用户能够获取root权限进行,不管是root用户本身还是用户A(用户A能够使用sudo)

3.1 手动修改
1.赋予sudoer文件写权限

sudo chmod u+w /etc/sudoers

2.编辑sudoers文件,给对应的用户添加sudo权限

sudo vi /etc/sudoers

找到如下并参照书写,这里以给用户A添加sudo权限:

root    ALL=(ALL:ALL) ALL

添加

A    ALL=(ALL:ALL) ALL
 

3.撤销sudoers的写权限(否则异常)
————————————————
版权声明:本文为CSDN博主「带着希望活下去」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35746739/article/details/125854786

 

 

error.GitError: manifests var:
*** Please tell me who you are.

Run

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'qinuo@123.(none)')

qinuo@123:~$ git config --global user.email "Nuo.Qi@zeekrlife.com"
qinuo@123:~$ git config --global user.name "qinuo"

 

 

Git秘钥生成以及Gitlab配置(附以下问题解决方法:Key is invalid Fingerprint cannot be generated)...

最后发现是粘贴的内容有问题,只黏贴了密钥,没有前贴前面的“ssh-rsa” 和后面的邮箱。

谨记:要粘贴pub密钥里面的所有内容(同时注意粘贴不要带换行符)

 

Linux之scp命令的介绍以及命令行输入密码参数执行方法和常见问题解决

(32条消息) Linux之scp命令的介绍以及命令行输入密码参数执行方法和常见问题解决_听说唐僧不吃肉的博客-CSDN博客_linux scp

posted @ 2022-02-11 23:44  zinochau  Views(238)  Comments(0Edit  收藏  举报