linux常用命令笔记


Linux 命令大全

Linux 常用命令集合

cd

cd /tmp 切换到tmp目录下
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd … 返回上级目录;
cd …/… 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。

Ubuntu系统文件目录

opt(常用)
这个是给第三方协力软件放置的目录 。 什么是第三方协力软件啊?举例来说,KDE这个桌面管理系统是一个独立的计画,不过他可以安装到Linux系统中,因此KDE的软件就建议放置到此目录下了。 另外,如果妳想要自行安装额外的软件(非原本的distribution提供的),那么也能够将你的软件安装到这里来。 不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下。
/opt/ 作为可选文件和程序的存放目录,否则将无法引导计算机进入操作系统。

etc(常用)
只有root有权力修改。
/etc目录存放着各种系统配置文件,其中包括了用户信息文件/etc/ passwd,系统初始化文件/etc/rc等。linux正是*这些文件才得以正常地运行。
home (常用)
这是系统预设的使用者家目录(home directory)。 在你新增一个一般使用者帐号时,预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号:~ :代表当前使用者的家目录,而 ~guest:则代表用户名为guest的家目录。

usr(常用)
用于存放系统应用程序,比较重要的目录 /usr/local 本地管理员软件安装目录

var(常用)
用于存放运行时需要改变数据的文件,比较常用的是/var/log存放各种默认软件的日志信息

lib
/lib目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。

bin
系统有很多放置执行档的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。在/bin底下的指令可以被root与一般帐号所使用,主要有:cat,chmod(修改权限), chown, date, mv, mkdir, cp, bash等等常用的指令。
/bin目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序(bin是binary—-二进制的简称),多是系统中重要的系统文件。

boot
主要放置开机会使用到的档案,包括Linux核心档案以及开机选单与开机所需设定档等等。Linux kernel常用的档名为:vmlinuz ,如果使用的是grub这个开机管理程式,则还会存在/boot/grub/这个目录。
/boot目录存放引导加载器(bootstrap loader)使用的文件,如l i l o,核心映像也经常放在这里,而不是放在根目录中。但是如果有许多核心映像,这个目录就可能变得很大,这时使用单独的文件系统会更好一些。还有一点要注意的是,要确保核心映像必须在ide硬盘的前1024柱面内。

dev
在Linux系统上,任何装置与周边设备都是以档案的型态存在于这个目录当中。 只要通过存取这个目录下的某个档案,就等于存取某个装置。比要重要的档案有/dev/null, /dev/zero, /dev/tty , /dev/lp, / dev/hd, /dev/sd*等等
/dev目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。比如,用户可以通过访问/dev/mouse来访问鼠标的输入,就像访问其他文件一样。

media
media是媒体的英文,这个/media底下放置的就是可移除的装置。 包括软碟、光碟、DVD等等装置都暂时挂载于此。

mnt
如果妳想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。在古早时候,这个目录的用途与/media相同了。 只是有了/media之后,这个目录就用来暂时挂载用了。
/mnt目录是系统管理员临时安装(mount)文件系统的安装点。程序并不自动支持安装到/mnt 。/mnt 下面可以分为许多子目录,例如/mnt/dosa 可能是使用msdos文件系统的软驱,而/mnt/exta 可能是使用ext2文件系统的软驱,/mnt/cdrom 光驱等等。

root
系统管理员(root)的家目录。 之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分区中

sbin
Linux 有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来设定系统,其他使用者最多只能用来查询而已。放在/sbin底下的
/sbin目录类似/bin,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。

tmp
这是让一般使用者或者是正在执行的程序暂时放置档案的地方。这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要资料不可放置在此目录啊。 因为FHS甚至建议在开机时,应该要将/tmp下的资料都删除
/tmp 目录存放程序在运行时产生的信息和数据。但在引导启动后,运行的程序最好使用/var/tmp来代替/tmp ,因为前者可能拥有一个更大的磁盘空间。

Linux 环境变量(export命令)

https://www.cnblogs.com/tinywan/p/7224011.html?utm_source=itdadao&utm_medium=referral
1、直接用export命令:
#export PATH=$PATH:/opt/au1200_rm/build_tools/bin
查看是否已经设好,可用命令export查看:

2、修改profile文件:
#vi /etc/profile
在里面加入:
export PATH=“KaTeX parse error: Expected 'EOF', got '#' at position 74: …. 修改.bashrc文件: #̲vi /root/.bashr…PATH:/opt/au1200_rm/build_tools/bin”
使生效:source .bashrc

