linux-基础命令

摘要:
注意,如果日志目录不存在,此命令将重命名info-logs:mvinfo/logs,并将/usr/student下的所有文件和目录移动到当前目录。命令行为:mv/usr/student/*File Delete rmrm Delete files:rm[options]File Delete directories and files:rm rfdir-i删除前逐个请求确认。

目录

文件管理

文件查看cat

cat file
显示行号:cat -n file
显示原始文本:cat -v file

更改文件权限chmod

chmod
chmod [-cfvR] mode file

mode:
[ugoa...][[+-=][rwxX]...][,...]

u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

将文件 file1.txt 设为所有人皆可读取 :chmod ugo+r file1.txt
R-4
W-2
X-1
RWX=4+2+1=7
rwxrwxrwx=777
修改文件权限:chmod 777 file

[-cfvR]:

-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

递归更改文件夹权限:chomd -R 777 /opt/farmsec

改属主属组chown

chown
chown [-cfhvR] user[:group] file
改文件属主属组 :chown runoob:runoobgroup file1.txt
改文件夹属主属组chown -R runoob:runoobgroup /opt/farmsec

对比文件diff

diff
diff file1 file2

文件查看head/tail/more/less

head
tail
more

看前十行:head file -n10
看后十行:tail file -n10
组合看特定几行

一页一页查看:more file
space 下一页, b 键往回一页

less
[pagedown]向下翻动一页,[pageup]向上翻动一页

实时监控日志

tail -f log

文件移动更名mv

mv
mv [options] source dest

-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件
-f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示

文件 aaa 更名为 bbb:mv aaa bbb
将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs:mv info/ logs
将/usr/student下的所有文件和目录移到当前目录下,命令行为:mv /usr/student/* .

文件删除rm

rm
删文件:rm [options] file
删目录及文件:rm -rf dir

-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除

文件分割split

按字节分割:split -b 1000 file
按行数分割:split -l 10 file

新建文件touch

touch filename

文件预设权限umask

umask
新建文件的权限为预设的权限
预设的权限可通过,777-umask输出的数字得知
也可直接umask -S得知预设权限
linux-基础命令第1张

文件查找which

which file
在环境变量$PATH设置的目录里查找

文件复制cp

cp
cp [options] source dest
复制整个目录:cp –r test/ newtest

文件查找whereis

whereis
whereis 文件
只能用于查找二进制文件、源代码文件和man手册页

远程文件复制scp

scp
linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令,加密
复制远程的整个目录到本地:scp user@ip:/home/root/ .
本地复制到远程:scp local_file user@ip:remote_folder

文档编辑

排序sort

sort
将文本文件内容加以排序
将文本文件的第一列以ASCII 码的次序排列:sort file
逆序:sort -r file
按数字大小排序:sort -n file

去重uniq

uniq
检查及删除文本文件中重复出现的行列
只删除相邻的重复,所以要与sort结合使用
去重:cat 11.txt |sort |uniq
去重并显示重复次数:cat 22.txt|sort |uniq -c

统计wc

wc
wc file
默认显示行数单词数字节数

-c或--bytes或--chars 只显示Bytes数。
-l或--lines 只显示行数。
-w或--words 只显示字数。

磁盘管理

切换目录cd

cd
跳家目录:cd ~
跳/usr/bin:cd /usr/bin
~家目录
.当前目录
..上一层目录

磁盘统计df

df
df -h
linux-基础命令第2张

大小统计du

du
du -h 目录或文件

绝对路径pwd

pwd
linux-基础命令第3张

列目录ls

ls
显示指定工作目录下之内容
列表详细显示所有文件:ls -al [目录] 包括隐藏文件 .file
linux-基础命令第4张

网络通讯

显示网络netstat

netstat
netstat -ano
linux-基础命令第5张

TCP:netstat -ant

系统管理

用户管理 useradd/mod/del

  1. 新增用户adduser/useradd
    useradd [-u uid] [-g gid] username
    创建root的别名用户:useradd -u 0 aaa
    查找系统中root的别名用户,并打印: cat /etc/passwd |grep "x:0" |grep -v "root:x"

  2. 修改用户usermod
    改变用户的uid:usermod -u 777 root
    改变用户的gid组:usermod -g 1002 bbb

  3. 删除用户userdel
    userdel [-r] [用户帐号]
    -r  删除用户登入目录以及目录中所有文件

用户组管理 groupadd/mod/del

  1. 新增组groupadd
    groupadd 命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
    相关文件:
    /etc/group 组账户信息。
    /etc/gshadow 安全组账户信息。
    /etc/login.defs Shadow密码套件配置。
    groupadd -g 344 runoob
    -r:创建系统工作组,系统工作组的组ID小于 500

  2. 修改组groupmod
    更改群组识别码或名称
    改gid:groupmod -g gid groupname
    组名linuxso改为linux:groupmod -n linux linuxso

  3. 删除组groupdel
    groupdel hnuser

杀死进程kill

kill
kill pid
彻底杀死进程:kill -9 pid
列出选项:kill -l
linux-基础命令第6张

杀死指定用户所有进程:kill -u user

登录信息last

显示用户最近登录信息,读取位于/var/log目录下名称为wtmp的文件,并把该文件记录的登录系统的用户名单全部显示出来。
last
linux-基础命令第7张

查看进程ps

ps
显示所有包含其他使用者的进程:ps -aux
linux-基础命令第8张

查看进程top

top
实时显示 process 的动态
linux-基础命令第9张

root执行命令sudo

sudo
使用权限:在 /etc/sudoers 中有出现的使用者。
linux-基础命令第10张

切换用户su

su
su user

在线用户信息who

显示系统中有哪些使用者正在上面
linux-基础命令第11张

显示用户信息id

id [user]
linux-基础命令第12张

在线用户w

显示目前登入系统的用户信息
w
linux-基础命令第13张

系统设置

计划任务crontab

列出任务:crontab -l
编辑计划任务:crontab -e

*    *    *    *    *    命令
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期几 (0 - 7) (星期天 为0)
|    |    |    +---------- 月 (1 - 12)
|    |    +--------------- 日 (1 - 31)
|    +-------------------- 时 (0 - 23)
+------------------------- 分 (0 - 59)
1-6:1到6
1,6:1或6
*/3:每隔3
6-12/3:6到12中,每隔3
所有命令需要写成绝对路径形式,如: /usr/local/bin/docker

