Linux命令集合(更新中。。。)

    技术2024-07-17  78

    B站视频 1.清屏:clear

    2.自动补全:tab键

    3.查看当前路劲:pwd

    4.修改当前路径:cd 路径地址 回到上级目录:cd … 回到上级的上级目录:cd …/… 回到家目录:cd ~或者直接cd 相对路径:相对于当前目录 绝对路径:从根目录开始完整的路径(从/和~开始的都是绝对路径)

    5.罗列当前路径文件:ls 以列表罗列文件:ls -l 罗列隐藏文件:ls -a 列表罗列隐藏文件:ls -a -l ls通配符: 6.创建文件:touch 文件名 创建文件夹:mkdir 文件夹名 创建隐藏文件:touch .文件名

    7.移除文件:rm 文件名 移除文件夹:rm -d 文件夹名 或者:rm -r 文件夹名 移动(剪切)文件和文件夹:mv 要移动的文件名或文件夹名 目的路径 移动(剪切)文件和文件夹到当前路径要改名字:mv 要移动的文件名或文件夹名 ./要改的名字

    8.复制文件:cp 要复制的文件名 目的路径(当前路径可以用 . 表示) 复制文件夹:cp -r 要复制文件夹名 目的路径(当前路径可以用 . 表示) 复制文件到当前路径要改名字:cp 要复制的文件名 ./要改的名字

    9.根据路径搜索文件:find /路径 -name 文件名 根据路径模糊搜索文件:同ls通配符 忽略大小写根据路径搜索文件:find /路径 -iname 文件名

    10.查看当前进程: ps 执行退出: exit 彻底退出当前命令: ctrl+C 执行睡眠,挂起当前进程 :ctrl+Z 恢复后台:fg

    11.Linux下用于查看系统当前登录用户信息的4种方法

    使用w命令查看登录用户正在使用的进程信息使用who命令查看(登录)用户名称及所启动的进程使用whoami命令查看你所使用的登录名称last命令可用于显示特定用户登录系统的历史记录。

    12.查看当前用户 id: id:查看显示目前登陆账户的 uid 和 gid 及所属分组及用户名

    13.Useradd 和adduser? 添加用户:useradd -m -s 用户名 然后设置密码 passwd 用户名 删除用户:userdel -r 用户名

    在root权限下,如果没有在root权限下,会出现:useradd: cannot lock /etc/passwd; try again later. useradd只是创建了一个用户名,如 (useradd +用户名 ),它并没有在/home目录下创建同名文件夹,也没有创建密码,因此利用这个用户登录系统,是登录不了的,为了避免这样的情况出现,可以用 (useradd -m +用户名)的方式创建,它会在/home目录下创建同名文件夹,然后利用( passwd + 用户名)为指定的用户名设置密码。可以直接利用adduser创建新用户(adduser +用户名)这样在/home目录下会自动创建同名文件夹删除用户,只需使用一个简单的命令“userdel 用户名”即可。不过最好将它留在系统上的文件也删除掉,你可以使用“userdel -r 用户名”来实现这一目的。

    14.如何创建链接? 创建软链接: ln -s 源文件 目标文件 创建硬链接: ln 源文件 目标文件 ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化。 在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。

    15.向屏幕输出带空格的字符串: echo hello world

    16.终端是哪个文件夹下的哪个文件? 终端 /dev/tty

    17.Linux黑洞(http://www.linuxdiyf.com/view_273259.html): 黑洞文件 /dev/null /dev/null是一个虚设的设备,俗称“Linux黑洞”,任何对/dev/null的写入都会成功,但数据会消失得无影无踪,没有任何反馈。 所以经常把不想在屏幕显示的信息全部送到/dev/null中,在shell脚本中用得比较多。 如:ls -l > /dev/null 还可以用来清空文件的内容: cat /dev/null > FileName

    18.统计内容?(行号、单词数、字节数):wc(word count) 文件统计字节数 wc -c 文件统计行数 wc - l 文件统计字数 wc -w

    19.grep用法: (https://www.cnblogs.com/flyor/p/6411140.html) grep命令的常用格式为:grep [选项] ”模式“ [文件] 选项与参数: -E :开启扩展(Extend)的正则表达式。 -i :忽略大小写(ignore case)。 -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。 -n :显示行号 -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。 -o :只显示被模式匹配到的字符串。 –color :将匹配到的内容以颜色高亮显示。 -A n:显示匹配到的字符串所在的行及其后n行,after -B n:显示匹配到的字符串所在的行及其前n行,before -C n:显示匹配到的字符串所在的行及其前后各n行,context 可以用fgrep(fast grep)代替来提高查找速度,比如我要匹配一下hello.c文件中printf的个数:fgrep -c “printf” hello.c 2、使用基本正则表达式,下面谈关于基本正则表达式的使用: 匹配字符: . :任意一个字符。 [abc] :表示匹配一个字符,这个字符必须是abc中的一个。 [a-zA-Z] :表示匹配一个字符,这个字符必须是a-z或A-Z这52个字母中的一个。 [^123] :匹配一个字符,这个字符是除了1、2、3以外的所有字符。 对于一些常用的字符集,系统做了定义: [A-Za-z] 等价于 [[:alpha:]] [0-9] 等价于 [[:digit:]] [A-Za-z0-9] 等价于 [[:alnum:]] tab,space 等空白字符 [[:space:]] [A-Z] 等价于 [[:upper:]] [a-z] 等价于 [[:lower:]] 标点符号 [[:punct:]] 匹配次数:

    {m,n} :匹配其前面出现的字符至少m次,至多n次。 ? :匹配其前面出现的内容0次或1次,等价于{0,1}。  * :匹配其前面出现的内容任意次,等价于{0,},所以 “.*” 表述任意字符任意次,即无论什么内容全部匹配。

    20.Sed用法:(https://www.cnblogs.com/maxincai/p/5146338.html) sed [options] ‘command’ file(s) sed [options] -f scriptfile file(s) 替换操作:s命令 sed ‘s/This/aaa/’ test.txt #将文本中This替换成aaa sed -n ‘s/This/aaa/p’ test.txt #-n选项和p命令一起使用表示只打印那些发生替换的行

    删除操作:d命令

    选定行的范围:,(逗号) sed -n ‘5,/^this/p’ test.txt #打印从第5行开始到第一个包含以this开始的行之间的所有行

    写入文件:w命令 sed -n ‘/my/w test2.txt’ test.txt #在test.txt中所有包含my的行都被写入test2.txt 追加(行下):a\命令 sed ‘/^my/a\this is a test line’ test.txt #将this is a test line 追加到以my开头的行后面 sed ‘2a\this is a test line’ test.txt #text.txt文件第2行之后插入this is a test line 插入(行上):i\命令 sed ‘/^my/i\this is a test line’ test.txt #将this is a test line 插入到以my开头的行前面 变形:y命令 sed ‘1,10y/abcde/ABCDE/’ test.txt #把1-10行内所有的abcde转变为大写,注意,正则表达式元字符不能使用这个命令 退出:q命令 sed ‘3q’ test.txt #打印完第3行,退出sed 打印奇数行或偶数行 sed -n ‘p;n’ test.txt #奇数行 sed -n ‘n;p’ test.txt #偶数行

    21.awk 详解(https://www.cnblogs.com/ftl1012/p/9250541.html) awk ‘{pattern + action}’ {filenames} 其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。 pattern就是要表示的正则表达式,用斜杠括起来。awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。

    22.Linux中如何让命令在后台运行? 1.在下达的命令后面加上&,就可以使该命令在后台进行工作,这样做最大的好处就是不怕被ctrl+c这个中断指令所中断。 2. 在后台执行的程序怎么使它恢复到前台来运行呢?很简单,只用执行fg这个命令,就可以了。 把停下的后台任务在后台执行起来 bg 3.现在已经在前台运行的命令,我能把它放到后台去运行么?当然可以了,只要执行ctrl+z就可以做到了。 4.如果我有多个进程在后台运行,那如何恢复到前台来执行呢?这时候就要用到jobs这个命令了,通过jobs这个命令,能够列出所有在后台执行的进程,那个中括号([ ])里面的数字就是 jobs 的代号啰

    23.查看系统支持的所有信号:kill -l

    24.查找自己所在的终端信息:who am i 查看当前谁在使用该主机:who

    25.查看用过的命令列表:history

    26.查看磁盘使用空间,空闲空间:df -hl 文件系统 容量 已用 可用 已用% 挂载点 Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% / /dev/hda1 494M 19M 450M 4% /boot

    27.查看网络是否连通:netstat

    28.查看 ip 地址及接口信息:ipconfig

    29.Linux环境变量 Linux是一个多用户的操作系统,每个用户登录系统,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,默认环境实际上是一组环境变量的定义。通过相应的系统环境变量,用户可以对自己的运行环境进行个性化设置。

    # 设置变量: 变量名=变量值 [hk@localhost ~]$ MYPATH=/home/hk/c/ # 使用变量: $变量名 [hk@localhost ~]$ echo $MYPATH /home/hk/c/ # 查看变量可以使用 set 命令,并可以利用管道查找需要的环境变量 [hk@localhost ~]$ set|grep MYPATH MYPATH=/home/hk/c/ # 清除变量使用 unset 命令 [hk@localhost ~]$ unset MYPATH # 因为变量已被清除,打印一行空行 [hk@localhost ~]$ echo $MYPATH [hk@localhost ~]$

    30.? 通过什么命令指定命令提示符? 31.linux命令中find、which、whereis、locate有什么区别?(https://www.cnblogs.com/jycjy/p/6940544.html) find是最常用和最强大的查找命令。它能做到实时查找,精确查找,但速度慢。 find 【搜索目录】【-name或者-iname】【搜索字符】:-name和-iname的区别一个区分大小写,一个不区分大小写 eg:在/etc 目录下搜索名字为init的文件或目录 ①、find /etc -name init (精准搜索,名字必须为 init 才能搜索的到) ②、find /etc -iname init (精准搜索,名字必须为 init或者有字母大写也能搜索的到) ③、find /etc -name *init (模糊搜索,以 init 结尾的文件或目录名) ④、find /etc -name init??? (模糊搜索,? 表示单个字符,即搜索到 init___)

    locate   locate命令不是实时查找,所以查找的结果不精确,但查找速度很快。因为它查找的不是目录,而是一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。 locate使用格式   locate [指定目录]   例:查找所有包含passwd的文件   #locate passwd   例:查找所有包含passwd的文件,并且只显示前十个   #locate -n 10 passwd

    which   which命令是查找命令是否存在,以及命令的存放位置在哪儿。 例:#which ls

    whereis whereis命令只能用于搜索程序名,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。 whereis命令的使用实例: #whereis vim type   type命令用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。    32.怎么对命令进行取别名? alias 别名=实际名字 alias matlab=/home/bearox/download/Matlab/bin/matlab 这样子每次你只需要输入matlab它就会把它当作是/home/bearox/download/Matlab/bin/matlab这条命令。注意‘=’两边没有空格。

    33.du 和 df 的定义,以及区别? du查看目录大小,df查看磁盘使用情况。 du 显示目录或文件的大小 df 显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。 du,disk usage,是通过搜索文件来计算每个文件的大小,然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是,当前他认为存在的所有文件大小的累加和。 df,disk free,通过文件系统来快速获取空间大小的信息。当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件。 df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除 的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。

    34.?当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢? Bind

    35.如果一个linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做? compgen -c 可以搜索或计算命令: compgen -c | grep find compgen -c | wc -l

    36.目录栈操作(https://blog.csdn.net/xiaoying5191/article/details/79482811): dirs : 显示栈 pushd : 将目录压入栈中 为了访问栈中其他目录,可以才用以下方式: pushd +n 其中,n为栈中目录的编号,从栈顶算起,栈顶编号为0。此时只会跳转目录,而不会向栈中压如录。当使用不带参数的pushd时,pushd交换栈顶最上面的两个目录,并将新的栈顶目录(即原来的次栈顶目录)作为新的工作目录。 popd : 将目录从栈中弹出 使用不带参数的popd将栈顶目录从栈中移出,并将工作目录切换到新的站定目录,即原来的次栈顶目录。为了移出栈中其他目录,可以使用以下方式: popd +n 其中,n同上。此时工作目录并不改变。

    37.Linux中进程的七种状态 (1)R运行状态(runing):并不意味着进程一定在运行中,也可以在运行队列里; (2)S睡眠状态(sleeping):进程在等待事件完成;(浅度睡眠,可以被唤醒) (3)D磁盘睡眠状态(Disk sleep):不可中断睡眠(深度睡眠,不可以被唤醒,通常在磁盘写入时发生) (4)T停止状态(stopped):可以通过发送SIGSTOP信号给进程来停止进程,可以发送SIGCONT信号让进程继续运行 (5)X死亡状态(dead):该状态是返回状态,在任务列表中看不到; (6)Z僵尸状态(zombie):子进程退出,父进程还在运行,但是父进程没有读到子进程的退出状态,子进程进入僵尸状态; (7)t追踪停止状态(trancing stop)

    38.ps(process status)命令(https://www.cnblogs.com/peida/archive/2012/12/19/2824418.html): 确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等

    39.linux终止进程命令: kill [参数] 进程号 killall [参数] 进程名称 参数:-9 表示强制结束进程 ps -aux | grep sshd #远程登录的服务名称为sshd,搜索此名称的所有进程 kill 6804 #结束id为6804这个用户 ps -aux | grep bash #linux中,一个终端的服务名称为"bash" kill 6751 #尝试结束 id为"6751"的进程 kill -9 6751 #强制结束 id为"6751"的进程

    40.Linux disown命令使用详解(https://man.comptechs.cn/disown.html): Shell disown命令用于从当前的shell中移除作业: -h 标记每个作业标识符,这些作业将不会在shell接收到sighup信号时接收到sighup信号。 -a 移除所有的作业。 -r 移除运行的作业。

    41.shell 中的hash 命令有什么作用? ’hash’管理着一个内置的哈希表,记录了已执行过的命令的完整路径, 用该命令可以打印出你所使用过的命令以及执行的次数。

    42.bash shell 的内置命令let 可以进行整型数的数学运算。 #! /bin/bash … let c=a+b

    43.查看文件内容有哪些命令可以使用? vi 文件名 #编辑方式查看,可修改 cat 文件名 #显示全部文件内容 more 文件名 #分页显示文件内容 less 文件名 #与 more 相似,更好的是可以往前翻页 tail 文件名 #仅查看尾部,还可以指定行数 head 文件名 #仅查看头部,还可以指定行数

    44.怎样一页一页地查看一个大文件的内容呢? 通过管道将命令”cat file_name.txt” 和 ’more’ 连接在一起可以实现这个需要. [root@localhost ~]# cat file_name.txt | more

    45.?数据字典属于哪一个用户的? 数据字典是属于’SYS’用户的,用户‘SYS’ 和 ’SYSEM’是由系统默认自动创建的

    46.怎样查看一个linux命令的概要与用法?假设你在/bin目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢? 使用命令whatis 可以先出显示出这个命令的用法简要,比如,你可以使用whatis zcat 去查看‘zcat’的介绍以及使用简要。

    47.使用哪一个命令可以查看自己文件系统的磁盘空间配额呢? 使用命令repquota 能够显示出一个文件系统的配额信息

    48.查看日志   1、cd到服务器的logs目录(里面有xx.out文件)   2、tail -f xx.out --此时屏幕上实时更新日志。ctr+c停止   3、查看最后100行日志 tail -100 xx.out   4、查看关键字附件的日志。如:cat filename | grep -C 5 ‘关键字’(关键字前后五行。B表示前,A表示后,C表示前后) ----使用不多   5、还有vi查询啥的。用的也不多。

    Processed: 0.014, SQL: 12