Linux 朝花夕拾

2023-12-21 08:40
文章标签 linux 朝花夕拾

本文主要是介绍Linux 朝花夕拾,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

.bash_profile和.bashrc

.bashrc要保存个人的一些个性化设置,如命令别名、路径等。
每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。
一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取~/.bash_profile文件,
这样~/.bashrc也就得到执行了,你的个性化设置也就生效了。但不是所有的Linux都存在bash_profile文件。

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
该文件被读取.
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.

另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
 
~/.bash_profile 是交互式、login 方式进入 bash 运行的
~/.bashrc 是交互式 non-login 方式进入 bash 运行的
通常二者设置大致相同,所以通常前者会调用后者。

因此alias设置的别名永久生效需要将该命令加入到.bashrc

 

后台运行程序


nohup python cuckoo.py > /dev/null  2>&1 &
nohup==>Run COMMAND, ignoring hangup signals.即当前终端断开连接进程仍运行
> /dev/null 标准输出到垃圾箱,否则标准输出到nohup.out,
2>&1 错误输出到标准输出
& 程序后台运行,如果没有nohup,则当前终端如果关闭,则后台进程退出
对应其他命令:
jobs   查看后台进程,-l 参数显示进程号

root@polyhawk-sip:/polyhawk_building/analysis/sandbox# jobs -l
[1]+ 22471 Running                 nohup python cuckoo.py > /dev/null 2>&1 &

fg 1   将后台中的命令调至前台继续运行

ctrl+z   暂停当前程序

root@polyhawk-sip:/polyhawk_building/analysis/sandbox# jobs -l
[1]+ 22471 Stopped                 nohup python cuckoo.py > /dev/null 2>&1

bg 1    将一个在后台暂停的命令,变成继续执行

 

shell获取进程ID的方法

  1. ps -A |grep "cmdname"| awk '{print $1}'
  2. pidof "cmdname"
  3. pgrep "cmdname"

其中推荐pgrep,可以带-d参数作为进程号分隔符,与top使用表示很强大

top -p $(pgrep -d , "python") -c

 

最牛B的Shell命令

!!  上一条命令

^foo^bar^  替换上一条命令中的一个短语,等价于 !!:s/foo/bar/

cp filename{,.bak}   快速备份一个文件

 

<ALT + .> or <ESC + .>   复制最后使用的命令中的参数 这个快捷键只能工作于 shell 的 emacs 编辑模式,它可以从最后使用的命令行中复制参数到当前命令行中

假如你想指定第1个或第2个,或者是第 n 个参数的话,可以按 ALT + 1 (或 ESC + 1) 或 ALT + 2 (或 ESC +2) 这样形式的快捷键

 

 

 

Linux中rz和sz命令

安装:apt-get install lrzsz

命令:(Linux命令,从linux角度看)

sz filename:从服务端发送文件到客户端(Linux—>Windows):

rz:从客户端上传文件到服务端(Windows—>Linux):

在弹出的框中选择文件,上传文件的用户和组是当前登录的用户

 

SecureCRT设置默认路径:

Options -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories

Xshell设置默认路径:

右键会话 -> 属性 -> ZMODEM -> 接收文件夹

 

scp命令
scp root@192.168.25.55:/root/123.txt  /root/123.txt

scp /root/123.txt  root@192.168.25.55:/root/123.txt

-r是递归拷贝目录

 

scp避免输入密码
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa

也可ssh-keygen通过向导生成

ssh-copy-id  -i ~/.ssh/id_rsa.pub $dst_ip  
    ssh-copy-id  -i ~/.ssh/id_rsa.pub
root@192.168.25.55

ssh-keygen –R 192.168.25.60   移除key
说明:
ssh-keygen 创建公钥和密钥。
    -t type     Specify type of key to create.   -P phrase   Provide old passphrase.    -f filename Filename of the key file.
ssh-copy-id 把本地主机的公钥复制到远程主机的authorized_keys文件上(追加模式)。
ssh-copy-id 也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限