每一分钟执行一次 /bin/ls:* * * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup:0 6-12/3 * 12 * /usr/bin/backup
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha":20 0-23/2 * * * echo "haha"

redhat管理套件rpm

rpm
安装软件:rpm -ivh x.rpm
列出系统安装的所有软件包:rpm -qa

dpkg软件管理

dpkg -i x.deb

修改密码passwd

修改密码:passwd user
显示密码信息:passwd -S user
删除密码:passwd -d user

shell四剑客

文本提取awk

awk
行处理,默认空格作为分割符
输出每行第4个字段:awk '{print$4}' log.txt
指定分隔符,输出passswd中的用户名和uid:cat /etc/passwd |awk -F ':' '{print($1,$3)}' print中,表空格
linux-基础命令第14张

输出多个字段与字符拼接:cat /etc/passwd |awk -F ':' '{print$1"-"$3}'
linux-基础命令第15张

文本处理sed

sed
行处理,利用脚本来处理文本文件
sed [<script>] [文本文件]

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

全文搜索替换:cat /etc/passwd | sed 's/root/jesus/g'
linux-基础命令第16张

s搜索
/是定界符,如果有转义问题可换#等
root是匹配的内容,jesus是替换的内容
g表替换全文,不加则替换一次
[危险]直接修改源文件:sed -i "s/my/your/" 123.txt
每行开头加#:sed 's/^/#/g' pets.txt
每行末尾加#:sed 's/$/#/g' pets.txt
删除空白行:sed '/^$/d' pets.txt d表删除匹配行
删除头部匹配:sed '/^video/d'
删除尾部匹配的行:sed '/.cn$/d'

文本匹配grep

grep
用于查找文件里符合条件的字符串
匹配passwd中的root:grep 'root' /etc/passwd
linux-基础命令第17张

正则匹配:cat /etc/passwd |grep -E 'root|sshd'
linux-基础命令第18张

不匹配root:cat /etc/passwd |head -n5|grep -v 'root'
linux-基础命令第19张

递归查找整个目录:grep -r 'root' /etc/
显示行号:grep -n 'root' /etc/passwd
linux-基础命令第20张

文件查找find

find
根目录下搜索文件passwd:find / -name passwd
指定搜索文件和属主:find / -type f -user root -name passwd
7天内修改过的,以文件名开头为test的文件: find / -type f -mtime -7 -name test*
过去第7天修改的:find / -type f -mtime 7 -name test*
7天前修改的:find / -type f -mtime +7 -name test*
一分钟内修改过的:find . -type f -mmin -1

大小-size
mtime内容修改/atime读取访问/ctime属性修改
mtime天/min分钟

文件查找locate

locate
在数据库中搜索,数据库未更新则不准确
locate passwd
更新数据库:updatedb
搜索 etc 目录下所有以 sh 开头的文件:locate /etc/sh

组合使用分析日志

统计日志中,访问量最大的10个IP:cat access_log|awk '{print$1}'|sort|uniq -c|sort -nr|head -n10
linux-基础命令第21张

命令传递/规范输出xargs

xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。

多/单行输入每行3个输出:cat test | xargs -n3 echo
多行输入单行输出:cat test.txt | xargs

命令传递,杀掉已建立的ssh连接,但不kill掉sshd的服务:ps -aux |grep sshd| grep -v /usr/sbin/sshd |awk '{print($2)}' |xargs kill -9

免责声明:文章转载自《linux-基础命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇内核移植和文件系统制作(4):UBIFS根文件系统制作总结git解决代码提交冲突下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Linux】 源码安装make命令详解,避免踩坑

正常的编译安装/卸载: 源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。   configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。   其中--prefix选项是配置安装目录,如果不配置该选项,安装后可...

Linux路径名和文件名最大长度限制

UNIX标准对路径名和文件名最大长度限制做出了说明,但其上限值在实际应用长过小,Linux在具体实现时提升了该上限,该限制在Linux的 /usr/include/linux/limits.h 中做出了说明,具体如下: 1 #ifndef _LINUX_LIMITS_H 2 #define _LINUX_LIMITS_H 3 4 #define...

Linux特殊权限:SUID、SGID、SBIT

1、suid suid 只对二进制程序有效,执行者对于程序需要有x权限,在程序运行过程中,执行者拥有程序拥有者的权限 例如:普通用户执行passwd命令。 a、首先查看passwd命令的绝对路径及passwd命令权限,发现passwd的owner是root,且owner权限里本应是x的那一列显示为s,说明这个命令具有SUID权限。 b、/bin/pass...

Ubuntu, 删除rc状态的packages

sudo apt-get remove之后,可能还会有一些包处于rc状态,这表示这些包已经被remove,但是保留了配置文件(config file)。要彻底删除这些包和残留的配置文件,用这个命令即可: dpkg -l |grep ^rc|awk '{print $2}' |tr ["\n"] [" "] | sudo xargs dpkg -P -...

linux的端口学习(一)

1.端口是什么? 1.1 是英文port的意译,可认为是设备与外界通讯交流的出口。 1.2 端口可分为虚拟端口和物理端口。 1.2.1 虚拟端口:指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。 1.2.2 物理端口:又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ1...

linux驱动开发(四) 字符设备驱动框架(自动创建设备节点)

代码如下 #include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/cdev.h>#include <linux/fs.h>#include <linux/device.h...