通过echo命令测试一下:
#echo $PATH

快捷键

ctrl + l - 清屏 。 cLear
ctrl + c - 终止命令。
ctrl + d - 退出 shell,好像也可以表示EOF。
ctrl + z - 将当前进程置于后台,fg还原。
ctrl + r - 从命令历史中找 。 Reverse-i-search
ctrl + a - 光标移到行首 。 A
ctrl + e - 光标移到行尾。 End
ctrl + u - 清除光标到行首的字符 。U
ctrl + w - 清除光标之前一个单词 。Word
ctrl + k - 清除光标到行尾的字符。K
ctrl + t - 交换光标前两个字符。swiTch
ctrl + y - 粘贴前一ctrl+u类命令删除的字符。Y
ctrl + p - 上一条命令。Prev
ctrl + n - 下一条命令。Next
ctrl + v - 输入控制字符 如ctrl+v ,会输入^M
ctrl + f - 光标后移一个字符。Fore
ctrl + b - 光标前移一个字符。Back
ctrl + h - 删除光标前一个字符。H
ctrl + s - 挂起当前shell。Stop
ctrl + q - 重新启用

Linux常用命令

https://www.runoob.com/w3cnote/linux-common-command.html

系统管理

unset命令

Linux unset命令用于删除变量或函数。
unset为shell内建指令,可删除变量或函数。
比如 unset PATH

shutdown关机重启

关机
shutdown -h now 立刻关机
shutdown -h 5 5分钟后关机
poweroff 立刻关机
重启
shutdown -r now 立刻重启
shutdown -r 5 5分钟后重启
reboot 立刻重启

VIM 教程

https://www.runoob.com/linux/linux-vim.html
https://blog.csdn.net/jerwey/article/details/124710153

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

xxd命令

https://blog.csdn.net/houxiaoni01/article/details/109389430

查看进程

1. ps

1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有程序。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t <终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u   以用户为主的格式来显示程序状况。
13)ps x   显示所有程序,不以终端机来区分。
14)ps -l  详细的显示该PID的信息

ps命令,配合grep命令,可以用来查看系统中存在的进程,会显示列出相关的信息,进程id,进程组id,进程名等等。
比如

$ ps aux | grep amoeba  查到amoeba的进程
$ kill -s 9 pid  杀死进程

2. pidof

pidof 通过进程名查找相对应的进程pid,是精确匹配

3. pgrep

pgrep 也是通过进程名查找对应的进程pid,是模糊匹配

https://blog.csdn.net/mrtwenty/article/details/98638983

pkill

pkill 是 ps 命令和 kill 命令的结合,用来杀死某一类进程。

管道符号|

| 是管道符号, 可以连接两个命令, 将前一个命令的输出作为后一个命令的输入。

eg:
ls | grep passwd     显示当前目录下所有passwd文件
ls | grep ^p[abcd]    显示”以 p 开头的,第 2 个字母是 a 或 b 或 c 或 d”的所有文件

tee

Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。

tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

参数:

  • -a或–append  附加到既有文件的后面,而非覆盖它.
  • -i或–ignore-interrupts  忽略中断信号。
  • –help  在线帮助。
  • –version  显示版本信息。

(1) 基本用法

如果想同时打印到屏幕和文件里,可以这么写:

$ ls -l | tee -a test.log

(2) 保存输出到多个文件
可以将命令的输出写入多个空格分隔的文件,如下面的语法所示。

$ command | tee file1 file2 file3 . . .

(3) 抑制输出
如果要隐藏或抑制在屏幕上打印输出,则将输出重定向到 /dev /null

$ command | tee file > /dev/null

(4) 将输出附加到文件中
默认情况下,tee 命令覆盖文件内容。要追加输出并防止当前内容被覆盖,请使用 -a 或 -append 选项。

$ command | tee -a file

(5) 配合 sudo 使用
假设作为 sudo 用户,您希望在 root 用户拥有的文件上写入。

$ echo "10.200.50.20 db-01" | sudo tee -a /etc/hosts/

(6) 输出重定向使用 tee 命令,我们可以轻松地将一个命令的输出重定向到另一个命令。第一个命令的输出将作为第二个命令的输入。如下所示:

$ grep 'root' /etc/passwd | tee /tmp/passwd.tmp | wc -l
$ cat /tmp/passwd.tmp
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

(7) 在 vi 编辑器中将更改保存到文件中
以非 root 用户的身份工作,正在对 root 用户拥有的文件进行更改,而您忘记在命令前加上 sudo,现在您想要保存更改
如果要将更改保存到 /etc /hosts 文件,请运行

:w !sudo tee %

它会提示您输入用户的密码,如果用户有 sudo 权限,那么更改将被保存。

(8) 忽略中断信号
使用 -i 选项可以忽略中断信号 (ctrl+c),示例如下

$ ping -c 5 linuxtechi.com  | tee -i /tmp/pingtest.tmp

(9) 在脚本中的应用
tee 命令在 shell 脚本中也经常使用,下面是一个常见的例子

$ vi basic-script.sh
#!/bin/bash
LOGFILE=/tmp/basic-logs-$(date +%d%m%Y)
FLAVOR=$(cat /etc/*-release  | grep -w 'NAME=' | cut -d"=" -f2 | awk '{print $1}'| sed 's/"//g')
if [ $FLAVOR == CentOS ];
then
   dmesg | grep -i 'error' | tee -a $LOGFILE
   grep -i 'installed' /var/log/dnf.log | tee -a $LOGFILE
else
   echo 'do nothing'
fi

如果想把错误输出也同时打印到屏幕和文件,可以这么写:

$ ls -l not_find_runoob 2>&1 | tee -a lsls.log

其中,2>&1 意思就是把标准报错也作为标准输出。

执行python脚本时,保存log

python -u example.py | tee > results.txt

在 shell 脚本中运行 python 命令时后面加了 -u 参数

  • -u参数的使用:python命令加上-u(unbuffered)参数后会强制其标准输出也同标准错误一样不通过缓存直接打印到屏幕。
    https://www.jb51.net/article/172696.htm

参考https://www.zhihu.com/question/50634352/answer/2712024063

重定向

输出重定向

定义:将命令的正常输出结果保存到指定的文件中,而不是直接显示在显示器的屏幕上

语法:

  • > 文件名 #表示将标准输出的内容,写到后面的文件中,如果此文件名已经存在,将会覆盖原文件中的内容,如果不存在,则创建文件并写入内容
  • >> 文件名 #表示将标准输出的内容,追加到后面的文件中。若重定向的输出的文件不存在,则会新建该文件

输入重定向

例1:将命令中接收输入的途径由默认的键盘改为其他文件.而不是等待从键盘输入

<

错误重定向

将命令执行过程中出现的错误信息 (选项或参数错误) 保存到指定的文件,而不是直接显示到显示器

  • 作用:错误信息保存到文件

  • 操作符: 错误重定向符号:2>
    2指的是标准错误输出的文件描述符

注:使用 2> 操作符时,会像使用 > 一样覆盖目标文件的内容,若追加而不覆盖文件的内容即可使用 2>> 操作符

dev/null

把/dev/null看作"黑洞",所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到.

然而 /dev/null对命令行和脚本都非常的有用.

echo aaaa >/dev/null
cat /dev/null #什么信息也看不到

>&符号

&是后台的意思
 > 是重定向. 相当于1>
&>代表后台重定向

other

1. > 重定向输出符号。相当于1>
2. >>重定向输出符号,但有追加的功能。
3. 2>错误重定向输出符号,覆盖原文件内容。
4. 2>>错误重定向输出符号,有文件内容追加的功能。 0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信息输出到文件a.txt中
5.  2>&1表示标准错误输出重定向(等同于)标准输出(标准输出为1,标准错误输出为2)

command > file 2>&1
首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。
command 2>&1 >file
2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。
————————————————
原文链接:https://blog.csdn.net/Dontla/article/details/127151864

which

Linux which命令用于查找文件。

which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

语法
which [文件…]
参数:

-n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w  指定输出时栏位的宽度。
-V  显示版本信息。
实例

grep

grep
1.作用
grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
它能使用正则表达式搜索文本,并把匹配的行打印出来。
2.格式
grep [options]
3. 主要参数: grep --help可查看
-c:只输出匹配行的计数。
-i:不区分大小写。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
–color=auto :可以将找到的关键词部分加上颜色的显示。

find

1.作用
find命令的作用是在目录中搜索文件,它的使用权限是所有用户。
2.格式
find [path][options][expression]

https://blog.csdn.net/annita2019/article/details/121789011

gcc和g++区别

http://c.biancheng.net/view/7936.html
习惯使用 gcc 指令编译 C 语言程序,用 g++ 指令编译 C++ 代码。需要强调的一点是,这并不是 gcc 和 g++ 的区别,gcc 指令也可以用来编译 C++ 程序,同样 g++ 指令也可以用于编译 C 语言程序。

dpkg 命令

dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu、Knoppix 等。

  1. 列出已安装的deb包
    dpkg -l
  2. 移除已安装的deb包
    dpkg -r
  3. 安装deb包
    dpkg -i

su

su = Switch User
su用于用户之间的切换。但是切换前的用户依然保持登录状态。除 root 外,需要键入该使用者的密码。

su test:切换到test用户,但是路径还是/root目录
su - test : 切换到test用户,路径变成了/home/test
su : 切换到root用户,但是路径还是原来的路径
su - : 切换到root用户,并且路径是/root
su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。

切换用户

hnlinux@runoob.com:~$ whoami //显示当前用户
hnlinux
hnlinux@runoob.com:~$ pwd //显示当前目录
/home/hnlinux
hnlinux@runoob.com:~$ su root //切换到root用户
密码: 
root@runoob.com:/home/hnlinux# whoami 
root
root@runoob.com:/home/hnlinux# pwd
/home/hnlinux

切换用户、改变环境变量

hnlinux@runoob.com:~$ su - root //切换到root用户
密码: 
root@runoob.com:/home/hnlinux# whoami 
root
root@runoob.com:/home/hnlinux# pwd //显示当前目录
/root

退出返回之前的用户:exit
语法
su [-fmp] [-c command] [-s shell] [–help] [–version] [-] [USER [ARG]]

sudo

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。

经由 sudo 所执行的指令就好像是 root 亲自执行。
使用权限:在 /etc/sudoers 中有出现的使用者。

cat

cat命令是linux下的一个文本输出命令,cat 的全称 concatenate files and print on the standard output。
cat命令主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能。

cat主要有三大功能:
1.一次显示整个文件。
$ cat filename
2.从键盘创建一个文件。
$ cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件。
$cat file1 file2 > file
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:cat -n textfile1 > textfile2

文件/proc/partitions 可以查看分区信息。
$cat /proc/partitions

挂载mount umount

https://www.cnblogs.com/xiumuzidiao/p/10739171.html

  1. 以root用户登陆
  2. 查看当前挂载: fdisk -l
  3. 新建一个目录来挂载硬盘 挂载到MNT/usb
    :~ # cd /mnt
    :/mnt# mkdir /mnt/usb
  4. 挂载命令
    root@h-Default-string:/mnt# mount /dev/sdb1 /mnt/usb
  5. 不出问题就会挂载成功。
  6. 卸载u盘:umount /mnt/usb

遇到有进程占用硬盘

  1. 查看进程: fuser -m -u /dev/sdb1
    /dev/sdb1: 1977(root)
    2)结束进程# kill 1977
    3)重新挂载一次

fuser

可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息.
fuser显示使用指定文件或者文件系统的进程ID.默认情况下每个文件名后面跟一个字母表示访问类型。
常用选项
-a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。
-c 和-m一样,用于POSIX兼容。
-k 杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。结合 –signal
-signal 使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。
-l 列出所有已知的信号名称。
-i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。
-m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。
-n space 指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口,可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示)。
-s 静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。
-u 在每个PID后面添加进程拥有者的用户名称。
-v 详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel.

假设无法卸载的设备为/dev/sdb1
1)运行下面命令看一下哪个用户哪个进程占用着此设备
fuser -m -v /dev/sdb1

2)运行下面命令杀掉占用此设备的进程
fuser -m -v -k /dev/sdb1
或者fuser -m -v -k -i /dev/sdb1(每杀掉一下进程会让你确认)
3)再umount

pwd 命令

pwd 命令用于查看当前工作目录路径。pwd = Print work diretory

touch

Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
ls -l 可以显示档案的时间记录

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
  1. 如何创建一个空白文件

要使用touch命令创建一个简单的空白文件,请使用以下语法。 如果您选择的文件名已经存在,则只需更改访问时间

$ touch linuxidc.txt

  1. 如何创建多个文件

如果您想使用touch命令创建多个文件,只需输入带空格的扩展名的文件名即可。 你可以检查下面的语法。

$ touch linuxidc_com.txt linuxmu.txt linuxidc_net.txt

  1. 如何用一个命令创建批量文件

如果您想要创建批量文件,例如20或30个文件,而不是扩展名。 下面的例子肯定会帮助你。 您可以使用命令ls或ll来检查文件是否被创建。由于我使用的是图形界面的,直接打开文件夹看看更直观吧。

  • 1.创建名称为A到Z的文件
    $ touch {A…Z}
  • 2.创建从1到100的文件
    $ touch {1…100}
  • 3.创建带有扩展名的批量文件
    $ touch {2…200}.txt
  • 4.创建具有扩展名的10000个文件
    $ touch {1…10}{1…1000}.txt
  1. 如何避免创建新文件

ubuntu-通配符

ubuntu下的通配符主要有三个
1.* 这个是匹配任意一个或多个字符
2.?这个是匹配一个任意字符
3. []这个是匹配中括号里面的内容

ldd

ldd本身不是一个程序,而仅是一个shell脚本:ldd可以列出一个程序所需要得动态链接库(so)

tmux

Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。
#Ubuntu 或 Debian安装
$ sudo apt-get install tmux

启动tmux:$ tmux
退出 :$ exit 或 Ctrl+D //相当关闭这个会话
查看会话:$ tmux ls
新建会话:$ tmux new -s < session-name>
分离会话:Ctrl+b d 或者输入 tmux detach (退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行)
接入会话:$ tmux attach -t
杀死会话:$ tmux kill-session -t 编号/名称
切换会话:$ tmux switch -t 编号/名称
重命名会话:$ tmux rename-session -t 0

快捷键
Ctrl+b d:分离当前会话。
Ctrl+b s:列出所有会话。
Ctrl+b $:重命名当前会话。

前缀键
Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。
举例来说,帮助命令的快捷键是Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。
然后,按下 ESC 键或q键,就可以退出帮助。

http://www.ruanyifeng.com/blog/2019/10/tmux.html

文件/文件夹操作

cd 命令:

“.”     ”点”表示当前目录
以”/” 开始的目录路径 表示绝对路径
相对路径: 是相对于当前目录,如 “.”, “. .” 都是相对路径
以”.” 为开头的文件/目录是隐藏的 如”.demo”、 “.bash_profile”

命令
cd /切换到根目录
cd /usr切换到根目录下的usr目录
cd . . /切换到上一级目录 或者 cd . .
cd ~切换到home目录
cd - 切换到上次访问的目录

ls [-al] & ll

命令
ls查看当前目录下的所有目录和文件(ls:仅罗列出当前文件名或目录名)
ls -a 或la:查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l 或 ll列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls /dir查看指定目录下的所有目录和文件 如:ls /usr

ls:仅罗列出当前文件名或目录名。
ll:罗列出当前文件或目录的详细信息,包括上次修改时间、读写权限、大小等。
可以理解为 ll 和 ls -l 的功能是相同的,即:ll 是 ls -l 的别名。
ls -l 以长列表方式列出 =ll
ls -r 逆序列出
ls -h 显示目录或文件大小
ls -d 查看当前目录
ls -ld 长列表列出当前目录的详细信息 =ll -d
ls -lh 显示目录或文件大小= ll =h
ls -a 列出隐藏文件,包括.和…
ls -A 列出隐藏文件,不包括.和…
ls –k 用kb显示文件的大小单位
ls -i 显示文件索引节点号(inode)

mkdir 创建目录

命令
mkdirMake directory 建立目录
rmdirRemove directory 移动目录
mkdir -p递归创建目录,即使上级目录不存在,会按目录层级自动创建目录
mkdir /a/b在指定目录a下创建一个名为b的目录

删除目录或文件:rm [-rf] 目录

删除文件:
rm 文件 删除当前目录下的文件
rm -f 文件 删除当前目录的的文件(不询问)

删除目录:
rm -r aaa 递归删除当前目录下的aaa目录
rm -rf aaa 递归删除当前目录下的aaa目录(不询问)

全部删除:
rm -rf * 将当前目录下的所有目录和文件全部删除
rm -rf /* 【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除

注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包

mv

mv参数设置与运行结果

命令格式 运行结果
mv 文件名 文件名 将源文件名改为目标文件名
mv 文件名 目录名 将文件移动到目标目录
mv 目录名 目录名 目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名

将文件 aaa 更名为 bbb :
mv aaa bbb

将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。
mv info/ logs

再如将/usr/student下的所有文件和目录移到当前目录下,命令行为:
$ mv /usr/student/* .

cp

拷贝目录
命令:cp -r 目录名称 目录拷贝的目标位置 -r代表递归
示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面 cp /usr/tmp/aaa /usr

参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
实例
使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:
$ cp –r test/ newtest
注意:用户使用该指令复制目录时,必须使用参数 -r 或者 -R 。

find

搜索目录【查】find
命令:find 目录 参数 文件名称
示例:find /usr/tmp -name ‘a*’ 查找/usr/tmp目录下的所有以a开头的目录或文件

新建文件

touch 文件

修改文件

vi 文件
注意:使用vi编辑器打开文件后,并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式。
使用vi编辑器打开文件后点击按键:i ,a或者o即可进入编辑模式。
编辑文件
i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
保存或者取消编辑

保存文件:
第一步:ESC 进入命令行模式
第二步:: 进入底行模式
第三步:wq 保存并退出编辑

取消编辑:
第一步:ESC 进入命令行模式
第二步:: 进入底行模式
第三步:q! 撤销本次修改并退出编辑

文件的查看命令:cat/more/less/tail

权限修改

[root@www /]# ls -l
total 64
dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为[ d ]则是目录;
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为链接文档(link file);
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
    接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
    每个文件的属性由左边第一部分的10个字符来确定
    在这里插入图片描述
    从左至右用0-9这些数字来表示。

第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。
其中,第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;

第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-“字符表示没有写权限;第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用”-"字符表示,则没有执行权限。
https://www.runoob.com/linux/linux-file-attr-permission.html

1. chgrp:更改文件属组

语法:
chgrp [-R] 属组名 文件名
参数选项
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2. chown 更改文件属主,也可以同时更改文件属组

https://blog.csdn.net/m0_56332061/article/details/127596147
语法:
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

3. chmod:更改文件9个属性

chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。比如 777
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
比如 chmod 777 文件名

find

Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法
find path -option [ -print ] [ -exec -ok command ] {} ;

实例
将目前目录及其子目录下所有延伸档名是 c 的文件列出来。
find . -name “*.c”

Source

Ubuntu source命令的作用就是将设置在文件中的配置信息马上生效,而不需要经过重启。本文就给大家带来Ubuntu使用source命令执行文件的教程。
 source命令,也称为“点命令”,也就是一个点符号(.)。它通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
同时,可以把一些命令做成一个文件,让它自动顺序执行,它可以把这个文件的内容当成shell来执行。

压缩与解压

Linux 常用的压缩与解压缩命令有:tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar 等。

bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件
bzip2 file1 压缩一个叫做 'file1' 的文件
gunzip file1.gz 解压一个叫做 'file1.gz'的文件
gzip file1 压缩一个叫做 'file1'的文件
gzip -9 file1 最大程度压缩
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格式压缩包

ZIP是一个文件压缩的算法。
ZIP是一种相当简单的分别压缩每个文件的存档格式,他的重要作用是压缩。分别压缩文件允许不必读取另外的数据而检索独立的文件;理论上,这种格式允许对不同的文件使用不同的算法。

tar可以将多个文件合并为一个文件,打包后的文件后缀亦为“tar”。
tar命令是Unix/Linux系统中重要用途是备份文件,tar代表未压缩的tar文件。已压缩的tar文件则附加压缩文件的扩展名,如经过gzip压缩后的tar文件,扩展名为“.tar.gz”

zip unzip

https://www.runoob.com/linux/linux-comm-zip.html
Linux zip 命令用于压缩文件。

安装解压软件

	sudo apt-get install unzip	

解压文件

	unzip    xxxxx.zip

将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:

zip -q -r html.zip /home/html

如果在我们在 /home/html 目录下,可以执行以下命令:

zip -q -r html.zip *

从压缩文件 cp.zip 中删除文件 a.c

	zip -dv cp.zip a.c

-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-d 从压缩文件内删除指定的文件。
-q 不显示指令执行过程

tar

Linux tar命令用于备份文件。
tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

最常用的打包命令是 tar,使用 tar 程序打出来的包我们常称为 tar 包,tar 包文件的命令通常都是以 .tar 结尾的。生成 tar 包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲 tar 命令的基本用法。
https://www.runoob.com/w3cnote/linux-tar-gz.html

tar –xvf file.tar         // 解压 tar 包 
tar -xzvf file.tar.gz     // 解压 tar.gz 
tar -xjvf file.tar.bz2    // 解压 tar.bz2 
tar –xZvf file.tar.Z      // 解压 tar.Z 
unrar e file.rar          // 解压 rar 
unzip file.zip            // 解压 zip
linux tgz命令用法
tar  zxvf  文件名.tgz  -C /指定路径
tar zxvf MY_NAME.tgz 或者 tar zxvf MY_NAME.tar.gz

解压命令tar zxvf中zxvf分别是什么意思
x : 从 tar 包中把文件提取出来
z : 表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压
v : 显示详细信息
f xxx.tar.gz : 指定被处理的文件是 xxx.tar.gz

rar unrar

unrar解压

解压:unrar x test.rar 保留完整目录结构

解压:unrar e test.rar temp/ 文件全部解压到当前目录。# temp/ 表示解压的路径

du 查看文件及文件夹的大小

du 的英文原义为 disk usage,含义为显示磁盘空间的使用情况,用于查看当前目录的总大小。
如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:–max-depth=,这是个极为有用的参数!

-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或–dereference-args 显示指定符号连接的源文件大小。
-h或–human-readable 以K,M,G为单位,提高信息的可读性
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-s:对每个Names参数只给出占用的数据块总数。
-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-b:以字节为单位列出磁盘空间使用情况(系统默认以k字节为单位)。
-k:以1024字节为单位列出磁盘空间使用情况。
-c:最后再加上一个总计(系统默认设置)。
-l:计算所有的文件大小,对硬链接文件,则计算多次。
-x:跳过在不同文件系统上的目录不予统计。

1.df命令:
查看一级文件大小、使用比例、档案系统以及挂入点

1.1 查看分区的文件系统: df -T

1.2 显示目前所有文件系统的可用空间及使用情形(可以看磁盘使用情况-): df -h

2.du命令:
可以查看文件及文件夹的大小

2.1 查看系统中文件的使用情况:
du -h

2.2. 查看当前目录下各个文件及目录占用空间大小:
du -sh *(把*换掉,查具体的文件)

2.3 查看隐藏的文件大小方法:
du -sh .[!.]*

du命令用来看文件size,比如du -csh * 显示非隐藏文件大小,并统计文件占用总的空间大小
.[!.]* 是正则式, 意思是第一位是点, 第二位是除了点以外的任何字符, 第三位是任意字符或者不存在
后面可以再加一个" "来包括非隐藏文件,也就是:
du -chs .[!.]
*

dtc

DTC编译器:设备树源码DTS文件编译为二进制文件DTB。

DTC编译器的作用:就是对设备树的源码的文件进行语法检查,根据linux的内核要求检查各个节点以及属性,将设备树源码编译生成二进制文件,以保证内核能启动。

DTC编译器源文件所在位置:/scripts/dtc/***

内核使能了设备树。编译内核的时候DTC工具会自动被编译出来,对应于
scripts/dtc/Makefile 中 hostprogs-y := dtc
也可以单独安装DTC
sudo apt-get install device-tree-compiler

(1) dts编译生成dtb
dtc -I dts -O dtb -o 二进制.dtb 源文件.dts
把.dts编译生成.dtb
(2) dtb编译生成dts
dtc -I dtb -O dts -o 源文件.dts 二进制.dtb
把.dtb反编译生成为.dts

ip地址

ifconfig eth0 192.168.1.10 netmask255.255.255.0

yum与apt的区别

https://blog.csdn.net/qq_26182553/article/details/79869666
rpm和yum命令安装软件的区别:
rpm命令和yum命令都可以用来安装软件。但与yum命令最大的区别为,yum命令在安装软件时如果碰到了依赖性的问题,
yum会去主动尝试解决依赖性,如果解决不了才会反馈给用户。
rpm命令一旦遇到了依赖性的问题不会去解决依赖性,而是直接反馈给用户,让用户自行解决。

rpm适用于所有环境,而yum要有本地yum源才可以使用。yum是上层管理工具,可以自动解决依赖性,而rpm是底层管理工具。
https://www.jianshu.com/p/64598784d7a3

记录log:script

开始记录log命令:

1.记录的起点
$ script -a tmp.log (tmp.log为输出的目标文件)

2.在terminal进行操作,这部分的log会保存到 tmp.log中

3.结束记录:
$ exit

Other

Linux学习教程

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值