注:设置key后scp命令可以tab补全远程目录或文件,很方便

 

Linux下快速删除大量文件/文件夹方法

1、先建立一个空目录
mkdir /data/blank

2、用rsync删除目标目录
rsync–delete-before -d /data/blank/ /var/spool/clientmqueue/

 

1、创建空文件
touch /data/blank.txt

2、用rsync清空文件
rsync-a –delete-before –progress –stats /root/blank.txt /root/nohup.out

 

tips:
当SRC和DEST文件性质不一致时将会报错
当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件
当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录
最重要的是,它的处理速度相当快,处理几个G的文件也就是秒级的事
最核心的内容是:rsync实际上用的就是替换原理

 

查看Ubuntu版本和内核版本
uname –a   内核版本
Linux polyhawk-50 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

cat  /etc/issue  ubuntu版本
Ubuntu 14.04.3 LTS \n \l

cat /etc/os-release   linux版本
root@master:/opt/hadoop-2.7.3# cat /etc/os-release
NAME="Ubuntu"
VERSION="15.10 (Wily Werewolf)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 15.10"
VERSION_ID="15.10"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL=http://bugs.launchpad.net/ubuntu/

 

ubuntu默认以root用户登录
1.启动root帐号:
sudo passwd root

根据提示输入root帐号密码
切换成root用户,su
2.vi /etc/lightdm/lightdm.conf
3.

[Seat:*]
autologin-guest=false 
autologin-user-timeout=0

autologin-user=root

保存

reboot

重启后会出现   读取/root/.profile时发现错误

vi /root/.profile

找到.profile文件中的mesg n

将其替换成tty -s && mesg n

重启ubuntu,问题解决

reference:http://www.linuxidc.com/Linux/2012-05/60806.htm

http://jingyan.baidu.com/article/fb48e8be3743696e632e1450.html

 

 

复制目录及子目录下的文件到某一目录下
find  /polylab/sample/ -maxdepth 10 -name "*.vir"  | xargs -t -i scp {} root@192.168.25.53:/polydata/test_samples
ls -R不能保证全路径

 

Argument list too long
find source/ -name "*.txt" | xargs -i mv {} target/

命令,如果是cp、rm 、ls操作将以上命令里中的mv改为相应的命令即可;

 

映射一个内存目录

mount -t tmpfs -o size=1024m tmpfs /mnt/ram

 

Ubuntu中root不能使用tab键来补全命令的解决方法

解决方法:

vim /root/.bashrc找到最后的六行,把注释掉的三行去掉前面的#,保存生效,退出再登录就OK.

if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

 

空格换行替换
sed –i “s/\s\+/ /g” file
sed –i “s/\s\+/\r/g” file
sed –i “s/\s\+/\n/g”file
vim下
:%s/\s\+/ /g

 

Ubuntu 16.04 SSH 无法远程登录root账户

sudo vi /etc/ssh/sshd_config

找到:PermitRootLogin prohibit-password 注释掉

添加:PermitRootLogin yes

sudo service ssh restart

 

SS免密码登录

1.生成公钥/私钥对

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

2.复制公钥到远程主机

scp ~/.ssh/id_rsa.pub username@ip:/tmp/id_rsa.pub

3.远程主机添加公钥到.ssh/authorzied_keys

cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys

4.更改authorzied_keys权限为600
chmod 600 ~/.ssh/authorized_keys

 

Ubuntu更改计算机名及远程主机别名
1.修改/etc/hostname
2.修改/etc/hosts添加映射

image
3.reboot

转载于:https://www.cnblogs.com/lunachy/p/4834403.html

这篇关于Linux 朝花夕拾的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/519311

相关文章

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

[Linux]:进程(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 进程终止 1.1 进程退出的场景 进程退出只有以下三种情况: 代码运行完毕,结果正确。代码运行完毕,结果不正确。代码异常终止(进程崩溃)。 1.2 进程退出码 在编程中,我们通常认为main函数是代码的入口,但实际上它只是用户级

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo